@pepperi-addons/ngx-lib 0.4.0-angular14.1 → 0.4.0-angular14.10

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 (282) hide show
  1. package/esm2020/address/address.component.mjs +3 -3
  2. package/esm2020/address/address.module.mjs +4 -4
  3. package/esm2020/attachment/attachment.component.mjs +3 -3
  4. package/esm2020/attachment/attachment.module.mjs +4 -4
  5. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +4 -4
  6. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +4 -4
  7. package/esm2020/button/button.component.mjs +3 -3
  8. package/esm2020/button/button.module.mjs +4 -4
  9. package/esm2020/carousel/carousel-item.directive.mjs +3 -3
  10. package/esm2020/carousel/carousel.component.mjs +3 -3
  11. package/esm2020/carousel/carousel.module.mjs +4 -4
  12. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  13. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  14. package/esm2020/color/color-picker.component.mjs +3 -3
  15. package/esm2020/color/color.component.mjs +3 -3
  16. package/esm2020/color/color.module.mjs +4 -4
  17. package/esm2020/core/clipboard/clipboard.directive.mjs +3 -3
  18. package/esm2020/core/clipboard/clipboard.service.mjs +3 -3
  19. package/esm2020/core/common/directives/auto-width.directive.mjs +3 -3
  20. package/esm2020/core/common/directives/button-blur.directive.mjs +3 -3
  21. package/esm2020/core/common/directives/button-loader.directive.mjs +3 -3
  22. package/esm2020/core/common/directives/data-qa.directive.mjs +3 -3
  23. package/esm2020/core/common/directives/menu-blur.directive.mjs +3 -3
  24. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +3 -3
  25. package/esm2020/core/common/directives/print.directive.mjs +3 -3
  26. package/esm2020/core/common/pipes/common-pipes.mjs +30 -30
  27. package/esm2020/core/common/pipes/date-ago.pipe.mjs +3 -3
  28. package/esm2020/core/common/services/addon.service.mjs +3 -3
  29. package/esm2020/core/common/services/color.service.mjs +3 -3
  30. package/esm2020/core/common/services/cookie.service.mjs +3 -3
  31. package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
  32. package/esm2020/core/common/services/file.service.mjs +3 -3
  33. package/esm2020/core/common/services/jwt-helper.service.mjs +3 -3
  34. package/esm2020/core/common/services/session.service.mjs +3 -3
  35. package/esm2020/core/common/services/translate.service.mjs +3 -3
  36. package/esm2020/core/common/services/utilities.service.mjs +3 -3
  37. package/esm2020/core/common/services/validator.service.mjs +3 -3
  38. package/esm2020/core/common/services/window-scrolling.service.mjs +3 -3
  39. package/esm2020/core/customization/customization.service.mjs +3 -3
  40. package/esm2020/core/http/interceptors/error.interceptor.mjs +3 -3
  41. package/esm2020/core/http/interceptors/loader.interceptor.mjs +3 -3
  42. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +3 -3
  43. package/esm2020/core/http/services/http.service.mjs +3 -3
  44. package/esm2020/core/http/services/loader.service.mjs +3 -3
  45. package/esm2020/core/layout/layout.service.mjs +3 -3
  46. package/esm2020/core/layout/rtl.directive.mjs +6 -6
  47. package/esm2020/core/portal/attach.directive.mjs +3 -3
  48. package/esm2020/core/portal/portal.service.mjs +3 -3
  49. package/esm2020/core/portal/target.directive.mjs +3 -3
  50. package/esm2020/core/scroll-to/scroll-to.service.mjs +3 -3
  51. package/esm2020/date/date.component.mjs +3 -3
  52. package/esm2020/date/date.model.mjs +6 -6
  53. package/esm2020/date/date.module.mjs +4 -4
  54. package/esm2020/dialog/default-dialog.component.mjs +3 -3
  55. package/esm2020/dialog/dialog.component.mjs +3 -3
  56. package/esm2020/dialog/dialog.module.mjs +4 -4
  57. package/esm2020/dialog/dialog.service.mjs +3 -3
  58. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +3 -3
  59. package/esm2020/draggable-items/draggable-items.component.mjs +3 -3
  60. package/esm2020/draggable-items/draggable-items.module.mjs +4 -4
  61. package/esm2020/field-title/field-title.component.mjs +3 -3
  62. package/esm2020/field-title/field-title.module.mjs +4 -4
  63. package/esm2020/files-uploader/files-uploader.component.mjs +4 -4
  64. package/esm2020/files-uploader/files-uploader.module.mjs +4 -4
  65. package/esm2020/form/field-generator.component.mjs +7 -5
  66. package/esm2020/form/form.component.mjs +3 -3
  67. package/esm2020/form/form.module.mjs +17 -6
  68. package/esm2020/form/indicators.component.mjs +3 -3
  69. package/esm2020/form/internal-button.component.mjs +3 -3
  70. package/esm2020/form/internal-carusel.component.mjs +13 -15
  71. package/esm2020/form/internal-carusel.service.mjs +3 -3
  72. package/esm2020/form/internal-field-generator.component.mjs +147 -0
  73. package/esm2020/form/internal-form.component.mjs +1214 -0
  74. package/esm2020/form/internal-list.component.mjs +6 -6
  75. package/esm2020/form/internal-menu.component.mjs +3 -3
  76. package/esm2020/form/internal-page.component.mjs +16 -19
  77. package/esm2020/form/internal-page.service.mjs +3 -3
  78. package/esm2020/group-buttons/group-buttons.component.mjs +3 -3
  79. package/esm2020/group-buttons/group-buttons.module.mjs +4 -4
  80. package/esm2020/icon/icon-registry.service.mjs +3 -3
  81. package/esm2020/icon/icon.component.mjs +3 -3
  82. package/esm2020/icon/icon.module.mjs +4 -4
  83. package/esm2020/icon/icon.service.mjs +3 -3
  84. package/esm2020/image/image.component.mjs +3 -3
  85. package/esm2020/image/image.module.mjs +4 -4
  86. package/esm2020/image/image.service.mjs +3 -3
  87. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -3
  88. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +4 -4
  89. package/esm2020/link/link.component.mjs +11 -12
  90. package/esm2020/link/link.module.mjs +4 -4
  91. package/esm2020/link/link.pipes.mjs +3 -3
  92. package/esm2020/list/list-actions.component.mjs +4 -4
  93. package/esm2020/list/list-carousel.component.mjs +4 -4
  94. package/esm2020/list/list-chooser.component.mjs +4 -4
  95. package/esm2020/list/list-pager.component.mjs +4 -4
  96. package/esm2020/list/list-sorting.component.mjs +4 -4
  97. package/esm2020/list/list-total.component.mjs +4 -4
  98. package/esm2020/list/list-views.component.mjs +4 -4
  99. package/esm2020/list/list.component.mjs +3 -3
  100. package/esm2020/list/list.module.mjs +4 -4
  101. package/esm2020/list/list.pipes.mjs +6 -6
  102. package/esm2020/list/virtual-scroller.mjs +7 -7
  103. package/esm2020/menu/menu-item.component.mjs +3 -3
  104. package/esm2020/menu/menu.component.mjs +3 -3
  105. package/esm2020/menu/menu.module.mjs +4 -4
  106. package/esm2020/ngx-lib.module.mjs +8 -6
  107. package/esm2020/page-layout/page-layout.component.mjs +3 -3
  108. package/esm2020/page-layout/page-layout.module.mjs +4 -4
  109. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +5 -0
  110. package/esm2020/plugin/plugin-proxy.component.mjs +95 -0
  111. package/esm2020/plugin/plugin.model.mjs +2 -0
  112. package/esm2020/plugin/public-api.mjs +6 -0
  113. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +3 -3
  114. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +3 -3
  115. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +3 -3
  116. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +4 -4
  117. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +3 -3
  118. package/esm2020/quantity-selector/quantity-selector.component.mjs +3 -3
  119. package/esm2020/quantity-selector/quantity-selector.module.mjs +4 -4
  120. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +3 -3
  121. package/esm2020/query-builder/common/services/output-query.service.mjs +3 -3
  122. package/esm2020/query-builder/common/services/query-structure.service.mjs +14 -12
  123. package/esm2020/query-builder/common/services/type-convertor.service.mjs +3 -3
  124. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +3 -3
  125. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  126. package/esm2020/query-builder/query-builder.component.mjs +3 -3
  127. package/esm2020/query-builder/query-builder.module.mjs +11 -6
  128. package/esm2020/query-builder/query-builder.service.mjs +3 -3
  129. package/esm2020/remote-loader/addon-block-loader.component.mjs +3 -3
  130. package/esm2020/remote-loader/addon-block-loader.service.mjs +3 -3
  131. package/esm2020/remote-loader/remote-loader.component.mjs +32 -19
  132. package/esm2020/remote-loader/remote-loader.module.mjs +4 -4
  133. package/esm2020/remote-loader/remote-loader.service.mjs +3 -3
  134. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +3 -3
  135. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +4 -4
  136. package/esm2020/search/search.component.mjs +4 -4
  137. package/esm2020/search/search.module.mjs +4 -4
  138. package/esm2020/select/select.component.mjs +3 -3
  139. package/esm2020/select/select.module.mjs +4 -4
  140. package/esm2020/separator/separator.component.mjs +3 -3
  141. package/esm2020/separator/separator.module.mjs +4 -4
  142. package/esm2020/side-bar/side-bar.component.mjs +4 -4
  143. package/esm2020/side-bar/side-bar.module.mjs +4 -4
  144. package/esm2020/signature/signature.component.mjs +3 -3
  145. package/esm2020/signature/signature.module.mjs +4 -4
  146. package/esm2020/size-detector/size-detector.component.mjs +3 -3
  147. package/esm2020/size-detector/size-detector.module.mjs +4 -4
  148. package/esm2020/slider/slider.component.mjs +3 -3
  149. package/esm2020/slider/slider.module.mjs +4 -4
  150. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +3 -3
  151. package/esm2020/smart-filters/common/filter-actions.component.mjs +3 -3
  152. package/esm2020/smart-filters/common/model/base-filter-component.mjs +4 -4
  153. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +3 -3
  154. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  155. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  156. package/esm2020/smart-filters/smart-filters.component.mjs +3 -3
  157. package/esm2020/smart-filters/smart-filters.module.mjs +11 -6
  158. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +3 -3
  159. package/esm2020/snack-bar/default-snack-bar.component.mjs +3 -3
  160. package/esm2020/snack-bar/snack-bar.component.mjs +3 -3
  161. package/esm2020/snack-bar/snack-bar.module.mjs +4 -4
  162. package/esm2020/snack-bar/snack-bar.service.mjs +3 -3
  163. package/esm2020/textarea/textarea.component.mjs +3 -3
  164. package/esm2020/textarea/textarea.module.mjs +4 -4
  165. package/esm2020/textbox/textbox-validation.directive.mjs +3 -3
  166. package/esm2020/textbox/textbox.component.mjs +10 -11
  167. package/esm2020/textbox/textbox.module.mjs +4 -4
  168. package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
  169. package/esm2020/textbox-icon/textbox-icon.module.mjs +4 -4
  170. package/esm2020/top-bar/top-bar.component.mjs +3 -3
  171. package/esm2020/top-bar/top-bar.module.mjs +4 -4
  172. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +7 -7
  173. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +7 -7
  174. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +8 -8
  175. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +7 -7
  176. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +10 -10
  177. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +7 -7
  178. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +10 -10
  179. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +13 -13
  180. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  181. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +10 -10
  182. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +7 -7
  183. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +8 -8
  184. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +1556 -229
  185. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  186. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -7
  187. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +13 -13
  188. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +10 -10
  189. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +7 -7
  190. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +16 -17
  191. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  192. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +48 -48
  193. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -10
  194. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  195. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +112 -0
  196. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  197. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +13 -13
  198. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +13 -13
  199. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +38 -31
  200. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  201. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +47 -34
  202. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  203. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +7 -7
  204. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +8 -8
  205. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +7 -7
  206. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +7 -7
  207. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +8 -8
  208. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +7 -7
  209. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +7 -7
  210. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +7 -7
  211. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +34 -29
  212. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  213. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  214. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +7 -7
  215. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  216. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +17 -18
  217. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  218. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +7 -7
  219. package/fesm2015/pepperi-addons-ngx-lib.mjs +139 -137
  220. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  221. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +7 -7
  222. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +7 -7
  223. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +8 -8
  224. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +7 -7
  225. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +10 -10
  226. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +7 -7
  227. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +10 -10
  228. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +13 -13
  229. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  230. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +10 -10
  231. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +7 -7
  232. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +8 -8
  233. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +1553 -227
  234. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  235. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -7
  236. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +13 -13
  237. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +10 -10
  238. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +7 -7
  239. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +16 -17
  240. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  241. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +48 -48
  242. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -10
  243. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  244. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +106 -0
  245. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  246. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +13 -13
  247. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +13 -13
  248. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +38 -31
  249. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  250. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +44 -31
  251. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  252. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +7 -7
  253. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +8 -8
  254. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +7 -7
  255. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +7 -7
  256. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +8 -8
  257. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +7 -7
  258. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +7 -7
  259. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +7 -7
  260. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +34 -29
  261. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  262. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  263. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +7 -7
  264. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  265. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +17 -18
  266. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  267. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +7 -7
  268. package/fesm2020/pepperi-addons-ngx-lib.mjs +139 -137
  269. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  270. package/form/form.module.d.ts +40 -38
  271. package/form/internal-carusel.component.d.ts +1 -3
  272. package/form/internal-field-generator.component.d.ts +35 -0
  273. package/form/internal-form.component.d.ts +89 -0
  274. package/form/internal-page.component.d.ts +2 -4
  275. package/link/link.component.d.ts +2 -3
  276. package/package.json +16 -8
  277. package/plugin/index.d.ts +5 -0
  278. package/plugin/plugin-proxy.component.d.ts +25 -0
  279. package/plugin/plugin.model.d.ts +6 -0
  280. package/plugin/public-api.d.ts +2 -0
  281. package/query-builder/common/services/query-structure.service.d.ts +3 -4
  282. package/textbox/textbox.component.d.ts +2 -3
@@ -141,9 +141,9 @@ export class PepInternalButtonComponent {
141
141
  this.valueChange.emit(this.value);
142
142
  }
143
143
  }
144
- PepInternalButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalButtonComponent, deps: [{ token: i1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
145
- PepInternalButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", referenceObjectInternalType: "referenceObjectInternalType", type: "type", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", showTitle: "showTitle", layoutType: "layoutType" }, outputs: { elementClick: "elementClick", valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'reference'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <div class=\"pep-button-container reference-button\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngIf=\"createNewReference; then newBlock; else existingBlock\"></ng-container>\n <ng-template #newBlock>\n <button mat-button [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-button md regular\"\n (click)=\"onButtonClicked($event)\" [ngClass]=\"{\n disabled: disabled,\n 'pull-left': xAlignment == 'left',\n 'pull-right': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <span class=\"ellipsis pull-left flip button-title-with-icon\">{{ 'ACTIONS.CREATE_NEW' | translate\n }}</span>\n <mat-icon class=\"pull-right flip\" pepRtlClass>\n <pep-icon name=\"number_plus\" (click)=\"onButtonClicked($event)\">\n </pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #existingBlock>\n <pep-group-buttons [buttons]=\"referenceButtons\" styleType=\"regular\" viewType=\"split\">\n </pep-group-buttons>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'listofobjects'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'button'\">\n <ng-container [ngSwitch]=\"key\">\n <ng-container *ngSwitchCase=\"'ObjectMenu'\">\n <span (click)=\"onButtonClicked($event)\" title=\"{{ key }}\">\n <mat-icon>\n <pep-icon *ngIf=\"key == 'ObjectMenu'\" name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Agents' || 'ContactPersons' || 'Buyers'\">\n <ng-container *ngIf=\"layoutType === 'table'; then tableBlock; else nonTableBlock\">\n </ng-container>\n <ng-template #nonTableBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #tableBlock>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-report-input readonly body-sm\">{{\n formattedValue }}</span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"layoutType === 'form'; then buttonBlock; else linkBlock\">\n </ng-container>\n\n <ng-template #buttonBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: false}\"></ng-container>\n </ng-template>\n <ng-template #linkBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #buttonTemplate let-internal=\"internal\">\n <div class=\"pep-button-container\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n\n <ng-container *ngIf=\"internal; then internalButtonTemplate; else regularButtonTemplate\"></ng-container>\n <ng-template #regularButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"onButtonClicked($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n {{ formattedValue }}\n </button>\n </ng-template>\n\n <ng-template #internalButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"openReferenceObjectInternal($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n <ng-container *ngIf=\"formattedValue == '0' || formattedValue == ''; then newBlock; else existingBlock\">\n </ng-container>\n <ng-template #newBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ 'LIST.SELECT' | translate }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n <ng-template #existingBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ formattedValue }}&nbsp;{{ 'LIST.SELECTED' |\n translate\n }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n </button>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #linkTemplate>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a href=\"{{ value }}\" (mousedown)=\"hrefFunction($event)\" class=\"color-link\">\n <span *ngIf=\"layoutType === 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\"\n class=\"body-sm pep-report-input readonly\">\n {{ formattedValue }}\n </span>\n <span *ngIf=\"layoutType !== 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm pep-card-input\"\n style=\"display: block;\">\n {{ formattedValue }}\n </span>\n </a>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button-container,.pep-button-container{height:-moz-fit-content;height:fit-content}.pepperi-button-container .center-alignment,.pep-button-container .center-alignment{position:absolute;left:50%;transform:translate(-50%)}.pepperi-button-container.reference-button ::ng-deep .split-buttons,.pepperi-button-container.reference-button .split-buttons,.pep-button-container.reference-button ::ng-deep .split-buttons,.pep-button-container.reference-button .split-buttons{float:left}.pepperi-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pepperi-button-container.reference-button .split-buttons button:last-of-type,.pep-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pep-button-container.reference-button .split-buttons button:last-of-type{width:1.5rem;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.PepRtlClassDirective, selector: "[pepRtlClass]" }, { kind: "component", type: i6.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i8.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalButtonComponent, decorators: [{
144
+ PepInternalButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalButtonComponent, deps: [{ token: i1.PepCustomizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
145
+ PepInternalButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalButtonComponent, selector: "pep-internal-button", inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", referenceObjectInternalType: "referenceObjectInternalType", type: "type", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", xAlignment: "xAlignment", rowSpan: "rowSpan", visible: "visible", form: "form", showTitle: "showTitle", layoutType: "layoutType" }, outputs: { elementClick: "elementClick", valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'reference'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <div class=\"pep-button-container reference-button\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngIf=\"createNewReference; then newBlock; else existingBlock\"></ng-container>\n <ng-template #newBlock>\n <button mat-button [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-button md regular\"\n (click)=\"onButtonClicked($event)\" [ngClass]=\"{\n disabled: disabled,\n 'pull-left': xAlignment == 'left',\n 'pull-right': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <span class=\"ellipsis pull-left flip button-title-with-icon\">{{ 'ACTIONS.CREATE_NEW' | translate\n }}</span>\n <mat-icon class=\"pull-right flip\" pepRtlClass>\n <pep-icon name=\"number_plus\" (click)=\"onButtonClicked($event)\">\n </pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #existingBlock>\n <pep-group-buttons [buttons]=\"referenceButtons\" styleType=\"regular\" viewType=\"split\">\n </pep-group-buttons>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'listofobjects'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'button'\">\n <ng-container [ngSwitch]=\"key\">\n <ng-container *ngSwitchCase=\"'ObjectMenu'\">\n <span (click)=\"onButtonClicked($event)\" title=\"{{ key }}\">\n <mat-icon>\n <pep-icon *ngIf=\"key == 'ObjectMenu'\" name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Agents' || 'ContactPersons' || 'Buyers'\">\n <ng-container *ngIf=\"layoutType === 'table'; then tableBlock; else nonTableBlock\">\n </ng-container>\n <ng-template #nonTableBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #tableBlock>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-report-input readonly body-sm\">{{\n formattedValue }}</span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"layoutType === 'form'; then buttonBlock; else linkBlock\">\n </ng-container>\n\n <ng-template #buttonBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: false}\"></ng-container>\n </ng-template>\n <ng-template #linkBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #buttonTemplate let-internal=\"internal\">\n <div class=\"pep-button-container\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n\n <ng-container *ngIf=\"internal; then internalButtonTemplate; else regularButtonTemplate\"></ng-container>\n <ng-template #regularButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"onButtonClicked($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n {{ formattedValue }}\n </button>\n </ng-template>\n\n <ng-template #internalButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"openReferenceObjectInternal($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n <ng-container *ngIf=\"formattedValue == '0' || formattedValue == ''; then newBlock; else existingBlock\">\n </ng-container>\n <ng-template #newBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ 'LIST.SELECT' | translate }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n <ng-template #existingBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ formattedValue }}&nbsp;{{ 'LIST.SELECTED' |\n translate\n }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n </button>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #linkTemplate>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a href=\"{{ value }}\" (mousedown)=\"hrefFunction($event)\" class=\"color-link\">\n <span *ngIf=\"layoutType === 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\"\n class=\"body-sm pep-report-input readonly\">\n {{ formattedValue }}\n </span>\n <span *ngIf=\"layoutType !== 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm pep-card-input\"\n style=\"display: block;\">\n {{ formattedValue }}\n </span>\n </a>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button-container,.pep-button-container{height:-moz-fit-content;height:fit-content}.pepperi-button-container .center-alignment,.pep-button-container .center-alignment{position:absolute;left:50%;transform:translate(-50%)}.pepperi-button-container.reference-button ::ng-deep .split-buttons,.pepperi-button-container.reference-button .split-buttons,.pep-button-container.reference-button ::ng-deep .split-buttons,.pep-button-container.reference-button .split-buttons{float:left}.pepperi-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pepperi-button-container.reference-button .split-buttons button:last-of-type,.pep-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pep-button-container.reference-button .split-buttons button:last-of-type{width:1.5rem;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.PepRtlClassDirective, selector: "[pepRtlClass]" }, { kind: "component", type: i6.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }, { kind: "component", type: i8.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalButtonComponent, decorators: [{
147
147
  type: Component,
148
148
  args: [{ selector: 'pep-internal-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'reference'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <div class=\"pep-button-container reference-button\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngIf=\"createNewReference; then newBlock; else existingBlock\"></ng-container>\n <ng-template #newBlock>\n <button mat-button [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-button md regular\"\n (click)=\"onButtonClicked($event)\" [ngClass]=\"{\n disabled: disabled,\n 'pull-left': xAlignment == 'left',\n 'pull-right': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <span class=\"ellipsis pull-left flip button-title-with-icon\">{{ 'ACTIONS.CREATE_NEW' | translate\n }}</span>\n <mat-icon class=\"pull-right flip\" pepRtlClass>\n <pep-icon name=\"number_plus\" (click)=\"onButtonClicked($event)\">\n </pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #existingBlock>\n <pep-group-buttons [buttons]=\"referenceButtons\" styleType=\"regular\" viewType=\"split\">\n </pep-group-buttons>\n </ng-template>\n </div>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'listofobjects'\">\n <ng-container *ngIf=\"layoutType === 'form'; then formBlock; else notFormBlock\"></ng-container>\n <ng-template #formBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #notFormBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'button'\">\n <ng-container [ngSwitch]=\"key\">\n <ng-container *ngSwitchCase=\"'ObjectMenu'\">\n <span (click)=\"onButtonClicked($event)\" title=\"{{ key }}\">\n <mat-icon>\n <pep-icon *ngIf=\"key == 'ObjectMenu'\" name=\"system_menu\">\n </pep-icon>\n </mat-icon>\n </span>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Agents' || 'ContactPersons' || 'Buyers'\">\n <ng-container *ngIf=\"layoutType === 'table'; then tableBlock; else nonTableBlock\">\n </ng-container>\n <ng-template #nonTableBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: true}\"></ng-container>\n </ng-template>\n <ng-template #tableBlock>\n <span [id]=\"key\" title=\"{{ formattedValue }}\" class=\"pep-report-input readonly body-sm\">{{\n formattedValue }}</span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"layoutType === 'form'; then buttonBlock; else linkBlock\">\n </ng-container>\n\n <ng-template #buttonBlock>\n <ng-container *ngTemplateOutlet=\"buttonTemplate; context: {internal: false}\"></ng-container>\n </ng-template>\n <ng-template #linkBlock>\n <ng-container *ngTemplateOutlet=\"linkTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #buttonTemplate let-internal=\"internal\">\n <div class=\"pep-button-container\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n\n <ng-container *ngIf=\"internal; then internalButtonTemplate; else regularButtonTemplate\"></ng-container>\n <ng-template #regularButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"onButtonClicked($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n {{ formattedValue }}\n </button>\n </ng-template>\n\n <ng-template #internalButtonTemplate>\n <button [id]=\"key\" title=\"{{ formattedValue }}\" mat-button class=\"pep-button md regular\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" (click)=\"openReferenceObjectInternal($event)\"\n [disabled]=\"disabled\"\n [ngClass]=\"{disabled: disabled, 'pull-left': xAlignment == 'left', 'pull-right': xAlignment == 'right', 'center-alignment': xAlignment == 'center'}\">\n <ng-container *ngIf=\"formattedValue == '0' || formattedValue == ''; then newBlock; else existingBlock\">\n </ng-container>\n <ng-template #newBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ 'LIST.SELECT' | translate }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n <ng-template #existingBlock>\n <span class=\"pull-left flip button-title-with-icon\">{{ formattedValue }}&nbsp;{{ 'LIST.SELECTED' |\n translate\n }}&nbsp;</span>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n </button>\n </ng-template>\n </div>\n</ng-template>\n\n<ng-template #linkTemplate>\n <ng-container *ngIf=\"formattedValue?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <a href=\"{{ value }}\" (mousedown)=\"hrefFunction($event)\" class=\"color-link\">\n <span *ngIf=\"layoutType === 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\"\n class=\"body-sm pep-report-input readonly\">\n {{ formattedValue }}\n </span>\n <span *ngIf=\"layoutType !== 'table'\" [id]=\"key\" title=\"{{ formattedValue }}\" class=\"body-sm pep-card-input\"\n style=\"display: block;\">\n {{ formattedValue }}\n </span>\n </a>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n</ng-template>", styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pepperi-button-container,.pep-button-container{height:-moz-fit-content;height:fit-content}.pepperi-button-container .center-alignment,.pep-button-container .center-alignment{position:absolute;left:50%;transform:translate(-50%)}.pepperi-button-container.reference-button ::ng-deep .split-buttons,.pepperi-button-container.reference-button .split-buttons,.pep-button-container.reference-button ::ng-deep .split-buttons,.pep-button-container.reference-button .split-buttons{float:left}.pepperi-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pepperi-button-container.reference-button .split-buttons button:last-of-type,.pep-button-container.reference-button ::ng-deep .split-buttons button:last-of-type,.pep-button-container.reference-button .split-buttons button:last-of-type{width:1.5rem;padding:0}\n"] }]
149
149
  }], ctorParameters: function () { return [{ type: i1.PepCustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { key: [{
@@ -4,16 +4,14 @@ import { PepScreenSizeType, } from '@pepperi-addons/ngx-lib';
4
4
  import { PepQuantitySelectorComponent } from '@pepperi-addons/ngx-lib/quantity-selector';
5
5
  import { PepCarouselComponent } from '@pepperi-addons/ngx-lib/carousel';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "@pepperi-addons/ngx-lib";
9
- import * as i3 from "./internal-carusel.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@pepperi-addons/ngx-lib/button";
12
- import * as i6 from "@pepperi-addons/ngx-lib/carousel";
13
- import * as i7 from "./form.component";
7
+ import * as i1 from "@pepperi-addons/ngx-lib";
8
+ import * as i2 from "./internal-carusel.service";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@pepperi-addons/ngx-lib/button";
11
+ import * as i5 from "@pepperi-addons/ngx-lib/carousel";
12
+ import * as i6 from "./internal-form.component";
14
13
  export class PepInternalCaruselComponent {
15
- constructor(fb, layoutService, internalCaruselService) {
16
- this.fb = fb;
14
+ constructor(layoutService, internalCaruselService) {
17
15
  this.layoutService = layoutService;
18
16
  this.internalCaruselService = internalCaruselService;
19
17
  this.layoutType = 'form';
@@ -99,12 +97,12 @@ export class PepInternalCaruselComponent {
99
97
  this.nextDisabled = event;
100
98
  }
101
99
  }
102
- PepInternalCaruselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalCaruselComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PepLayoutService }, { token: i3.PepInternalCaruselService }], target: i0.ɵɵFactoryTarget.Component });
103
- PepInternalCaruselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepInternalCaruselComponent, selector: "pep-internal-carusel", inputs: { field: "field", layoutType: "layoutType" }, outputs: { internalFormFieldChange: "internalFormFieldChange", internalFormFieldClick: "internalFormFieldClick" }, providers: [PepInternalCaruselService], viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true, read: PepCarouselComponent }], ngImport: i0, template: "<div class=\"carousel-container\">\n <ng-container *ngIf=\"items?.length > 0; then carouselBlock; else emptyBlock\"></ng-container>\n <ng-template #emptyBlock>\n <!-- No items -->\n </ng-template>\n <ng-template #carouselBlock>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_left_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"prevDisabled\" (click)=\"moveLeft()\" class=\"carousel-arrow start-arrow\">\n </pep-button>\n <pep-carousel #carousel [xWheelEnabled]=\"false\" [snapDuration]=\"duration\"\n (reachesLeftBound)=\"onReachesLeftBound($event)\" (reachesRightBound)=\"onReachesRightBound($event)\">\n <ng-container *ngFor=\"let item of items\">\n <pep-form pepCarouselItem [layout]=\"layout\" [data]=\"item\" [layoutType]=\"'card'\" class=\"card-view \"\n (valueChange)=\"onCustomizeObjectChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\">\n </pep-form>\n </ng-container>\n </pep-carousel>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_right_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"nextDisabled\" (click)=\"moveRight()\" class=\"carousel-arrow end-arrow\">\n </pep-button>\n </ng-template>\n</div>", styles: [".carousel-container{position:relative;margin:0;display:grid}.carousel-container .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.carousel-container .carousel-arrow.start-arrow{left:0}.carousel-container .carousel-arrow.end-arrow{right:0}.carousel-container ::ng-deep .carousel-content .card-view{padding:var(--pep-spacing-sm, .5rem) 0!important}.carousel-container ::ng-deep .carousel-content .card-view:first-child{padding-inline-start:var(--pep-spacing-sm, .5rem)!important}.carousel-container ::ng-deep .carousel-content .card-view:last-child{padding-inline-end:var(--pep-spacing-sm, .5rem)!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i6.PepCarouselComponent, selector: "pep-carousel", inputs: ["scrollbarHidden", "disabled", "xDisabled", "yDisabled", "xWheelEnabled", "dragDisabled", "snapDisabled", "snapOffset", "snapDuration"], outputs: ["dsInitialized", "indexChanged", "reachesLeftBound", "reachesRightBound", "snapAnimationFinished", "dragStart", "dragEnd"] }, { kind: "directive", type: i6.PepCarouselItemDirective, selector: "[pepCarouselItem]", inputs: ["dragDisabled"] }, { kind: "component", type: i7.PepFormComponent, selector: "pep-form", inputs: ["isInternal", "isReport", "layout", "lockEvents", "canEditObject", "data", "lockFields", "isActive", "layoutType", "objectId", "parentId", "searchCode", "showTitle", "firstFieldAsLink", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "fieldClick", "internalFormFieldClick", "internalFormFieldChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalCaruselComponent, decorators: [{
100
+ PepInternalCaruselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselComponent, deps: [{ token: i1.PepLayoutService }, { token: i2.PepInternalCaruselService }], target: i0.ɵɵFactoryTarget.Component });
101
+ PepInternalCaruselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalCaruselComponent, selector: "pep-internal-carusel", inputs: { field: "field", layoutType: "layoutType" }, outputs: { internalFormFieldChange: "internalFormFieldChange", internalFormFieldClick: "internalFormFieldClick" }, providers: [PepInternalCaruselService], viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true, read: PepCarouselComponent }], ngImport: i0, template: "<div class=\"carousel-container\">\n <ng-container *ngIf=\"items?.length > 0; then carouselBlock; else emptyBlock\"></ng-container>\n <ng-template #emptyBlock>\n <!-- No items -->\n </ng-template>\n <ng-template #carouselBlock>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_left_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"prevDisabled\" (click)=\"moveLeft()\" class=\"carousel-arrow start-arrow\">\n </pep-button>\n <pep-carousel #carousel [xWheelEnabled]=\"false\" [snapDuration]=\"duration\"\n (reachesLeftBound)=\"onReachesLeftBound($event)\" (reachesRightBound)=\"onReachesRightBound($event)\">\n <ng-container *ngFor=\"let item of items\">\n <pep-internal-form pepCarouselItem [layout]=\"layout\" [data]=\"item\" [layoutType]=\"'card'\" class=\"card-view \"\n (valueChange)=\"onCustomizeObjectChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\">\n </pep-internal-form>\n </ng-container>\n </pep-carousel>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_right_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"nextDisabled\" (click)=\"moveRight()\" class=\"carousel-arrow end-arrow\">\n </pep-button>\n </ng-template>\n</div>", styles: [".carousel-container{position:relative;margin:0;display:grid}.carousel-container .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.carousel-container .carousel-arrow.start-arrow{left:0}.carousel-container .carousel-arrow.end-arrow{right:0}.carousel-container ::ng-deep .carousel-content .card-view{padding:var(--pep-spacing-sm, .5rem) 0!important}.carousel-container ::ng-deep .carousel-content .card-view:first-child{padding-inline-start:var(--pep-spacing-sm, .5rem)!important}.carousel-container ::ng-deep .carousel-content .card-view:last-child{padding-inline-end:var(--pep-spacing-sm, .5rem)!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.PepCarouselComponent, selector: "pep-carousel", inputs: ["scrollbarHidden", "disabled", "xDisabled", "yDisabled", "xWheelEnabled", "dragDisabled", "snapDisabled", "snapOffset", "snapDuration"], outputs: ["dsInitialized", "indexChanged", "reachesLeftBound", "reachesRightBound", "snapAnimationFinished", "dragStart", "dragEnd"] }, { kind: "directive", type: i5.PepCarouselItemDirective, selector: "[pepCarouselItem]", inputs: ["dragDisabled"] }, { kind: "component", type: i6.PepInternalFormComponent, selector: "pep-internal-form", inputs: ["isInternal", "isReport", "layout", "lockEvents", "canEditObject", "data", "lockFields", "isActive", "layoutType", "objectId", "parentId", "searchCode", "showTitle", "firstFieldAsLink", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "fieldClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselComponent, decorators: [{
105
103
  type: Component,
106
- args: [{ selector: 'pep-internal-carusel', providers: [PepInternalCaruselService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"carousel-container\">\n <ng-container *ngIf=\"items?.length > 0; then carouselBlock; else emptyBlock\"></ng-container>\n <ng-template #emptyBlock>\n <!-- No items -->\n </ng-template>\n <ng-template #carouselBlock>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_left_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"prevDisabled\" (click)=\"moveLeft()\" class=\"carousel-arrow start-arrow\">\n </pep-button>\n <pep-carousel #carousel [xWheelEnabled]=\"false\" [snapDuration]=\"duration\"\n (reachesLeftBound)=\"onReachesLeftBound($event)\" (reachesRightBound)=\"onReachesRightBound($event)\">\n <ng-container *ngFor=\"let item of items\">\n <pep-form pepCarouselItem [layout]=\"layout\" [data]=\"item\" [layoutType]=\"'card'\" class=\"card-view \"\n (valueChange)=\"onCustomizeObjectChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\">\n </pep-form>\n </ng-container>\n </pep-carousel>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_right_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"nextDisabled\" (click)=\"moveRight()\" class=\"carousel-arrow end-arrow\">\n </pep-button>\n </ng-template>\n</div>", styles: [".carousel-container{position:relative;margin:0;display:grid}.carousel-container .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.carousel-container .carousel-arrow.start-arrow{left:0}.carousel-container .carousel-arrow.end-arrow{right:0}.carousel-container ::ng-deep .carousel-content .card-view{padding:var(--pep-spacing-sm, .5rem) 0!important}.carousel-container ::ng-deep .carousel-content .card-view:first-child{padding-inline-start:var(--pep-spacing-sm, .5rem)!important}.carousel-container ::ng-deep .carousel-content .card-view:last-child{padding-inline-end:var(--pep-spacing-sm, .5rem)!important}\n"] }]
107
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PepLayoutService }, { type: i3.PepInternalCaruselService }]; }, propDecorators: { carousel: [{
104
+ args: [{ selector: 'pep-internal-carusel', providers: [PepInternalCaruselService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"carousel-container\">\n <ng-container *ngIf=\"items?.length > 0; then carouselBlock; else emptyBlock\"></ng-container>\n <ng-template #emptyBlock>\n <!-- No items -->\n </ng-template>\n <ng-template #carouselBlock>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_left_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"prevDisabled\" (click)=\"moveLeft()\" class=\"carousel-arrow start-arrow\">\n </pep-button>\n <pep-carousel #carousel [xWheelEnabled]=\"false\" [snapDuration]=\"duration\"\n (reachesLeftBound)=\"onReachesLeftBound($event)\" (reachesRightBound)=\"onReachesRightBound($event)\">\n <ng-container *ngFor=\"let item of items\">\n <pep-internal-form pepCarouselItem [layout]=\"layout\" [data]=\"item\" [layoutType]=\"'card'\" class=\"card-view \"\n (valueChange)=\"onCustomizeObjectChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\">\n </pep-internal-form>\n </ng-container>\n </pep-carousel>\n <pep-button *ngIf=\"screenSize <= PepScreenSizeType.SM\" [iconName]=\"'arrow_right_alt'\" [styleType]=\"'regular'\"\n [disabled]=\"nextDisabled\" (click)=\"moveRight()\" class=\"carousel-arrow end-arrow\">\n </pep-button>\n </ng-template>\n</div>", styles: [".carousel-container{position:relative;margin:0;display:grid}.carousel-container .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.carousel-container .carousel-arrow.start-arrow{left:0}.carousel-container .carousel-arrow.end-arrow{right:0}.carousel-container ::ng-deep .carousel-content .card-view{padding:var(--pep-spacing-sm, .5rem) 0!important}.carousel-container ::ng-deep .carousel-content .card-view:first-child{padding-inline-start:var(--pep-spacing-sm, .5rem)!important}.carousel-container ::ng-deep .carousel-content .card-view:last-child{padding-inline-end:var(--pep-spacing-sm, .5rem)!important}\n"] }]
105
+ }], ctorParameters: function () { return [{ type: i1.PepLayoutService }, { type: i2.PepInternalCaruselService }]; }, propDecorators: { carousel: [{
108
106
  type: ViewChild,
109
107
  args: ['carousel', { read: PepCarouselComponent }]
110
108
  }], field: [{
@@ -116,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImpor
116
114
  }], internalFormFieldClick: [{
117
115
  type: Output
118
116
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtY2FydXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtY2FydXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtY2FydXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLHVCQUF1QixFQUV2QixTQUFTLEdBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsT0FBTyxFQU9ILGlCQUFpQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFTeEUsTUFBTSxPQUFPLDJCQUEyQjtJQTZDcEMsWUFDYyxFQUFlLEVBQ2pCLGFBQStCLEVBQy9CLHNCQUFpRDtRQUYvQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBN0JwRCxlQUFVLEdBQWtCLE1BQU0sQ0FBQztRQUc1Qyw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRSwyQkFBc0IsR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFcEcsV0FBTSxHQUFlLElBQUksQ0FBQztRQVNsQyxXQUFNLEdBQVEsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFUixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUV4QixpQkFBWSxHQUFHLEtB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SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQZXBJbnRlcm5hbENhcnVzZWxTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcm5hbC1jYXJ1c2VsLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICAgIFBlcExheW91dFR5cGUsXG4gICAgVUlDb250cm9sLFxuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIE9iamVjdHNEYXRhUm93LFxuICAgIFBlcEludGVybmFsQ2FydXNlbEZpZWxkLFxuICAgIFBlcExheW91dFNlcnZpY2UsXG4gICAgUGVwU2NyZWVuU2l6ZVR5cGUsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgSVBlcEZvcm1GaWVsZENsaWNrRXZlbnQsXG4gICAgSVBlcEZvcm1GaWVsZFZhbHVlQ2hhbmdlRXZlbnQsXG59IGZyb20gJy4vZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcXVhbnRpdHktc2VsZWN0b3InO1xuaW1wb3J0IHsgUGVwQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9jYXJvdXNlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWludGVybmFsLWNhcnVzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1jYXJ1c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1jYXJ1c2VsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUGVwSW50ZXJuYWxDYXJ1c2VsU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsQ2FydXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnLCB7IHJlYWQ6IFBlcENhcm91c2VsQ29tcG9uZW50IH0pXG4gICAgY2Fyb3VzZWw6IFBlcENhcm91c2VsQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBfZmllbGQ6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWVsZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgICAgIGNvbnN0IGNhcnVzZWxGaWVsZCA9IHRoaXMuX2ZpZWxkIGFzIFBlcEludGVybmFsQ2FydXNlbEZpZWxkO1xuXG4gICAgICAgIGlmIChjYXJ1c2VsRmllbGQgJiYgY2FydXNlbEZpZWxkLnBhZ2VJbmZvKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dCA9IGNhcnVzZWxGaWVsZC5wYWdlSW5mby5VSUNvbnRyb2w7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gY2FydXNlbEZpZWxkLnBhZ2VJbmZvLlJvd3M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGZpZWxkKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgaW50ZXJuYWxGb3JtRmllbGRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIF9pdGVtczogQXJyYXk8YW55PiA9IG51bGw7XG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgICAgIC8vIHRoaXMubW92ZVRvKDApO1xuICAgIH1cbiAgICBnZXQgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICBsYXlvdXQ6IGFueSA9IG51bGw7XG4gICAgZHVyYXRpb24gPSAxMDAwO1xuXG4gICAgcHJpdmF0ZSBpdGVtc1RvTW92ZSA9IDM7XG5cbiAgICBwcmV2RGlzYWJsZWQgPSBmYWxzZTtcbiAgICBuZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICBzY3JlZW5TaXplOiBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBQZXBTY3JlZW5TaXplVHlwZSA9IFBlcFNjcmVlblNpemVUeXBlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbnRlcm5hbENhcnVzZWxTZXJ2aWNlOiBQZXBJbnRlcm5hbENhcnVzZWxTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJC5zdWJzY3JpYmUoKHNpemU6IFBlcFNjcmVlblNpemVUeXBlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkN1c3RvbWl6ZU9iamVjdENoYW5nZWQoXG4gICAgICAgIGN1c3RvbWl6ZU9iamVjdENoYW5nZWREYXRhOiBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsQ2FydXNlbFNlcnZpY2UuZW1pdEV2ZW50KGN1c3RvbWl6ZU9iamVjdENoYW5nZWREYXRhLnVpT2JqZWN0S2V5LCBjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YS5rZXksIGN1c3RvbWl6ZU9iamVjdENoYW5nZWREYXRhLnZhbHVlLCAnU2V0RmllbGRWYWx1ZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UuZW1pdChjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ3VzdG9taXplRmllbGRDbGljayhmaWVsZENsaWNrRXZlbnQ6IElQZXBGb3JtRmllbGRDbGlja0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCBoYW5kbGVkRXZlbnQgPSBmYWxzZTtcblxuICAgICAgICAvLyBGb3IgdGhlIG5ldyBjdXN0b20gZm9ybSwgdGhlIHBsdXMgYW5kIG1pbnVzIGV2ZW50cyB0cmFuc2Zvcm0gaW4gdGhlIElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50XG4gICAgICAgIGlmIChmaWVsZENsaWNrRXZlbnQuY29udHJvbFR5cGUgPT09ICdxcycpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZENsaWNrRXZlbnQudmFsdWUgPT09IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuUExVUykge1xuICAgICAgICAgICAgICAgIGhhbmRsZWRFdmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbENhcnVzZWxTZXJ2aWNlLmVtaXRFdmVudChmaWVsZENsaWNrRXZlbnQudWlPYmplY3RLZXksIGZpZWxkQ2xpY2tFdmVudC5rZXksICcnLCAnSW5jcmVtZW50RmllbGRWYWx1ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbEZvcm1GaWVsZENoYW5nZS5lbWl0KHt9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZENsaWNrRXZlbnQudmFsdWUgPT09IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuTUlOVVMpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVkRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxDYXJ1c2VsU2VydmljZS5lbWl0RXZlbnQoZmllbGRDbGlja0V2ZW50LnVpT2JqZWN0S2V5LCBmaWVsZENsaWNrRXZlbnQua2V5LCAnJywgJ0RlY3JlbWVudEZpZWxkVmFsdWUnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UuZW1pdCh7fSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhhbmRsZWRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbEZvcm1GaWVsZENsaWNrLmVtaXQoZmllbGRDbGlja0V2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVMZWZ0KCkge1xuICAgICAgICBjb25zdCBpbmRleFRvTW92ZSA9IE1hdGgubWF4KFxuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5jdXJySW5kZXggLSB0aGlzLml0ZW1zVG9Nb3ZlLFxuICAgICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vdmVUbyhpbmRleFRvTW92ZSk7XG4gICAgfVxuXG4gICAgbW92ZVJpZ2h0KCkge1xuICAgICAgICBjb25zdCBpbmRleFRvTW92ZSA9IE1hdGgubWluKFxuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5jdXJySW5kZXggKyB0aGlzLml0ZW1zVG9Nb3ZlLFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5tb3ZlVG8oaW5kZXhUb01vdmUpO1xuICAgIH1cblxuICAgIG1vdmVUbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmNhcm91c2VsKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLm1vdmVUbyhpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlYWNoZXNMZWZ0Qm91bmQoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wcmV2RGlzYWJsZWQgPSBldmVudDtcbiAgICB9XG5cbiAgICBvblJlYWNoZXNSaWdodEJvdW5kKGV2ZW50OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubmV4dERpc2FibGVkID0gZXZlbnQ7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXM/Lmxlbmd0aCA+IDA7IHRoZW4gY2Fyb3VzZWxCbG9jazsgZWxzZSBlbXB0eUJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eUJsb2NrPlxuICAgICAgICA8IS0tIE5vIGl0ZW1zIC0tPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjYXJvdXNlbEJsb2NrPlxuICAgICAgICA8cGVwLWJ1dHRvbiAqbmdJZj1cInNjcmVlblNpemUgPD0gUGVwU2NyZWVuU2l6ZVR5cGUuU01cIiBbaWNvbk5hbWVdPVwiJ2Fycm93X2xlZnRfYWx0J1wiIFtzdHlsZVR5cGVdPVwiJ3JlZ3VsYXInXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmV2RGlzYWJsZWRcIiAoY2xpY2spPVwibW92ZUxlZnQoKVwiIGNsYXNzPVwiY2Fyb3VzZWwtYXJyb3cgc3RhcnQtYXJyb3dcIj5cbiAgICAgICAgPC9wZXAtYnV0dG9uPlxuICAgICAgICA8cGVwLWNhcm91c2VsICNjYXJvdXNlbCBbeFdoZWVsRW5hYmxlZF09XCJmYWxzZVwiIFtzbmFwRHVyYXRpb25dPVwiZHVyYXRpb25cIlxuICAgICAgICAgICAgKHJlYWNoZXNMZWZ0Qm91bmQpPVwib25SZWFjaGVzTGVmdEJvdW5kKCRldmVudClcIiAocmVhY2hlc1JpZ2h0Qm91bmQpPVwib25SZWFjaGVzUmlnaHRCb3VuZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHBlcC1mb3JtIHBlcENhcm91c2VsSXRlbSBbbGF5b3V0XT1cImxheW91dFwiIFtkYXRhXT1cIml0ZW1cIiBbbGF5b3V0VHlwZV09XCInY2FyZCdcIiBjbGFzcz1cImNhcmQtdmlldyBcIlxuICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DdXN0b21pemVPYmplY3RDaGFuZ2VkKCRldmVudClcIiAoZmllbGRDbGljayk9XCJvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvcGVwLWZvcm0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wZXAtY2Fyb3VzZWw+XG4gICAgICAgIDxwZXAtYnV0dG9uICpuZ0lmPVwic2NyZWVuU2l6ZSA8PSBQZXBTY3JlZW5TaXplVHlwZS5TTVwiIFtpY29uTmFtZV09XCInYXJyb3dfcmlnaHRfYWx0J1wiIFtzdHlsZVR5cGVdPVwiJ3JlZ3VsYXInXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJuZXh0RGlzYWJsZWRcIiAoY2xpY2spPVwibW92ZVJpZ2h0KClcIiBjbGFzcz1cImNhcm91c2VsLWFycm93IGVuZC1hcnJvd1wiPlxuICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PiJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtY2FydXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtY2FydXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2Zvcm0vaW50ZXJuYWwtY2FydXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLHVCQUF1QixFQUV2QixTQUFTLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsT0FBTyxFQU9ILGlCQUFpQixHQUNwQixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVN4RSxNQUFNLE9BQU8sMkJBQTJCO0lBNkNwQyxZQUNZLGFBQStCLEVBQy9CLHNCQUFpRDtRQURqRCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUEyQjtRQTVCcEQsZUFBVSxHQUFrQixNQUFNLENBQUM7UUFHNUMsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckUsMkJBQXNCLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRXBHLFdBQU0sR0FBZSxJQUFJLENBQUM7UUFTbEMsV0FBTSxHQUFRLElBQUksQ0FBQztRQUNuQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRVIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFeEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFF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TUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYTtRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7O3dIQXhIUSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3TkFIekIsQ0FBQyx5QkFBeUIsQ0FBQywyR0FJUCxvQkFBb0IsNkJDdkN2RCxtMkNBcUJNOzJGRGlCTywyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksc0JBQXNCLGFBR3JCLENBQUMseUJBQXlCLENBQUMsbUJBQ3JCLHVCQUF1QixDQUFDLE1BQU07K0lBSS9DLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBS2pELEtBQUs7c0JBRFIsS0FBSztnQkFjRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLHVCQUF1QjtzQkFEdEIsTUFBTTtnQkFHUCxzQkFBc0I7c0JBRHJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQZXBJbnRlcm5hbENhcnVzZWxTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcm5hbC1jYXJ1c2VsLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICAgIFBlcExheW91dFR5cGUsXG4gICAgVUlDb250cm9sLFxuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIE9iamVjdHNEYXRhUm93LFxuICAgIFBlcEludGVybmFsQ2FydXNlbEZpZWxkLFxuICAgIFBlcExheW91dFNlcnZpY2UsXG4gICAgUGVwU2NyZWVuU2l6ZVR5cGUsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgSVBlcEZvcm1GaWVsZENsaWNrRXZlbnQsXG4gICAgSVBlcEZvcm1GaWVsZFZhbHVlQ2hhbmdlRXZlbnQsXG59IGZyb20gJy4vZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvcXVhbnRpdHktc2VsZWN0b3InO1xuaW1wb3J0IHsgUGVwQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9jYXJvdXNlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWludGVybmFsLWNhcnVzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1jYXJ1c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1jYXJ1c2VsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUGVwSW50ZXJuYWxDYXJ1c2VsU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsQ2FydXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnLCB7IHJlYWQ6IFBlcENhcm91c2VsQ29tcG9uZW50IH0pXG4gICAgY2Fyb3VzZWw6IFBlcENhcm91c2VsQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBfZmllbGQ6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWVsZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgICAgIGNvbnN0IGNhcnVzZWxGaWVsZCA9IHRoaXMuX2ZpZWxkIGFzIFBlcEludGVybmFsQ2FydXNlbEZpZWxkO1xuXG4gICAgICAgIGlmIChjYXJ1c2VsRmllbGQgJiYgY2FydXNlbEZpZWxkLnBhZ2VJbmZvKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dCA9IGNhcnVzZWxGaWVsZC5wYWdlSW5mby5VSUNvbnRyb2w7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gY2FydXNlbEZpZWxkLnBhZ2VJbmZvLlJvd3M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGZpZWxkKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgaW50ZXJuYWxGb3JtRmllbGRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIF9pdGVtczogQXJyYXk8YW55PiA9IG51bGw7XG4gICAgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgICAgIC8vIHRoaXMubW92ZVRvKDApO1xuICAgIH1cbiAgICBnZXQgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG5cbiAgICBsYXlvdXQ6IGFueSA9IG51bGw7XG4gICAgZHVyYXRpb24gPSAxMDAwO1xuXG4gICAgcHJpdmF0ZSBpdGVtc1RvTW92ZSA9IDM7XG5cbiAgICBwcmV2RGlzYWJsZWQgPSBmYWxzZTtcbiAgICBuZXh0RGlzYWJsZWQgPSBmYWxzZTtcbiAgICBzY3JlZW5TaXplOiBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBQZXBTY3JlZW5TaXplVHlwZSA9IFBlcFNjcmVlblNpemVUeXBlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbnRlcm5hbENhcnVzZWxTZXJ2aWNlOiBQZXBJbnRlcm5hbENhcnVzZWxTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJC5zdWJzY3JpYmUoKHNpemU6IFBlcFNjcmVlblNpemVUeXBlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkN1c3RvbWl6ZU9iamVjdENoYW5nZWQoXG4gICAgICAgIGN1c3RvbWl6ZU9iamVjdENoYW5nZWREYXRhOiBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmludGVybmFsQ2FydXNlbFNlcnZpY2UuZW1pdEV2ZW50KGN1c3RvbWl6ZU9iamVjdENoYW5nZWREYXRhLnVpT2JqZWN0S2V5LCBjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YS5rZXksIGN1c3RvbWl6ZU9iamVjdENoYW5nZWREYXRhLnZhbHVlLCAnU2V0RmllbGRWYWx1ZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UuZW1pdChjdXN0b21pemVPYmplY3RDaGFuZ2VkRGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ3VzdG9taXplRmllbGRDbGljayhmaWVsZENsaWNrRXZlbnQ6IElQZXBGb3JtRmllbGRDbGlja0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCBoYW5kbGVkRXZlbnQgPSBmYWxzZTtcblxuICAgICAgICAvLyBGb3IgdGhlIG5ldyBjdXN0b20gZm9ybSwgdGhlIHBsdXMgYW5kIG1pbnVzIGV2ZW50cyB0cmFuc2Zvcm0gaW4gdGhlIElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50XG4gICAgICAgIGlmIChmaWVsZENsaWNrRXZlbnQuY29udHJvbFR5cGUgPT09ICdxcycpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZENsaWNrRXZlbnQudmFsdWUgPT09IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuUExVUykge1xuICAgICAgICAgICAgICAgIGhhbmRsZWRFdmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbENhcnVzZWxTZXJ2aWNlLmVtaXRFdmVudChmaWVsZENsaWNrRXZlbnQudWlPYmplY3RLZXksIGZpZWxkQ2xpY2tFdmVudC5rZXksICcnLCAnSW5jcmVtZW50RmllbGRWYWx1ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbEZvcm1GaWVsZENoYW5nZS5lbWl0KHt9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZENsaWNrRXZlbnQudmFsdWUgPT09IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuTUlOVVMpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVkRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxDYXJ1c2VsU2VydmljZS5lbWl0RXZlbnQoZmllbGRDbGlja0V2ZW50LnVpT2JqZWN0S2V5LCBmaWVsZENsaWNrRXZlbnQua2V5LCAnJywgJ0RlY3JlbWVudEZpZWxkVmFsdWUnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UuZW1pdCh7fSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhhbmRsZWRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbEZvcm1GaWVsZENsaWNrLmVtaXQoZmllbGRDbGlja0V2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVMZWZ0KCkge1xuICAgICAgICBjb25zdCBpbmRleFRvTW92ZSA9IE1hdGgubWF4KFxuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5jdXJySW5kZXggLSB0aGlzLml0ZW1zVG9Nb3ZlLFxuICAgICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm1vdmVUbyhpbmRleFRvTW92ZSk7XG4gICAgfVxuXG4gICAgbW92ZVJpZ2h0KCkge1xuICAgICAgICBjb25zdCBpbmRleFRvTW92ZSA9IE1hdGgubWluKFxuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5jdXJySW5kZXggKyB0aGlzLml0ZW1zVG9Nb3ZlLFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5tb3ZlVG8oaW5kZXhUb01vdmUpO1xuICAgIH1cblxuICAgIG1vdmVUbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmNhcm91c2VsKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLm1vdmVUbyhpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlYWNoZXNMZWZ0Qm91bmQoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wcmV2RGlzYWJsZWQgPSBldmVudDtcbiAgICB9XG5cbiAgICBvblJlYWNoZXNSaWdodEJvdW5kKGV2ZW50OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubmV4dERpc2FibGVkID0gZXZlbnQ7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXM/Lmxlbmd0aCA+IDA7IHRoZW4gY2Fyb3VzZWxCbG9jazsgZWxzZSBlbXB0eUJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eUJsb2NrPlxuICAgICAgICA8IS0tIE5vIGl0ZW1zIC0tPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjYXJvdXNlbEJsb2NrPlxuICAgICAgICA8cGVwLWJ1dHRvbiAqbmdJZj1cInNjcmVlblNpemUgPD0gUGVwU2NyZWVuU2l6ZVR5cGUuU01cIiBbaWNvbk5hbWVdPVwiJ2Fycm93X2xlZnRfYWx0J1wiIFtzdHlsZVR5cGVdPVwiJ3JlZ3VsYXInXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmV2RGlzYWJsZWRcIiAoY2xpY2spPVwibW92ZUxlZnQoKVwiIGNsYXNzPVwiY2Fyb3VzZWwtYXJyb3cgc3RhcnQtYXJyb3dcIj5cbiAgICAgICAgPC9wZXAtYnV0dG9uPlxuICAgICAgICA8cGVwLWNhcm91c2VsICNjYXJvdXNlbCBbeFdoZWVsRW5hYmxlZF09XCJmYWxzZVwiIFtzbmFwRHVyYXRpb25dPVwiZHVyYXRpb25cIlxuICAgICAgICAgICAgKHJlYWNoZXNMZWZ0Qm91bmQpPVwib25SZWFjaGVzTGVmdEJvdW5kKCRldmVudClcIiAocmVhY2hlc1JpZ2h0Qm91bmQpPVwib25SZWFjaGVzUmlnaHRCb3VuZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPHBlcC1pbnRlcm5hbC1mb3JtIHBlcENhcm91c2VsSXRlbSBbbGF5b3V0XT1cImxheW91dFwiIFtkYXRhXT1cIml0ZW1cIiBbbGF5b3V0VHlwZV09XCInY2FyZCdcIiBjbGFzcz1cImNhcmQtdmlldyBcIlxuICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DdXN0b21pemVPYmplY3RDaGFuZ2VkKCRldmVudClcIiAoZmllbGRDbGljayk9XCJvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvcGVwLWludGVybmFsLWZvcm0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wZXAtY2Fyb3VzZWw+XG4gICAgICAgIDxwZXAtYnV0dG9uICpuZ0lmPVwic2NyZWVuU2l6ZSA8PSBQZXBTY3JlZW5TaXplVHlwZS5TTVwiIFtpY29uTmFtZV09XCInYXJyb3dfcmlnaHRfYWx0J1wiIFtzdHlsZVR5cGVdPVwiJ3JlZ3VsYXInXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJuZXh0RGlzYWJsZWRcIiAoY2xpY2spPVwibW92ZVJpZ2h0KClcIiBjbGFzcz1cImNhcm91c2VsLWFycm93IGVuZC1hcnJvd1wiPlxuICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PiJdfQ==
@@ -24,9 +24,9 @@ export class PepInternalCaruselService {
24
24
  );
25
25
  }
26
26
  }
27
- PepInternalCaruselService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalCaruselService, deps: [{ token: i1.PepHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
28
- PepInternalCaruselService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalCaruselService });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalCaruselService, decorators: [{
27
+ PepInternalCaruselService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselService, deps: [{ token: i1.PepHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ PepInternalCaruselService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselService });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalCaruselService, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: function () { return [{ type: i1.PepHttpService }]; } });
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtY2FydXNlbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9mb3JtL2ludGVybmFsLWNhcnVzZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLHlCQUF5QjtJQUdsQyxZQUFvQixXQUEyQjtRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRywyQkFBMkIsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUyxDQUFDLFdBQW1CLEVBQUUsUUFBZ0IsRUFBRSxVQUFrQixFQUFFLFNBQWlCLEVBQUUsWUFBaUI7UUFDckcsTUFBTSxJQUFJLEdBQUc7WUFDVCxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDeEIsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixLQUFLLEVBQUUsVUFBVTthQUNwQixDQUFDO1NBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FDaEUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxpQkFBaUI7UUFDakIsV0FBVztTQUNkLENBQUM7SUFDTixDQUFDOztzSEF6QlEseUJBQXlCOzBIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcEh0dHBTZXJ2aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxDYXJ1c2VsU2VydmljZSB7XG4gICAgcHJpdmF0ZSBldmVudFVybDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogUGVwSHR0cFNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5ldmVudFVybCA9ICdTZXJ2aWNlMS5zdmMvdjEvRW1pdEV2ZW50JztcbiAgICB9XG5cbiAgICBlbWl0RXZlbnQodWlPYmplY3RLZXk6IHN0cmluZywgZmllbGRLZXk6IHN0cmluZywgZmllbGRWYWx1ZTogc3RyaW5nLCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2tGdW5jOiBhbnkpIHtcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICAgICdFdmVudEtleSc6IGV2ZW50TmFtZSxcbiAgICAgICAgICAgICdFdmVudERhdGEnOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgVUlPYmplY3RLZXk6IHVpT2JqZWN0S2V5LFxuICAgICAgICAgICAgICAgIEZpZWxkSUQ6IGZpZWxkS2V5LFxuICAgICAgICAgICAgICAgIFZhbHVlOiBmaWVsZFZhbHVlXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UucG9zdFdhcGlBcGlDYWxsKGAke3RoaXMuZXZlbnRVcmx9YCwgYm9keSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2tGdW5jKHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoZXJyb3IpID0+IHt9LFxuICAgICAgICAgICAgLy8gKCkgPT4ge31cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,147 @@
1
+ import { Component, Input, Output, EventEmitter, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@pepperi-addons/ngx-lib/address";
6
+ import * as i4 from "@pepperi-addons/ngx-lib/attachment";
7
+ import * as i5 from "@pepperi-addons/ngx-lib/checkbox";
8
+ import * as i6 from "@pepperi-addons/ngx-lib/date";
9
+ import * as i7 from "@pepperi-addons/ngx-lib/image";
10
+ import * as i8 from "@pepperi-addons/ngx-lib/images-filmstrip";
11
+ import * as i9 from "@pepperi-addons/ngx-lib/quantity-selector";
12
+ import * as i10 from "@pepperi-addons/ngx-lib/rich-html-textarea";
13
+ import * as i11 from "@pepperi-addons/ngx-lib/select";
14
+ import * as i12 from "@pepperi-addons/ngx-lib/separator";
15
+ import * as i13 from "@pepperi-addons/ngx-lib/signature";
16
+ import * as i14 from "@pepperi-addons/ngx-lib/textarea";
17
+ import * as i15 from "@pepperi-addons/ngx-lib/textbox";
18
+ import * as i16 from "@pepperi-addons/ngx-lib/link";
19
+ import * as i17 from "./indicators.component";
20
+ import * as i18 from "./internal-button.component";
21
+ import * as i19 from "./internal-menu.component";
22
+ export class PepInternalFieldGeneratorComponent {
23
+ constructor() {
24
+ this.isActive = false;
25
+ this.uid = null;
26
+ this.layoutType = 'form';
27
+ this.showTitle = true;
28
+ this.checkForChanges = null;
29
+ this.valueChange = new EventEmitter();
30
+ this.formValidationChange = new EventEmitter();
31
+ this.elementClick = new EventEmitter();
32
+ // @Output() internalFormFieldChange: EventEmitter<any> = new EventEmitter<any>();
33
+ // @Output() internalFormFieldClick: EventEmitter<any> = new EventEmitter<any>();
34
+ this.formValueChange = new EventEmitter();
35
+ this.formFieldClick = new EventEmitter();
36
+ }
37
+ set field(value) {
38
+ this._field = value;
39
+ }
40
+ get field() {
41
+ return this._field;
42
+ }
43
+ get isValid() {
44
+ if (this.field.readonly || this.field.disabled) {
45
+ return true;
46
+ }
47
+ else {
48
+ const formControl = this.form && this.form.get(this.field.key);
49
+ if (formControl) {
50
+ return formControl.valid;
51
+ }
52
+ else {
53
+ return false;
54
+ }
55
+ }
56
+ }
57
+ get isTouched() {
58
+ const formControl = this.form && this.form.get(this.field.key);
59
+ return formControl ? formControl.touched : false;
60
+ }
61
+ get isDirty() {
62
+ const formControl = this.form && this.form.get(this.field.key);
63
+ return formControl ? formControl.dirty : false;
64
+ }
65
+ ngOnDestroy() {
66
+ //
67
+ }
68
+ onFileChanged(fileData, field) {
69
+ const value = fileData ? JSON.stringify(fileData) : '';
70
+ const fieldValueChange = {
71
+ key: field.key,
72
+ value: value,
73
+ controlType: field.controlType,
74
+ };
75
+ this.valueChange.emit(fieldValueChange);
76
+ }
77
+ onAddressValueChanged(valueChange, field) {
78
+ const fieldValueChange = {
79
+ key: valueChange.key,
80
+ value: valueChange.value,
81
+ controlType: field.controlType,
82
+ };
83
+ this.valueChange.emit(fieldValueChange);
84
+ }
85
+ onValueChanged(value, field) {
86
+ const fieldValueChange = {
87
+ key: field.key,
88
+ value: value.toString(),
89
+ controlType: field.controlType,
90
+ };
91
+ this.valueChange.emit(fieldValueChange);
92
+ }
93
+ // onInternalFormFieldChanged(internalFormFieldChange: any): void {
94
+ // this.internalFormFieldChange.emit(internalFormFieldChange);
95
+ // }
96
+ onFormValidationChanged(formValidationChange) {
97
+ this.formValidationChange.emit(formValidationChange);
98
+ }
99
+ onClick(fieldClicked) {
100
+ this.elementClick.emit(fieldClicked);
101
+ }
102
+ // onInternalFormFieldClick(internalFormFieldClick: any): void {
103
+ // this.internalFormFieldClick.emit(internalFormFieldClick);
104
+ // }
105
+ onFormValueChanged(event) {
106
+ this.formValueChange.emit(event);
107
+ }
108
+ onFormFieldClick(event) {
109
+ this.formFieldClick.emit(event);
110
+ }
111
+ ngOnChanges(changes) {
112
+ // debugger;
113
+ // For testing.
114
+ // this.field.disabled = this.field.readonly = false;
115
+ }
116
+ }
117
+ PepInternalFieldGeneratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalFieldGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
+ PepInternalFieldGeneratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepInternalFieldGeneratorComponent, selector: "pep-internal-field-generator", inputs: { field: "field", isActive: "isActive", uid: "uid", form: "form", layoutType: "layoutType", showTitle: "showTitle", checkForChanges: "checkForChanges" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick", formValueChange: "formValueChange", formFieldClick: "formFieldClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <!-- \n comment for not cause a circular reference.\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel> \n -->\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PepAddressComponent, selector: "pep-address", inputs: ["key", "formattedValue", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "groupFields", "form", "layoutType", "visible"], outputs: ["addressValueChange"] }, { kind: "component", type: i4.PepAttachmentComponent, selector: "pep-attachment", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i5.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepDateComponent, selector: "pep-date", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i7.PepImageComponent, selector: "pep-image", inputs: ["key", "srcLarge", "src", "options", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "indicatorsField", "menuField", "hasCampaignField", "visible", "form", "uid", "showTitle", "renderTitle", "layoutType", "isActive", "sizeLimitMB", "acceptImagesType"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i8.PepImagesFilmstripComponent, selector: "pep-images-filmstrip", inputs: ["key", "value", "label", "xAlignment", "rowSpan", "form", "uid", "showTitle", "renderTitle", "layoutType", "currIndex", "showThumbnails"] }, { kind: "component", type: i9.PepQuantitySelectorComponent, selector: "pep-quantity-selector", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "allowDecimal", "additionalValue", "notificationInfo", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive", "styleType"], outputs: ["valueChange", "elementClick"] }, { kind: "component", type: i10.PepRichHtmlTextareaComponent, selector: "pep-rich-html-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType", "inlineMode", "toolbarOptions"], outputs: ["valueChange"] }, { kind: "component", type: i11.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "options", "visible", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "emptyOption", "renderTitle"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i12.PepSeparatorComponent, selector: "pep-separator", inputs: ["key", "label", "xAlignment", "form", "layoutType", "visible"] }, { kind: "component", type: i13.PepSignatureComponent, selector: "pep-signature", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "signatureURL", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange"] }, { kind: "component", type: i14.PepTextareaComponent, selector: "pep-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i15.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i16.PepLinkComponent, selector: "pep-link", inputs: ["key", "value", "formattedValue", "label", "placeholder", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange", "formValidationChange", "elementClick"] }, { kind: "component", type: i17.PepIndicatorsComponent, selector: "pep-indicators", inputs: ["key", "value", "layoutType"] }, { kind: "component", type: i18.PepInternalButtonComponent, selector: "pep-internal-button", inputs: ["key", "value", "formattedValue", "label", "referenceObjectInternalType", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "layoutType"], outputs: ["elementClick", "valueChange"] }, { kind: "component", type: i19.PepInternalMenuComponent, selector: "pep-internal-menu", inputs: ["key", "label", "disabled", "xAlignment", "options", "invertClass", "layoutType"], outputs: ["elementClick"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepInternalFieldGeneratorComponent, decorators: [{
120
+ type: Component,
121
+ args: [{ selector: 'pep-internal-field-generator', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <!-- \n comment for not cause a circular reference.\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel> \n -->\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"] }]
122
+ }], propDecorators: { field: [{
123
+ type: Input
124
+ }], isActive: [{
125
+ type: Input
126
+ }], uid: [{
127
+ type: Input
128
+ }], form: [{
129
+ type: Input
130
+ }], layoutType: [{
131
+ type: Input
132
+ }], showTitle: [{
133
+ type: Input
134
+ }], checkForChanges: [{
135
+ type: Input
136
+ }], valueChange: [{
137
+ type: Output
138
+ }], formValidationChange: [{
139
+ type: Output
140
+ }], elementClick: [{
141
+ type: Output
142
+ }], formValueChange: [{
143
+ type: Output
144
+ }], formFieldClick: [{
145
+ type: Output
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtZmllbGQtZ2VuZXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZm9ybS9pbnRlcm5hbC1maWVsZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9mb3JtL2ludGVybmFsLWZpZWxkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNqQix1QkFBdUIsR0FFMUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCdkIsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQWlCYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFFBQUcsR0FBUSxJQUFJLENBQUM7UUFFaEIsZUFBVSxHQUFrQixNQUFNLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixvQkFBZSxHQUFRLElBQUksQ0FBQztRQUVyQyxnQkFBVyxHQUE0QyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUVyRyx5QkFBb0IsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRSxpQkFBWSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUxRixrRkFBa0Y7UUFDbEYsaUZBQWlGO1FBR2pGLG9CQUFlLEdBQWdELElBQUksWUFBWSxFQUFpQyxDQUFDO1FBRWpILG1CQUFjLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0tBMEZ2RztJQXRIRyxJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQXdC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QWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQThCO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBWTtRQUNwQixZQUFZO1FBQ1osZUFBZTtRQUNmLHFEQUFxRDtJQUN6RCxDQUFDOzsrSEF2SFEsa0NBQWtDO21IQUFsQyxrQ0FBa0Msc2JDMUIvQywyelRBbUllOzJGRHpHRixrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0ksOEJBQThCLGlCQUd6QixpQkFBaUIsQ0FBQyxRQUFRLG1CQUN4Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQUszQyxLQUFLO3NCQURSLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVOLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBR1AsWUFBWTtzQkFEWCxNQUFNO2dCQU9QLGVBQWU7c0JBRGQsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBQZXBGaWVsZEJhc2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBJUGVwRmllbGRWYWx1ZUNoYW5nZUV2ZW50LFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IElQZXBGb3JtRmllbGRDbGlja0V2ZW50LCBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudCB9IGZyb20gJy4vZm9ybS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWludGVybmFsLWZpZWxkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ludGVybmFsLWZpZWxkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW50ZXJuYWwtZmllbGQtZ2VuZXJhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsRmllbGRHZW5lcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfZmllbGQ6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWVsZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBmaWVsZCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB1aWQ6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xuICAgIEBJbnB1dCgpIGxheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIGNoZWNrRm9yQ2hhbmdlczogYW55ID0gbnVsbDtcbiAgICBAT3V0cHV0KClcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRWYWx1ZUNoYW5nZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1WYWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICAvLyBAT3V0cHV0KCkgaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gQE91dHB1dCgpIGludGVybmFsRm9ybUZpZWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1GaWVsZENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudD4oKTtcblxuICAgIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5maWVsZC5yZWFkb25seSB8fCB0aGlzLmZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpO1xuXG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wudmFsaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpc1RvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpO1xuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wgPyBmb3JtQ29udHJvbC50b3VjaGVkIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpO1xuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wgPyBmb3JtQ29udHJvbC5kaXJ0eSA6IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG9uRmlsZUNoYW5nZWQoZmlsZURhdGE6IGFueSwgZmllbGQ6IFBlcEZpZWxkQmFzZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbGVEYXRhID8gSlNPTi5zdHJpbmdpZnkoZmlsZURhdGEpIDogJyc7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWVDaGFuZ2UgPSB7XG4gICAgICAgICAgICBrZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBmaWVsZC5jb250cm9sVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGZpZWxkVmFsdWVDaGFuZ2UpO1xuICAgIH1cblxuICAgIG9uQWRkcmVzc1ZhbHVlQ2hhbmdlZChcbiAgICAgICAgdmFsdWVDaGFuZ2U6IElQZXBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQsXG4gICAgICAgIGZpZWxkOiBQZXBGaWVsZEJhc2VcbiAgICApIHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZUNoYW5nZSA9IHtcbiAgICAgICAgICAgIGtleTogdmFsdWVDaGFuZ2Uua2V5LFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlQ2hhbmdlLnZhbHVlLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IGZpZWxkLmNvbnRyb2xUeXBlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZmllbGRWYWx1ZUNoYW5nZSk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZWQodmFsdWU6IGFueSwgZmllbGQ6IFBlcEZpZWxkQmFzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlQ2hhbmdlID0ge1xuICAgICAgICAgICAga2V5OiBmaWVsZC5rZXksXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBmaWVsZC5jb250cm9sVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGZpZWxkVmFsdWVDaGFuZ2UpO1xuICAgIH1cblxuICAgIC8vIG9uSW50ZXJuYWxGb3JtRmllbGRDaGFuZ2VkKGludGVybmFsRm9ybUZpZWxkQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5pbnRlcm5hbEZvcm1GaWVsZENoYW5nZS5lbWl0KGludGVybmFsRm9ybUZpZWxkQ2hhbmdlKTtcbiAgICAvLyB9XG5cbiAgICBvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZChmb3JtVmFsaWRhdGlvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb25DaGFuZ2UuZW1pdChmb3JtVmFsaWRhdGlvbkNoYW5nZSk7XG4gICAgfVxuXG4gICAgb25DbGljayhmaWVsZENsaWNrZWQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KGZpZWxkQ2xpY2tlZCk7XG4gICAgfVxuXG4gICAgLy8gb25JbnRlcm5hbEZvcm1GaWVsZENsaWNrKGludGVybmFsRm9ybUZpZWxkQ2xpY2s6IGFueSk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLmludGVybmFsRm9ybUZpZWxkQ2xpY2suZW1pdChpbnRlcm5hbEZvcm1GaWVsZENsaWNrKTtcbiAgICAvLyB9XG5cbiAgICBvbkZvcm1WYWx1ZUNoYW5nZWQoZXZlbnQ6IElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRm9ybUZpZWxkQ2xpY2soZXZlbnQ6IElQZXBGb3JtRmllbGRDbGlja0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkQ2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAvLyBGb3IgdGVzdGluZy5cbiAgICAgICAgLy8gdGhpcy5maWVsZC5kaXNhYmxlZCA9IHRoaXMuZmllbGQucmVhZG9ubHkgPSBmYWxzZTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZC5jb250cm9sVHlwZVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuXG4gICAgPHBlcC1hZGRyZXNzICpuZ1N3aXRjaENhc2U9XCInYWRkcmVzcydcIiBbZm9ybV09XCJmb3JtXCIgW2tleV09XCJmaWVsZC5rZXlcIiBbZm9ybWF0dGVkVmFsdWVdPVwiZmllbGQuZm9ybWF0dGVkVmFsdWVcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2dyb3VwRmllbGRzXT1cImZpZWxkLmdyb3VwRmllbGRzXCJcbiAgICAgICAgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIiAoYWRkcmVzc1ZhbHVlQ2hhbmdlKT1cIm9uQWRkcmVzc1ZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiPlxuICAgIDwvcGVwLWFkZHJlc3M+XG5cbiAgICA8cGVwLWF0dGFjaG1lbnQgKm5nU3dpdGNoQ2FzZT1cIidhdHRhY2htZW50J1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtzcmNdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIlxuICAgICAgICBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGZpbGVDaGFuZ2UpPVwib25GaWxlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiPlxuICAgIDwvcGVwLWF0dGFjaG1lbnQ+XG5cbiAgICA8cGVwLWNoZWNrYm94ICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCIgW2Zvcm1dPVwiZm9ybVwiIFtrZXldPVwiZmllbGQua2V5XCJcbiAgICAgICAgW3ZhbHVlXT1cIihmaWVsZC52YWx1ZSB8IGxvd2VyY2FzZSkgPT0gJ3RydWUnIHx8IGZpZWxkLnZhbHVlID09ICcxJyA/IHRydWUgOiBmYWxzZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2FkZGl0aW9uYWxWYWx1ZV09XCJmaWVsZC5hZGRpdGlvbmFsVmFsdWVcIlxuICAgICAgICBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIiBbdmlzaWJsZV09XCJmaWVsZC52aXNpYmxlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCI+XG4gICAgPC9wZXAtY2hlY2tib3g+XG5cbiAgICA8cGVwLWRhdGUgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt0ZXh0Q29sb3JdPVwiZmllbGQudGV4dENvbG9yXCJcbiAgICAgICAgW3hBbGlnbm1lbnRdPVwiZmllbGQueEFsaWdubWVudFwiIFtyb3dTcGFuXT1cImZpZWxkLnJvd1NwYW5cIiBbbWluVmFsdWVdPVwiZmllbGQubWluVmFsdWVcIlxuICAgICAgICBbbWF4VmFsdWVdPVwiZmllbGQubWF4VmFsdWVcIiBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIiBbdmlzaWJsZV09XCJmaWVsZC52aXNpYmxlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCI+XG4gICAgPC9wZXAtZGF0ZT5cblxuICAgIDxwZXAtaW1hZ2VzLWZpbG1zdHJpcCAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlcydcIiBbdWlkXT1cInVpZFwiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCIgW3Jvd1NwYW5dPVwiZmllbGQucm93U3BhblwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIj5cbiAgICA8L3BlcC1pbWFnZXMtZmlsbXN0cmlwPlxuXG4gICAgPHBlcC1pbWFnZSAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiIFt1aWRdPVwidWlkXCIgW2Zvcm1dPVwiZm9ybVwiIFtrZXldPVwiZmllbGQua2V5XCIgW3NyY109XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiXG4gICAgICAgIFtzcmNMYXJnZV09XCJmaWVsZC52YWx1ZVwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2luZGljYXRvcnNGaWVsZF09XCJmaWVsZC5pbmRpY2F0b3JzRmllbGRcIiBbbWVudUZpZWxkXT1cImZpZWxkLm1lbnVGaWVsZFwiXG4gICAgICAgIFtoYXNDYW1wYWlnbkZpZWxkXT1cImZpZWxkLmhhc0NhbXBhaWduRmllbGRcIiBbc2l6ZUxpbWl0TUJdPVwiZmllbGQuc2l6ZUxpbWl0TUJcIiBbaXNBY3RpdmVdPVwiaXNBY3RpdmVcIlxuICAgICAgICBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGZpbGVDaGFuZ2UpPVwib25GaWxlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiPlxuICAgIDwvcGVwLWltYWdlPlxuXG4gICAgPHBlcC1xdWFudGl0eS1zZWxlY3RvciAqbmdTd2l0Y2hDYXNlPVwiJ3FzJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt0ZXh0Q29sb3JdPVwiZmllbGQudGV4dENvbG9yXCJcbiAgICAgICAgW3hBbGlnbm1lbnRdPVwiZmllbGQueEFsaWdubWVudFwiIFtyb3dTcGFuXT1cImZpZWxkLnJvd1NwYW5cIiBbYWxsb3dEZWNpbWFsXT1cImZpZWxkLmFsbG93RGVjaW1hbFwiXG4gICAgICAgIFthZGRpdGlvbmFsVmFsdWVdPVwiZmllbGQuYWRkaXRpb25hbFZhbHVlXCIgW25vdGlmaWNhdGlvbkluZm9dPVwiZmllbGQubm90aWZpY2F0aW9uSW5mb1wiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiXG4gICAgICAgIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIiBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50LCBmaWVsZClcIiAoZm9ybVZhbGlkYXRpb25DaGFuZ2UpPVwib25Gb3JtVmFsaWRhdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgPC9wZXAtcXVhbnRpdHktc2VsZWN0b3I+XG5cbiAgICA8cGVwLXJpY2gtaHRtbC10ZXh0YXJlYSAqbmdTd2l0Y2hDYXNlPVwiJ3JpY2hodG1sdGV4dGFyZWEnXCIgW2Zvcm1dPVwiZm9ybVwiIFtrZXldPVwiZmllbGQua2V5XCIgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCIgW21hbmRhdG9yeV09XCJmaWVsZC5tYW5kYXRvcnlcIiBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwiZmllbGQucmVhZG9ubHlcIlxuICAgICAgICBbbWF4RmllbGRDaGFyYWN0ZXJzXT1cImZpZWxkLm1heEZpZWxkQ2hhcmFjdGVyc1wiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCJcbiAgICAgICAgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiPlxuICAgIDwvcGVwLXJpY2gtaHRtbC10ZXh0YXJlYT5cblxuICAgIDxwZXAtc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCJcbiAgICAgICAgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50LCBmaWVsZClcIlxuICAgICAgICAoZm9ybVZhbGlkYXRpb25DaGFuZ2UpPVwib25Gb3JtVmFsaWRhdGlvbkNoYW5nZWQoJGV2ZW50KVwiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiPlxuICAgIDwvcGVwLXNlbGVjdD5cblxuICAgIDxwZXAtc2VwYXJhdG9yICpuZ1N3aXRjaENhc2U9XCInc2VwYXJhdG9yJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiPlxuICAgIDwvcGVwLXNlcGFyYXRvcj5cblxuICAgIDxwZXAtc2lnbmF0dXJlICpuZ1N3aXRjaENhc2U9XCInc2lnbmF0dXJlJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtzcmNdPVwiZmllbGQudmFsdWVcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiXG4gICAgICAgIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIiAoZmlsZUNoYW5nZSk9XCJvbkZpbGVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCI+XG4gICAgPC9wZXAtc2lnbmF0dXJlPlxuXG4gICAgPHBlcC10ZXh0YXJlYSAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRhcmVhJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFttYW5kYXRvcnldPVwiZmllbGQubWFuZGF0b3J5XCIgW2Rpc2FibGVkXT1cImZpZWxkLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cImZpZWxkLnJlYWRvbmx5XCJcbiAgICAgICAgW21heEZpZWxkQ2hhcmFjdGVyc109XCJmaWVsZC5tYXhGaWVsZENoYXJhY3RlcnNcIiBbdGV4dENvbG9yXT1cImZpZWxkLnRleHRDb2xvclwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiPlxuICAgIDwvcGVwLXRleHRhcmVhPlxuXG4gICAgPHBlcC10ZXh0Ym94ICpuZ1N3aXRjaENhc2U9XCIndGV4dGJveCdcIiBbZm9ybV09XCJmb3JtXCIgW2tleV09XCJmaWVsZC5rZXlcIiBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICBbZm9ybWF0dGVkVmFsdWVdPVwiZmllbGQuZm9ybWF0dGVkVmFsdWVcIiBbYWNjZXNzb3J5XT1cImZpZWxkLmFjY2Vzc29yeVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFttYXhGaWVsZENoYXJhY3RlcnNdPVwiZmllbGQubWF4RmllbGRDaGFyYWN0ZXJzXCIgW3RleHRDb2xvcl09XCJmaWVsZC50ZXh0Q29sb3JcIiBbeEFsaWdubWVudF09XCJmaWVsZC54QWxpZ25tZW50XCJcbiAgICAgICAgW3Jvd1NwYW5dPVwiZmllbGQucm93U3BhblwiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCIgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiIChmb3JtVmFsaWRhdGlvbkNoYW5nZSk9XCJvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiPlxuICAgIDwvcGVwLXRleHRib3g+XG5cbiAgICA8cGVwLWxpbmsgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYW5kYXRvcnldPVwiZmllbGQubWFuZGF0b3J5XCIgW2Rpc2FibGVkXT1cImZpZWxkLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cImZpZWxkLnJlYWRvbmx5XCJcbiAgICAgICAgW21heEZpZWxkQ2hhcmFjdGVyc109XCJmaWVsZC5tYXhGaWVsZENoYXJhY3RlcnNcIiBbdGV4dENvbG9yXT1cImZpZWxkLnRleHRDb2xvclwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiXG4gICAgICAgIChmb3JtVmFsaWRhdGlvbkNoYW5nZSk9XCJvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZCgkZXZlbnQpXCIgKGVsZW1lbnRDbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cbiAgICA8L3BlcC1saW5rPlxuXG4gICAgPHBlcC1pbmRpY2F0b3JzICpuZ1N3aXRjaENhc2U9XCInaW5kaWNhdG9ycydcIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIj5cbiAgICA8L3BlcC1pbmRpY2F0b3JzPlxuICAgIDxwZXAtaW50ZXJuYWwtYnV0dG9uICpuZ1N3aXRjaENhc2U9XCInYnV0dG9uJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtyZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGVdPVwiZmllbGQucmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlXCIgW3R5cGVdPVwiZmllbGQudHlwZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCI+XG4gICAgPC9wZXAtaW50ZXJuYWwtYnV0dG9uPlxuICAgIDxwZXAtaW50ZXJuYWwtbWVudSAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCIgW2tleV09XCJmaWVsZC5rZXlcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgICBbeEFsaWdubWVudF09XCJmaWVsZC54QWxpZ25tZW50XCIgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIlxuICAgICAgICAoZWxlbWVudENsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxuICAgIDwvcGVwLWludGVybmFsLW1lbnU+XG4gICAgPCEtLSBcbiAgICAgICAgY29tbWVudCBmb3Igbm90IGNhdXNlIGEgY2lyY3VsYXIgcmVmZXJlbmNlLlxuICAgICAgICA8cGVwLWludGVybmFsLXBhZ2UgKm5nU3dpdGNoQ2FzZT1cIidpbnRlcm5hbFBhZ2UnXCIgW2ZpZWxkXT1cImZpZWxkXCIgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiXG4gICAgICAgICAgICAoaW50ZXJuYWxGb3JtRmllbGRDbGljayk9XCJvbkludGVybmFsRm9ybUZpZWxkQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAoaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UpPVwib25JbnRlcm5hbEZvcm1GaWVsZENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L3BlcC1pbnRlcm5hbC1wYWdlPlxuXG4gICAgICAgIDxwZXAtaW50ZXJuYWwtY2FydXNlbCAqbmdTd2l0Y2hDYXNlPVwiJ2ludGVybmFsQ2FydXNlbCdcIiBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgKGludGVybmFsRm9ybUZpZWxkQ2xpY2spPVwib25JbnRlcm5hbEZvcm1GaWVsZENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGludGVybmFsRm9ybUZpZWxkQ2hhbmdlKT1cIm9uSW50ZXJuYWxGb3JtRmllbGRDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9wZXAtaW50ZXJuYWwtY2FydXNlbD4gXG4gICAgLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGxhY2Vob2xkZXInXCI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj4iXX0=