@pepperi-addons/ngx-lib 0.4.0-angular14.2 → 0.4.0-angular14.20

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 (287) hide show
  1. package/core/common/services/utilities.service.d.ts +5 -4
  2. package/esm2020/address/address.component.mjs +3 -3
  3. package/esm2020/address/address.module.mjs +4 -4
  4. package/esm2020/attachment/attachment.component.mjs +3 -3
  5. package/esm2020/attachment/attachment.module.mjs +4 -4
  6. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +4 -4
  7. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +4 -4
  8. package/esm2020/button/button.component.mjs +3 -3
  9. package/esm2020/button/button.module.mjs +4 -4
  10. package/esm2020/carousel/carousel-item.directive.mjs +3 -3
  11. package/esm2020/carousel/carousel.component.mjs +3 -3
  12. package/esm2020/carousel/carousel.module.mjs +4 -4
  13. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  14. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  15. package/esm2020/color/color-picker.component.mjs +3 -3
  16. package/esm2020/color/color.component.mjs +3 -3
  17. package/esm2020/color/color.module.mjs +4 -4
  18. package/esm2020/core/clipboard/clipboard.directive.mjs +3 -3
  19. package/esm2020/core/clipboard/clipboard.service.mjs +3 -3
  20. package/esm2020/core/common/directives/auto-width.directive.mjs +3 -3
  21. package/esm2020/core/common/directives/button-blur.directive.mjs +3 -3
  22. package/esm2020/core/common/directives/button-loader.directive.mjs +3 -3
  23. package/esm2020/core/common/directives/data-qa.directive.mjs +3 -3
  24. package/esm2020/core/common/directives/menu-blur.directive.mjs +3 -3
  25. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +3 -3
  26. package/esm2020/core/common/directives/print.directive.mjs +3 -3
  27. package/esm2020/core/common/pipes/common-pipes.mjs +30 -30
  28. package/esm2020/core/common/pipes/date-ago.pipe.mjs +3 -3
  29. package/esm2020/core/common/services/addon.service.mjs +3 -3
  30. package/esm2020/core/common/services/color.service.mjs +3 -3
  31. package/esm2020/core/common/services/cookie.service.mjs +3 -3
  32. package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
  33. package/esm2020/core/common/services/file.service.mjs +3 -3
  34. package/esm2020/core/common/services/jwt-helper.service.mjs +3 -3
  35. package/esm2020/core/common/services/session.service.mjs +3 -3
  36. package/esm2020/core/common/services/translate.service.mjs +3 -3
  37. package/esm2020/core/common/services/utilities.service.mjs +57 -14
  38. package/esm2020/core/common/services/validator.service.mjs +3 -3
  39. package/esm2020/core/common/services/window-scrolling.service.mjs +3 -3
  40. package/esm2020/core/customization/customization.service.mjs +3 -3
  41. package/esm2020/core/http/interceptors/error.interceptor.mjs +3 -3
  42. package/esm2020/core/http/interceptors/loader.interceptor.mjs +3 -3
  43. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +3 -3
  44. package/esm2020/core/http/services/http.service.mjs +3 -3
  45. package/esm2020/core/http/services/loader.service.mjs +3 -3
  46. package/esm2020/core/layout/layout.service.mjs +3 -3
  47. package/esm2020/core/layout/rtl.directive.mjs +6 -6
  48. package/esm2020/core/portal/attach.directive.mjs +3 -3
  49. package/esm2020/core/portal/portal.service.mjs +3 -3
  50. package/esm2020/core/portal/target.directive.mjs +3 -3
  51. package/esm2020/core/scroll-to/scroll-to.service.mjs +3 -3
  52. package/esm2020/date/date.component.mjs +3 -3
  53. package/esm2020/date/date.model.mjs +6 -6
  54. package/esm2020/date/date.module.mjs +4 -4
  55. package/esm2020/dialog/default-dialog.component.mjs +3 -3
  56. package/esm2020/dialog/dialog.component.mjs +3 -3
  57. package/esm2020/dialog/dialog.module.mjs +4 -4
  58. package/esm2020/dialog/dialog.service.mjs +3 -3
  59. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +3 -3
  60. package/esm2020/draggable-items/draggable-items.component.mjs +3 -3
  61. package/esm2020/draggable-items/draggable-items.module.mjs +4 -4
  62. package/esm2020/field-title/field-title.component.mjs +3 -3
  63. package/esm2020/field-title/field-title.module.mjs +4 -4
  64. package/esm2020/files-uploader/files-uploader.component.mjs +4 -4
  65. package/esm2020/files-uploader/files-uploader.module.mjs +4 -4
  66. package/esm2020/form/field-generator.component.mjs +3 -3
  67. package/esm2020/form/form.component.mjs +3 -3
  68. package/esm2020/form/form.module.mjs +11 -6
  69. package/esm2020/form/indicators.component.mjs +3 -3
  70. package/esm2020/form/internal-button.component.mjs +3 -3
  71. package/esm2020/form/internal-carusel.component.mjs +12 -14
  72. package/esm2020/form/internal-carusel.service.mjs +3 -3
  73. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  74. package/esm2020/form/internal-form.component.mjs +3 -3
  75. package/esm2020/form/internal-list.component.mjs +3 -3
  76. package/esm2020/form/internal-menu.component.mjs +3 -3
  77. package/esm2020/form/internal-page.component.mjs +16 -19
  78. package/esm2020/form/internal-page.service.mjs +3 -3
  79. package/esm2020/group-buttons/group-buttons.component.mjs +3 -3
  80. package/esm2020/group-buttons/group-buttons.module.mjs +4 -4
  81. package/esm2020/icon/icon-registry.service.mjs +3 -3
  82. package/esm2020/icon/icon.component.mjs +3 -3
  83. package/esm2020/icon/icon.module.mjs +4 -4
  84. package/esm2020/icon/icon.service.mjs +3 -3
  85. package/esm2020/image/image.component.mjs +3 -3
  86. package/esm2020/image/image.module.mjs +4 -4
  87. package/esm2020/image/image.service.mjs +3 -3
  88. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +5 -93
  89. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +5 -60
  90. package/esm2020/link/link.component.mjs +11 -12
  91. package/esm2020/link/link.module.mjs +4 -4
  92. package/esm2020/link/link.pipes.mjs +3 -3
  93. package/esm2020/list/list-actions.component.mjs +4 -4
  94. package/esm2020/list/list-carousel.component.mjs +4 -4
  95. package/esm2020/list/list-chooser.component.mjs +4 -4
  96. package/esm2020/list/list-pager.component.mjs +4 -4
  97. package/esm2020/list/list-sorting.component.mjs +4 -4
  98. package/esm2020/list/list-total.component.mjs +4 -4
  99. package/esm2020/list/list-views.component.mjs +4 -4
  100. package/esm2020/list/list.component.mjs +3 -3
  101. package/esm2020/list/list.module.mjs +4 -4
  102. package/esm2020/list/list.pipes.mjs +6 -6
  103. package/esm2020/list/virtual-scroller.mjs +7 -7
  104. package/esm2020/menu/menu-item.component.mjs +3 -3
  105. package/esm2020/menu/menu.component.mjs +3 -3
  106. package/esm2020/menu/menu.module.mjs +4 -4
  107. package/esm2020/ngx-lib.module.mjs +8 -6
  108. package/esm2020/page-layout/page-layout.component.mjs +3 -3
  109. package/esm2020/page-layout/page-layout.module.mjs +4 -4
  110. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +5 -0
  111. package/esm2020/plugin/plugin-proxy.component.mjs +98 -0
  112. package/esm2020/plugin/plugin.model.mjs +2 -0
  113. package/esm2020/plugin/public-api.mjs +6 -0
  114. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +3 -3
  115. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +3 -3
  116. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +3 -3
  117. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +4 -4
  118. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +3 -3
  119. package/esm2020/quantity-selector/quantity-selector.component.mjs +3 -3
  120. package/esm2020/quantity-selector/quantity-selector.module.mjs +4 -4
  121. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +3 -3
  122. package/esm2020/query-builder/common/services/output-query.service.mjs +3 -3
  123. package/esm2020/query-builder/common/services/query-structure.service.mjs +14 -12
  124. package/esm2020/query-builder/common/services/type-convertor.service.mjs +3 -3
  125. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +3 -3
  126. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  127. package/esm2020/query-builder/query-builder.component.mjs +3 -3
  128. package/esm2020/query-builder/query-builder.module.mjs +11 -6
  129. package/esm2020/query-builder/query-builder.service.mjs +3 -3
  130. package/esm2020/remote-loader/addon-block-loader.component.mjs +3 -3
  131. package/esm2020/remote-loader/addon-block-loader.service.mjs +8 -9
  132. package/esm2020/remote-loader/remote-loader.component.mjs +19 -31
  133. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  134. package/esm2020/remote-loader/remote-loader.module.mjs +4 -4
  135. package/esm2020/remote-loader/remote-loader.service.mjs +11 -13
  136. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +3 -3
  137. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +4 -4
  138. package/esm2020/search/search.component.mjs +4 -4
  139. package/esm2020/search/search.module.mjs +4 -4
  140. package/esm2020/select/select.component.mjs +3 -3
  141. package/esm2020/select/select.module.mjs +4 -4
  142. package/esm2020/separator/separator.component.mjs +3 -3
  143. package/esm2020/separator/separator.module.mjs +4 -4
  144. package/esm2020/side-bar/side-bar.component.mjs +4 -4
  145. package/esm2020/side-bar/side-bar.module.mjs +4 -4
  146. package/esm2020/signature/signature.component.mjs +3 -3
  147. package/esm2020/signature/signature.module.mjs +4 -4
  148. package/esm2020/size-detector/size-detector.component.mjs +3 -3
  149. package/esm2020/size-detector/size-detector.module.mjs +4 -4
  150. package/esm2020/slider/slider.component.mjs +3 -3
  151. package/esm2020/slider/slider.module.mjs +4 -4
  152. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +3 -3
  153. package/esm2020/smart-filters/common/filter-actions.component.mjs +3 -3
  154. package/esm2020/smart-filters/common/model/base-filter-component.mjs +4 -4
  155. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +3 -3
  156. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  157. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  158. package/esm2020/smart-filters/smart-filters.component.mjs +3 -3
  159. package/esm2020/smart-filters/smart-filters.module.mjs +11 -6
  160. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +3 -3
  161. package/esm2020/snack-bar/default-snack-bar.component.mjs +3 -3
  162. package/esm2020/snack-bar/snack-bar.component.mjs +3 -3
  163. package/esm2020/snack-bar/snack-bar.module.mjs +4 -4
  164. package/esm2020/snack-bar/snack-bar.service.mjs +3 -3
  165. package/esm2020/textarea/textarea.component.mjs +3 -3
  166. package/esm2020/textarea/textarea.module.mjs +4 -4
  167. package/esm2020/textbox/textbox-validation.directive.mjs +3 -3
  168. package/esm2020/textbox/textbox.component.mjs +10 -11
  169. package/esm2020/textbox/textbox.module.mjs +4 -4
  170. package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
  171. package/esm2020/textbox-icon/textbox-icon.module.mjs +4 -4
  172. package/esm2020/top-bar/top-bar.component.mjs +3 -3
  173. package/esm2020/top-bar/top-bar.module.mjs +4 -4
  174. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +7 -7
  175. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +7 -7
  176. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +8 -8
  177. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +7 -7
  178. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +10 -10
  179. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +7 -7
  180. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +10 -10
  181. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +13 -13
  182. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  183. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +10 -10
  184. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +7 -7
  185. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +8 -8
  186. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +60 -58
  187. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -7
  189. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +13 -13
  190. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +10 -10
  191. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +8 -135
  192. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  193. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +16 -17
  194. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  195. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +48 -48
  196. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -10
  197. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  198. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +115 -0
  199. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  200. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +13 -13
  201. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +13 -13
  202. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +38 -31
  203. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  204. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +44 -59
  205. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  206. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +7 -7
  207. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +8 -8
  208. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +7 -7
  209. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +7 -7
  210. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +8 -8
  211. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +7 -7
  212. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +7 -7
  213. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +7 -7
  214. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +34 -29
  215. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  216. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  217. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +7 -7
  218. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  219. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +17 -18
  220. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  221. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +7 -7
  222. package/fesm2015/pepperi-addons-ngx-lib.mjs +193 -147
  223. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  224. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +7 -7
  225. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +7 -7
  226. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +8 -8
  227. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +7 -7
  228. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +10 -10
  229. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +7 -7
  230. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +10 -10
  231. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +13 -13
  232. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  233. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +10 -10
  234. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +7 -7
  235. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +8 -8
  236. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +60 -58
  237. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  238. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -7
  239. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +13 -13
  240. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +10 -10
  241. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +8 -135
  242. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  243. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +16 -17
  244. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  245. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +48 -48
  246. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -10
  247. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  248. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +109 -0
  249. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  250. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +13 -13
  251. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +13 -13
  252. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +38 -31
  253. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  254. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +42 -57
  255. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  256. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +7 -7
  257. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +8 -8
  258. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +7 -7
  259. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +7 -7
  260. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +8 -8
  261. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +7 -7
  262. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +7 -7
  263. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +7 -7
  264. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +34 -29
  265. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  266. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  267. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +7 -7
  268. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  269. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +17 -18
  270. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  271. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +7 -7
  272. package/fesm2020/pepperi-addons-ngx-lib.mjs +193 -147
  273. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  274. package/form/internal-carusel.component.d.ts +1 -3
  275. package/form/internal-page.component.d.ts +2 -4
  276. package/link/link.component.d.ts +2 -3
  277. package/package.json +16 -8
  278. package/plugin/index.d.ts +5 -0
  279. package/plugin/plugin-proxy.component.d.ts +25 -0
  280. package/plugin/plugin.model.d.ts +6 -0
  281. package/plugin/public-api.d.ts +2 -0
  282. package/query-builder/common/services/query-structure.service.d.ts +3 -4
  283. package/remote-loader/addon-block-loader.service.d.ts +2 -3
  284. package/remote-loader/remote-loader.component.d.ts +2 -4
  285. package/remote-loader/remote-loader.model.d.ts +5 -4
  286. package/remote-loader/remote-loader.service.d.ts +1 -1
  287. package/textbox/textbox.component.d.ts +2 -3
@@ -74,9 +74,9 @@ export class PepSizeDetectorComponent {
74
74
  return this.currentSize;
75
75
  }
76
76
  }
77
- PepSizeDetectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSizeDetectorComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
78
- PepSizeDetectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepSizeDetectorComponent, selector: "pep-size-detector", inputs: { showScreenSize: "showScreenSize", useAsWebComponent: "useAsWebComponent" }, outputs: { sizeChange: "sizeChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<!-- Bootstrap -->\n<!-- <div *ngFor=\"let s of sizes\" class=\"{{s.css + ' ' + (prefix + s.id) }}\">{{s.name}}</div> -->\n\n<!-- Angular flex-layout -->\n<div *ngFor=\"let s of sizes\" fxShow.xs=\"{{s.name == 'xs'}}\" fxShow.sm=\"{{s.name == 'sm'}}\"\n fxShow.md=\"{{s.name == 'md'}}\" fxShow.lg=\"{{s.name == 'lg'}}\" fxShow.xl=\"{{s.name == 'xl'}}\"\n class=\"{{s.css + ' ' + (prefix + s.id) }}\">\n <ng-container *ngIf=\"showScreenSize\"> The current screen size is - {{s.name}}</ng-container>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSizeDetectorComponent, decorators: [{
77
+ PepSizeDetectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
78
+ PepSizeDetectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSizeDetectorComponent, selector: "pep-size-detector", inputs: { showScreenSize: "showScreenSize", useAsWebComponent: "useAsWebComponent" }, outputs: { sizeChange: "sizeChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<!-- Bootstrap -->\n<!-- <div *ngFor=\"let s of sizes\" class=\"{{s.css + ' ' + (prefix + s.id) }}\">{{s.name}}</div> -->\n\n<!-- Angular flex-layout -->\n<div *ngFor=\"let s of sizes\" fxShow.xs=\"{{s.name == 'xs'}}\" fxShow.sm=\"{{s.name == 'sm'}}\"\n fxShow.md=\"{{s.name == 'md'}}\" fxShow.lg=\"{{s.name == 'lg'}}\" fxShow.xl=\"{{s.name == 'xl'}}\"\n class=\"{{s.css + ' ' + (prefix + s.id) }}\">\n <ng-container *ngIf=\"showScreenSize\"> The current screen size is - {{s.name}}</ng-container>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorComponent, decorators: [{
80
80
  type: Component,
81
81
  args: [{ selector: 'pep-size-detector', template: "<!-- Bootstrap -->\n<!-- <div *ngFor=\"let s of sizes\" class=\"{{s.css + ' ' + (prefix + s.id) }}\">{{s.name}}</div> -->\n\n<!-- Angular flex-layout -->\n<div *ngFor=\"let s of sizes\" fxShow.xs=\"{{s.name == 'xs'}}\" fxShow.sm=\"{{s.name == 'sm'}}\"\n fxShow.md=\"{{s.name == 'md'}}\" fxShow.lg=\"{{s.name == 'lg'}}\" fxShow.xl=\"{{s.name == 'xl'}}\"\n class=\"{{s.css + ' ' + (prefix + s.id) }}\">\n <ng-container *ngIf=\"showScreenSize\"> The current screen size is - {{s.name}}</ng-container>\n</div>" }]
82
82
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { showScreenSize: [{
@@ -7,18 +7,18 @@ import { PepSizeDetectorComponent } from './size-detector.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class PepSizeDetectorModule {
9
9
  }
10
- PepSizeDetectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSizeDetectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- PepSizeDetectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: PepSizeDetectorModule, declarations: [PepSizeDetectorComponent], imports: [CommonModule,
10
+ PepSizeDetectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ PepSizeDetectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorModule, declarations: [PepSizeDetectorComponent], imports: [CommonModule,
12
12
  ReactiveFormsModule,
13
13
  FlexLayoutModule,
14
14
  // ngx-lib modules
15
15
  PepNgxLibModule], exports: [PepSizeDetectorComponent] });
16
- PepSizeDetectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSizeDetectorModule, imports: [CommonModule,
16
+ PepSizeDetectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorModule, imports: [CommonModule,
17
17
  ReactiveFormsModule,
18
18
  FlexLayoutModule,
19
19
  // ngx-lib modules
20
20
  PepNgxLibModule] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSizeDetectorModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSizeDetectorModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -72,9 +72,9 @@ export class PepSliderComponent {
72
72
  this.inputChange.emit(event.value);
73
73
  }
74
74
  }
75
- PepSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSliderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
76
- PepSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepSliderComponent, selector: "pep-slider", inputs: { label: "label", disabled: "disabled", hint: "hint", background: "background", step: "step", minValue: "minValue", maxValue: "maxValue", value: "value" }, outputs: { valueChange: "valueChange", inputChange: "inputChange" }, ngImport: i0, template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: ["", ".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"], dependencies: [{ kind: "component", type: i2.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "displayWith", "valueText", "vertical"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { kind: "component", type: i3.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }] });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSliderComponent, decorators: [{
75
+ PepSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.PepLayoutService }], target: i0.ɵɵFactoryTarget.Component });
76
+ PepSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepSliderComponent, selector: "pep-slider", inputs: { label: "label", disabled: "disabled", hint: "hint", background: "background", step: "step", minValue: "minValue", maxValue: "maxValue", value: "value" }, outputs: { valueChange: "valueChange", inputChange: "inputChange" }, ngImport: i0, template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: ["", ".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"], dependencies: [{ kind: "component", type: i2.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "displayWith", "valueText", "vertical"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { kind: "component", type: i3.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderComponent, decorators: [{
78
78
  type: Component,
79
79
  args: [{ selector: 'pep-slider', template: "<div class=\"pep-slider-container\">\n <pep-field-title [label]=\"label\" [disabled]=\"disabled\" [hint]=\"hint\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n <mat-slider [min]=\"minValue\" [max]=\"maxValue\" [step]=\"step\" [value]=\"value\" [disabled]=\"disabled\" [title]=\"value\"\n (change)=\"onValueChange($event)\" (input)=\"onInputChange($event)\">\n </mat-slider>\n</div>", styles: [".pep-slider-container ::ng-deep .mat-slider{background:hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.12)}.pep-slider-container ::ng-deep .mat-slider.mat-slider-horizontal{height:1rem;width:100%;padding:.5rem .25rem;border-radius:var(--pep-border-radius-lg, .5rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper{height:.375rem;position:relative;top:-.1875rem;left:unset;right:unset;border-radius:var(--pep-border-radius-md, .25rem)}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{display:none}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container{width:94%;left:3%}.pep-slider-container ::ng-deep .mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb{width:18px;height:18px;right:-9px;bottom:-9px;transform:scale(.7)!important;border-color:hsl(var(--pep-color-system-primary-invert-h, 255),var(--pep-color-system-primary-invert-s, 100%),var(--pep-color-system-primary-invert-l, 100%));border-width:5px;background-color:transparent!important;box-shadow:0 0 0 var(--pep-spacing-2xs, .125rem) hsla(var(--pep-color-text-link-h, 207),var(--pep-color-text-link-s, 76%),var(--pep-color-text-link-l, 37%),.5)}\n"] }]
80
80
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepLayoutService }]; }, propDecorators: { label: [{
@@ -8,22 +8,22 @@ import { PepSliderComponent } from './slider.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export class PepSliderModule {
10
10
  }
11
- PepSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- PepSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: PepSliderModule, declarations: [PepSliderComponent], imports: [CommonModule,
11
+ PepSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ PepSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepSliderModule, declarations: [PepSliderComponent], imports: [CommonModule,
13
13
  // Material modules
14
14
  MatCommonModule,
15
15
  MatSliderModule,
16
16
  // ngx-lib modules
17
17
  PepNgxLibModule,
18
18
  PepFieldTitleModule], exports: [PepSliderComponent] });
19
- PepSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSliderModule, imports: [CommonModule,
19
+ PepSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderModule, imports: [CommonModule,
20
20
  // Material modules
21
21
  MatCommonModule,
22
22
  MatSliderModule,
23
23
  // ngx-lib modules
24
24
  PepNgxLibModule,
25
25
  PepFieldTitleModule] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepSliderModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSliderModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  imports: [
@@ -64,9 +64,9 @@ export class PepBooleanFilterComponent extends BaseFilterComponent {
64
64
  }
65
65
  }
66
66
  }
67
- PepBooleanFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepBooleanFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
68
- PepBooleanFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: { options: "options" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"!inline\" [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group\" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n {{ 'CHECKBOX.TRUE' | translate }}\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n {{ 'CHECKBOX.FALSE' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>", styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5.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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepBooleanFilterComponent, decorators: [{
67
+ PepBooleanFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepBooleanFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
68
+ PepBooleanFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: { options: "options" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"!inline\" [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group\" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n {{ 'CHECKBOX.TRUE' | translate }}\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n {{ 'CHECKBOX.FALSE' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>", styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5.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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepBooleanFilterComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'pep-boolean-filter', template: "<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"!inline\" [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group\" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n {{ 'CHECKBOX.TRUE' | translate }}\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n {{ 'CHECKBOX.FALSE' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>", styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}\n"] }]
72
72
  }], propDecorators: { options: [{
@@ -14,9 +14,9 @@ export class PepFilterActionsComponent {
14
14
  this.applyClick.emit();
15
15
  }
16
16
  }
17
- PepFilterActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepFilterActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- PepFilterActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepFilterActionsComponent, selector: "pep-filter-actions", inputs: { form: "form" }, outputs: { clearClick: "clearClick", applyClick: "applyClick" }, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"filter-actions pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button sm weak\" (click)=\"clear()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button sm strong\" (click)=\"apply()\" [disabled]=\"form.invalid\">\n {{ 'ACTIONS.APPLY' | translate }}\n </button>\n</div>", styles: [".filter-actions{margin:var(--pep-spacing-lg, 1rem) 0 calc(var(--pep-spacing-lg, 1rem) / 2);display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepFilterActionsComponent, decorators: [{
17
+ PepFilterActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFilterActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ PepFilterActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepFilterActionsComponent, selector: "pep-filter-actions", inputs: { form: "form" }, outputs: { clearClick: "clearClick", applyClick: "applyClick" }, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"filter-actions pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button sm weak\" (click)=\"clear()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button sm strong\" (click)=\"apply()\" [disabled]=\"form.invalid\">\n {{ 'ACTIONS.APPLY' | translate }}\n </button>\n</div>", styles: [".filter-actions{margin:var(--pep-spacing-lg, 1rem) 0 calc(var(--pep-spacing-lg, 1rem) / 2);display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFilterActionsComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'pep-filter-actions', template: "<div [formGroup]=\"form\" class=\"filter-actions pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button sm weak\" (click)=\"clear()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button sm strong\" (click)=\"apply()\" [disabled]=\"form.invalid\">\n {{ 'ACTIONS.APPLY' | translate }}\n </button>\n</div>", styles: [".filter-actions{margin:var(--pep-spacing-lg, 1rem) 0 calc(var(--pep-spacing-lg, 1rem) / 2);display:flex;justify-content:flex-end}\n"] }]
22
22
  }], propDecorators: { form: [{
@@ -264,9 +264,9 @@ export class BaseFilterComponent {
264
264
  }
265
265
  }
266
266
  }
267
- BaseFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: BaseFilterComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.PepValidatorService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
268
- BaseFilterComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: BaseFilterComponent, inputs: { field: "field", variableField: "variableField", filter: "filter", parentForm: "parentForm", emitOnChange: "emitOnChange", inline: "inline", showActionButtons: "showActionButtons", renderTitle: "renderTitle", showAdditionalOperators: "showAdditionalOperators" }, outputs: { filterClear: "filterClear", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0 });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: BaseFilterComponent, decorators: [{
267
+ BaseFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseFilterComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }, { token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.PepValidatorService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
268
+ BaseFilterComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: BaseFilterComponent, inputs: { field: "field", variableField: "variableField", filter: "filter", parentForm: "parentForm", emitOnChange: "emitOnChange", inline: "inline", showActionButtons: "showActionButtons", renderTitle: "renderTitle", showAdditionalOperators: "showAdditionalOperators" }, outputs: { filterClear: "filterClear", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0 });
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseFilterComponent, decorators: [{
270
270
  type: Directive,
271
271
  args: [{}]
272
272
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i1.FormBuilder }, { type: i2.TranslateService }, { type: i3.PepValidatorService }, { type: i0.Renderer2 }]; }, propDecorators: { field: [{
@@ -292,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImpor
292
292
  }], filterChange: [{
293
293
  type: Output
294
294
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBUUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUszQyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzlCLE1BQU0sWUFBWSxDQUFDO0FBSXBCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFJeEUsTUFBTSxPQUFnQixtQkFBbUI7SUFxSHJDLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFFBQWtDLEVBQ2xDLE9BQW9CLEVBQ2xCLFNBQTJCLEVBQzNCLFNBQThCLEVBQzlCLFFBQW1CO1FBTnJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUF2SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVloQyx5QkFBb0IsR0FBc0IsRUFBRSxDQUFDO1FBNkJwQyxpQkFBWSxHQUFHLEtB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LElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNMLENBQUM7O2dIQWhWaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFO3dSQVNMLEtBQUs7c0JBRFIsS0FBSztnQkFZRixhQUFhO3NCQURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcbiAgICBWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIFBlcFZhbGlkYXRvclNlcnZpY2UsXG4gICAgSVBlcE9wdGlvblxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQge1xuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMsXG59IGZyb20gJy4vb3BlcmF0b3InO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSwgSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItYWN0aW9ucy5jb21wb25lbnQnO1xuXG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpbHRlckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+O1xuICAgIHByaXZhdGUgYWN0aW9uc0NvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfZmllbGRJZFdpdGhOb0RvdHMgPSAnJztcbiAgICBwcml2YXRlIF9maWVsZDogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGQodmFsdWU6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzID0gdmFsdWUgPyB2YWx1ZS5pZC5yZXBsYWNlKC9cXC4vZywgJ18nKSA6ICcnO1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cbiAgICBnZXQgZmllbGQoKTogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gICAgfVxuXG4gICAgdmFyaWFibGVGaWVsZE9wdGlvbnM6IEFycmF5PElQZXBPcHRpb24+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgdmFyaWFibGVGaWVsZChsaXN0OiBhbnlbXSkge1xuICAgICAgICBpZiAobGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlRmllbGRPcHRpb25zID0gbGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG4gICAgcHJpdmF0ZSBfZmlsdGVyOiBJUGVwU21hcnRGaWx0ZXJEYXRhO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcih2YWx1ZTogSVBlcFNtYXJ0RmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgICBnZXQgZmlsdGVyKCk6IElQZXBTbWFydEZpbHRlckRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3BhcmVudEZvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBwYXJlbnRGb3JtKGZvcm06IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtID0gZm9ybTtcbiAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRGb3JtKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGVtaXRPbkNoYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlubGluZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b25zID0gdHJ1ZTtcbiAgICBASW5wdXQoKSByZW5kZXJUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0FkZGl0aW9uYWxPcGVyYXRvcnMgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBmaWx0ZXJDbGVhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhPigpO1xuXG4gICAgcHJpdmF0ZSBfb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yO1xuICAgIHNldCBvcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IpIHtcbiAgICAgICAgaWYgKG9wZXJhdG9yPy5pZCAhPSB0aGlzLl9vcGVyYXRvcj8uaWQpIHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JzLmZpbmRJbmRleCgobykgPT4gby5pZCA9PT0gb3BlcmF0b3IuaWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yc1swXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yKCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29wZXJhdG9yVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0O1xuICAgIHNldCBvcGVyYXRvclVuaXQob3BlcmF0b3JVbml0OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0b3IgdW5pdFxuICAgICAgICBpZiAob3BlcmF0b3JVbml0KSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JVbml0cy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgKG91KSA9PiBvdS5pZCA9PT0gb3BlcmF0b3JVbml0LmlkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JVbml0O1xuICAgIH1cblxuICAgIGdldCBmaXJzdENvbnRyb2xLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkID8gYCR7dGhpcy5fZmllbGRJZFdpdGhOb0RvdHN9X2ZpcnN0YCA6ICdmaXJzdCc7XG4gICAgfVxuICAgIGdldCBmaXJzdENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQodGhpcy5maXJzdENvbnRyb2xLZXkpO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbEtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyBgJHt0aGlzLl9maWVsZElkV2l0aE5vRG90c31fc2Vjb25kYCA6ICdzZWNvbmQnO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCh0aGlzLnNlY29uZENvbnRyb2xLZXkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVyYXRvcnM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW107XG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yVW5pdHM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdFtdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9QRVJBVE9SU19UUkFOU0xBVElPTl9QUkVGSVggPSAnU01BUlRfRklMVEVSUy5PUEVSQVRPUlMnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPUEVSQVRPUl9VTklUU19UUkFOU0xBVElPTl9QUkVGSVggPVxuICAgICAgICAnU01BUlRfRklMVEVSUy5PUEVSQVRPUl9VTklUUyc7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdG9yOiBQZXBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQWN0aW9uc0NvbXBvbmVudCgpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5mb3JtO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuYXBwbHlDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuY2xlYXJDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5pbnNlcnQodGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmhvc3RWaWV3KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuc2Vjb25kQ29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgLy8gdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTsgICAgICAgIFxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmJ1aWxkZXIuZ3JvdXAoZm9ybVZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5mb3JtW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuXG4gICAgICAgIHRoaXMuc2V0dXBPcGVyYXRvcnMoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25zQ29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwT3BlcmF0b3JzKCkge1xuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9ycyBieSBjb21wb25lbnRUeXBlLlxuICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgIC8vIEFkZCBhZGRpdGlvbmFsIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy5zaG93QWRkaXRpb25hbE9wZXJhdG9ycykge1xuICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JbXSA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IFsuLi50aGlzLm9wZXJhdG9ycywgLi4uYWRkaXRpb25hbF07XG4gICAgICAgIH1cblxuICAgICAgICAvL2FkZCB2YXJpYWJsZSBvcGVyYXRvcnNcbiAgICAgICAgaWYgKHRoaXMudmFyaWFibGVGaWVsZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi52YXJpYWJsZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9ycy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9yIHVuaXRzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cylcbiAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzW2tleV0pO1xuXG4gICAgICAgIC8vIEZpbHRlciBieSBmcm9tIGZpZWxkLm9wZXJhdG9yc1VuaXRzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvclVuaXRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdHMgPSB0aGlzLm9wZXJhdG9yVW5pdHMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHMuc29tZSgobzIpID0+IG8xLmlkID09PSBvMilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2FkIHRyYW5zbGF0aW9uIGJlZm9yZSBnZXQgdGhlIG9wdGlvbnMgaW4gdGhlIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ1NNQVJUX0ZJTFRFUlMuVElUTEUnKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkT3BlcmF0b3JzT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRmlsdGVyKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmZpbHRlci5vcGVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0ID0gdGhpcy5maWx0ZXIub3BlcmF0b3JVbml0O1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5maXJzdENvbnRyb2xLZXldID0gdGhpcy5maWx0ZXIudmFsdWUuZmlyc3Q7XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IHRoaXMuZmlsdGVyLnZhbHVlLnNlY29uZDtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGZvcm1WYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gdGhpcy5nZXREZWZhdWx0T3BlcmF0b3IoKTtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0ID0gdGhpcy5nZXREZWZhdWx0T3BlcmF0b3JVbml0KCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVQYXJlbnRGb3JtKCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ2ZpZWxkSWQnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLmZpZWxkLmlkKSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnZmllbGRUeXBlJywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5maWVsZC50eXBlKSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnb3BlcmF0b3InLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLm9wZXJhdG9yKSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnb3BlcmF0b3JVbml0JywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5vcGVyYXRvclVuaXQpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCd2YWx1ZXMnLCB0aGlzLmJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgZmlyc3Q6IHRoaXMuZmlyc3RDb250cm9sLFxuICAgICAgICAgICAgc2Vjb25kOiB0aGlzLnNlY29uZENvbnRyb2xcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZXN0cm95ZXIoKSB7XG4gICAgICAgIHJldHVybiB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkaXR5KCkge1xuICAgICAgICB0aGlzLnNldEZpZWxkc1N0YXRlQW5kVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgLy8gTG9hZCB0aGUgb3BlcmF0b3JzIG9wdGlvbnMgZnJvbSB0aGUgdHJhbnNsYXRpb24uXG4gICAgcHJvdGVjdGVkIGxvYWRPcGVyYXRvcnNPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWxpZGF0b3JzIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpcnN0Q29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0RmlsdGVyKCkge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0T3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3I7XG4gICAgYWJzdHJhY3QgZ2V0RmlsdGVyVmFsdWUoKTogSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlO1xuXG4gICAgY2xlYXJGaWx0ZXIoZW1pdEV2ZW50ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKCk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDbGVhci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcHBseUZpbHRlcigpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmdldEZpbHRlclZhbHVlKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGZpbHRlciBpcyBub3QgbnVsbCBkZWNsYXJlIGl0LCBlbHNlIC0gY2xlYXIgaXQuXG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IHRoaXMuZmllbGQuaWQsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3JVbml0OiB0aGlzLm9wZXJhdG9yVW5pdCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyVmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gZmlsdGVyO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdChmaWx0ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3cml0ZVZhbHVlKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWUpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHZhbHVlKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoXG4gICAgLy8gICAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgICAgICBmaXJzdDogdmFsdWUuZmlyc3QsXG4gICAgLy8gICAgICAgICAgICAgICAgIHNlY29uZDogdmFsdWUuc2Vjb25kIHx8IG51bGwsXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgIC8vICAgICAgICAgKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG4gICAgLy8gcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGZuKTtcbiAgICAvLyB9XG5cbiAgICAvLyBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gICAgIC8qIERvIG5vdGhpbmcgKi9cbiAgICAvLyB9O1xuXG4gICAgLy8gcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIC8vIH1cblxuICAgIC8vIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyAgICAgaXNEaXNhYmxlZCA/IHRoaXMuZm9ybS5kaXNhYmxlKCkgOiB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQgPyBudWxsIDogeyBQZXBGaWx0ZXJJc05vdFZhbGlkOiB0cnVlIH07XG4gICAgLy8gfVxufVxuIl19
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUszQyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzlCLE1BQU0sWUFBWSxDQUFDO0FBSXBCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFJeEUsTUFBTSxPQUFnQixtQkFBbUI7SUFxSHJDLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFFBQWtDLEVBQ2xDLE9BQW9CLEVBQ2xCLFNBQTJCLEVBQzNCLFNBQThCLEVBQzlCLFFBQW1CO1FBTnJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUF2SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVloQyx5QkFBb0IsR0FBc0IsRUFBRSxDQUFDO1FBNkJwQyxpQkFBWSxHQUFHLEtB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LElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNMLENBQUM7O2dIQWhWaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFO3dSQVNMLEtBQUs7c0JBRFIsS0FBSztnQkFZRixhQUFhO3NCQURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBJUGVwT3B0aW9uXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsXG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0LFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cyxcbn0gZnJvbSAnLi9vcGVyYXRvcic7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVwU21hcnRGaWx0ZXJEYXRhLCBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWUgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCB9IGZyb20gJy4vZmllbGQnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUGVwRmlsdGVyQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci1hY3Rpb25zLmNvbXBvbmVudCc7XG5cblxuQERpcmVjdGl2ZSh7fSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRmlsdGVyQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD47XG4gICAgcHJpdmF0ZSBhY3Rpb25zQ29udGFpbmVyUmVmOiBDb21wb25lbnRSZWY8UGVwRmlsdGVyQWN0aW9uc0NvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIF9maWVsZElkV2l0aE5vRG90cyA9ICcnO1xuICAgIHByaXZhdGUgX2ZpZWxkOiBQZXBTbWFydEZpbHRlckJhc2VGaWVsZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWVsZCh2YWx1ZTogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQpIHtcbiAgICAgICAgdGhpcy5fZmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZmllbGRJZFdpdGhOb0RvdHMgPSB2YWx1ZSA/IHZhbHVlLmlkLnJlcGxhY2UoL1xcLi9nLCAnXycpIDogJyc7XG4gICAgICAgIHRoaXMuc2V0dXBGb3JtKCk7XG4gICAgfVxuICAgIGdldCBmaWVsZCgpOiBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgICB9XG5cbiAgICB2YXJpYWJsZUZpZWxkT3B0aW9uczogQXJyYXk8SVBlcE9wdGlvbj4gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2YXJpYWJsZUZpZWxkKGxpc3Q6IGFueVtdKSB7XG4gICAgICAgIGlmIChsaXN0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVGaWVsZE9wdGlvbnMgPSBsaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG5cbiAgICBwcml2YXRlIF9maWx0ZXI6IElQZXBTbWFydEZpbHRlckRhdGE7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmlsdGVyKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldHVwRmlsdGVyKCk7XG4gICAgfVxuICAgIGdldCBmaWx0ZXIoKTogSVBlcFNtYXJ0RmlsdGVyRGF0YSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcGFyZW50Rm9ybTogRm9ybUdyb3VwO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHBhcmVudEZvcm0oZm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0gPSBmb3JtO1xuICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudEZvcm0oKTtcbiAgICB9XG4gICAgQElucHV0KCkgZW1pdE9uQ2hhbmdlID0gZmFsc2U7XG4gICAgQElucHV0KCkgaW5saW5lID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd0FjdGlvbkJ1dHRvbnMgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG93QWRkaXRpb25hbE9wZXJhdG9ycyA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGZpbHRlckNsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBlcFNtYXJ0RmlsdGVyRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckRhdGE+KCk7XG5cbiAgICBwcml2YXRlIF9vcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3I7XG4gICAgc2V0IG9wZXJhdG9yKG9wZXJhdG9yOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcikge1xuICAgICAgICBpZiAob3BlcmF0b3I/LmlkICE9IHRoaXMuX29wZXJhdG9yPy5pZCkge1xuICAgICAgICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0b3JcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVyYXRvcnMuZmluZEluZGV4KChvKSA9PiBvLmlkID09PSBvcGVyYXRvci5pZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzWzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3Ige1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3BlcmF0b3JVbml0OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQ7XG4gICAgc2V0IG9wZXJhdG9yVW5pdChvcGVyYXRvclVuaXQ6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCkge1xuICAgICAgICAvLyBWYWxpZGF0ZSBvcGVyYXRvciB1bml0XG4gICAgICAgIGlmIChvcGVyYXRvclVuaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVyYXRvclVuaXRzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAob3UpID0+IG91LmlkID09PSBvcGVyYXRvclVuaXQuaWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yVW5pdCA9IHRoaXMub3BlcmF0b3JVbml0c1tpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yVW5pdCA9IHRoaXMub3BlcmF0b3JVbml0c1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yVW5pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3BlcmF0b3JVbml0KCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclVuaXQ7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0Q29udHJvbEtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyBgJHt0aGlzLl9maWVsZElkV2l0aE5vRG90c31fZmlyc3RgIDogJ2ZpcnN0JztcbiAgICB9XG4gICAgZ2V0IGZpcnN0Q29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCh0aGlzLmZpcnN0Q29udHJvbEtleSk7XG4gICAgfVxuICAgIGdldCBzZWNvbmRDb250cm9sS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCA/IGAke3RoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzfV9zZWNvbmRgIDogJ3NlY29uZCc7XG4gICAgfVxuICAgIGdldCBzZWNvbmRDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KHRoaXMuc2Vjb25kQ29udHJvbEtleSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yczogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JbXTtcbiAgICBwcm90ZWN0ZWQgb3BlcmF0b3JVbml0czogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0W107XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgT1BFUkFUT1JTX1RSQU5TTEFUSU9OX1BSRUZJWCA9ICdTTUFSVF9GSUxURVJTLk9QRVJBVE9SUyc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9QRVJBVE9SX1VOSVRTX1RSQU5TTEFUSU9OX1BSRUZJWCA9XG4gICAgICAgICdTTUFSVF9GSUxURVJTLk9QRVJBVE9SX1VOSVRTJztcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgYnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCB2YWxpZGF0b3I6IFBlcFZhbGlkYXRvclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBY3Rpb25zQ29tcG9uZW50KCkge1xuICAgICAgICBjb25zdCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgICAgIFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYgPSBmYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLmZvcm07XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5hcHBseUNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5jbGVhckNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmluc2VydCh0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaG9zdFZpZXcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGb3JtKCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmb3JtVmFsdWUpOyAgICAgICAgXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuYnVpbGRlci5ncm91cChmb3JtVmFsdWUpO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5maXJzdENvbnRyb2xLZXldID0gW107XG4gICAgICAgIC8vIHRoaXMuZm9ybVt0aGlzLnNlY29uZENvbnRyb2xLZXldID0gW107XG5cbiAgICAgICAgdGhpcy5zZXR1cE9wZXJhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3dBY3Rpb25CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbnNDb21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBPcGVyYXRvcnMoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3JzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMpXG4gICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgLy8gQWRkIGFkZGl0aW9uYWwgb3BlcmF0b3JzXG4gICAgICAgIGlmICh0aGlzLnNob3dBZGRpdGlvbmFsT3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi5hZGRpdGlvbmFsXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYWRkIHZhcmlhYmxlIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy52YXJpYWJsZUZpZWxkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZXM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW10gPSBPYmplY3Qua2V5cyhQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSBbLi4udGhpcy5vcGVyYXRvcnMsIC4uLnZhcmlhYmxlc107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWx0ZXIgYnkgZnJvbSBmaWVsZC5vcGVyYXRvcnMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JzLnNvbWUoKG8yKSA9PiBvMS5pZCA9PT0gbzIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3IgdW5pdHMgYnkgY29tcG9uZW50VHlwZS5cbiAgICAgICAgdGhpcy5vcGVyYXRvclVuaXRzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0c1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XSk7XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzVW5pdHMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IHRoaXMub3BlcmF0b3JVbml0cy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JVbml0cy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgdHJhbnNsYXRpb24gYmVmb3JlIGdldCB0aGUgb3B0aW9ucyBpbiB0aGUgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnU01BUlRfRklMVEVSUy5USVRMRScpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRPcGVyYXRvcnNPcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IHRoaXMuZmlsdGVyLm9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLmZpbHRlci5vcGVyYXRvclVuaXQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSB0aGlzLmZpbHRlci52YWx1ZS5maXJzdDtcbiAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLnNlY29uZENvbnRyb2xLZXldID0gdGhpcy5maWx0ZXIudmFsdWUuc2Vjb25kO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvcigpO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvclVuaXQoKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVBhcmVudEZvcm0oKSB7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnZmllbGRJZCcsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMuZmllbGQuaWQpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdmaWVsZFR5cGUnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLmZpZWxkLnR5cGUpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvcicsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMub3BlcmF0b3IpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvclVuaXQnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLm9wZXJhdG9yVW5pdCkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ3ZhbHVlcycsIHRoaXMuYnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdENvbnRyb2wsXG4gICAgICAgICAgICBzZWNvbmQ6IHRoaXMuc2Vjb25kQ29udHJvbFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldERlc3Ryb3llcigpIHtcbiAgICAgICAgcmV0dXJuIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRpdHkoKSB7XG4gICAgICAgIHRoaXMuc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgdGhpcy5maXJzdENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICAvLyBMb2FkIHRoZSBvcGVyYXRvcnMgb3B0aW9ucyBmcm9tIHRoZSB0cmFuc2xhdGlvbi5cbiAgICBwcm90ZWN0ZWQgbG9hZE9wZXJhdG9yc09wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IHZhbGlkYXRvcnMgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBzZXRGaWVsZHNTdGF0ZUFuZFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuc2Vjb25kQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0T3BlcmF0b3JVbml0KCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRGaWx0ZXIoKSB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIGFic3RyYWN0IGdldERlZmF1bHRPcGVyYXRvcigpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcjtcbiAgICBhYnN0cmFjdCBnZXRGaWx0ZXJWYWx1ZSgpOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWU7XG5cbiAgICBjbGVhckZpbHRlcihlbWl0RXZlbnQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNsZWFyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZ2V0RmlsdGVyVmFsdWUoKTtcblxuICAgICAgICAvLyBJZiB0aGUgZmlsdGVyIGlzIG5vdCBudWxsIGRlY2xhcmUgaXQsIGVsc2UgLSBjbGVhciBpdC5cbiAgICAgICAgaWYgKGZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgZmllbGRJZDogdGhpcy5maWVsZC5pZCxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICBvcGVyYXRvclVuaXQ6IHRoaXMub3BlcmF0b3JVbml0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KGZpbHRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdyaXRlVmFsdWUodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodmFsdWUpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZShcbiAgICAvLyAgICAgICAgICAgICB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGZpcnN0OiB2YWx1ZS5maXJzdCxcbiAgICAvLyAgICAgICAgICAgICAgICAgc2Vjb25kOiB2YWx1ZS5zZWNvbmQgfHwgbnVsbCxcbiAgICAvLyAgICAgICAgICAgICB9LFxuICAgIC8vICAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgLy8gICAgICAgICApO1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICAvLyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pO1xuICAgIC8vIH1cblxuICAgIC8vIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvLyAgICAgLyogRG8gbm90aGluZyAqL1xuICAgIC8vIH07XG5cbiAgICAvLyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgLy8gfVxuXG4gICAgLy8gc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vICAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtLmRpc2FibGUoKSA6IHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZCA/IG51bGwgOiB7IFBlcEZpbHRlcklzTm90VmFsaWQ6IHRydWUgfTtcbiAgICAvLyB9XG59XG4iXX0=
@@ -163,9 +163,9 @@ export class PepDateFilterComponent extends BaseFilterComponent {
163
163
  }
164
164
  }
165
165
  }
166
- PepDateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepDateFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
167
- PepDateFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepDateFilterComponent, selector: "pep-date-filter", usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"chooseTimeOptions\"\n [fxFlex]=\"inline ? operatorWidth : null\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar || \n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar || \n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\" [type]=\"'int'\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-textbox>\n <!-- Time unit -->\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [emptyOption]=\"false\" [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\n </pep-select>\n </div>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Start date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl?.value || ''\"\n [maxDateValue]=\"secondControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n <!-- End date -->\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"secondControl?.value || ''\"\n [minDateValue]=\"firstControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </div>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.On\">\n <!-- Choose a date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.CHOOSE_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [fxFlex]=\"inline ? fieldsWidth : null\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </ng-container>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterVariableOperators.DateRangeVariable\" fxLayout=\"row\"\n fxLayout.xs=\"column\" fxLayoutGap=\".5rem\" fxFlex=\"fieldsWidth\">\n <pep-select fxFlex=\"50%\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\"></pep-select>\n <pep-select fxFlex=\"50%\" [key]=\"secondControlKey\" [value]=\"secondControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onSecondVariableChanged($event)\"></pep-select>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i5.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: i6.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: i7.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: "pipe", type: i8.TranslatePipe, name: "translate" }] });
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepDateFilterComponent, decorators: [{
166
+ PepDateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDateFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
167
+ PepDateFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepDateFilterComponent, selector: "pep-date-filter", usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"chooseTimeOptions\"\n [fxFlex]=\"inline ? operatorWidth : null\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar || \n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar || \n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\" [type]=\"'int'\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-textbox>\n <!-- Time unit -->\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [emptyOption]=\"false\" [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\n </pep-select>\n </div>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Start date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl?.value || ''\"\n [maxDateValue]=\"secondControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n <!-- End date -->\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"secondControl?.value || ''\"\n [minDateValue]=\"firstControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </div>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.On\">\n <!-- Choose a date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.CHOOSE_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [fxFlex]=\"inline ? fieldsWidth : null\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </ng-container>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterVariableOperators.DateRangeVariable\" fxLayout=\"row\"\n fxLayout.xs=\"column\" fxLayoutGap=\".5rem\" fxFlex=\"fieldsWidth\">\n <pep-select fxFlex=\"50%\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\"></pep-select>\n <pep-select fxFlex=\"50%\" [key]=\"secondControlKey\" [value]=\"secondControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onSecondVariableChanged($event)\"></pep-select>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i5.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: i6.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: i7.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: "pipe", type: i8.TranslatePipe, name: "translate" }] });
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDateFilterComponent, decorators: [{
169
169
  type: Component,
170
170
  args: [{ selector: 'pep-date-filter', template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"chooseTimeOptions\"\n [fxFlex]=\"inline ? operatorWidth : null\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar || \n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar || \n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\" [type]=\"'int'\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-textbox>\n <!-- Time unit -->\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [emptyOption]=\"false\" [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\n </pep-select>\n </div>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Start date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl?.value || ''\"\n [maxDateValue]=\"secondControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n <!-- End date -->\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"secondControl?.value || ''\"\n [minDateValue]=\"firstControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </div>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.On\">\n <!-- Choose a date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.CHOOSE_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [fxFlex]=\"inline ? fieldsWidth : null\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </ng-container>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterVariableOperators.DateRangeVariable\" fxLayout=\"row\"\n fxLayout.xs=\"column\" fxLayoutGap=\".5rem\" fxFlex=\"fieldsWidth\">\n <pep-select fxFlex=\"50%\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\"></pep-select>\n <pep-select fxFlex=\"50%\" [key]=\"secondControlKey\" [value]=\"secondControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onSecondVariableChanged($event)\"></pep-select>\n </div>\n</div>\n" }]
171
171
  }] });
@@ -185,9 +185,9 @@ export class PepMultiSelectFilterComponent extends BaseFilterComponent {
185
185
  }
186
186
  }
187
187
  }
188
- PepMultiSelectFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepMultiSelectFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
189
- PepMultiSelectFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepMultiSelectFilterComponent, selector: "pep-multi-select-filter", viewQueries: [{ propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "virtualScroller", first: true, predicate: VirtualScrollerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\"\n [value]=\"selected\" [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\" [value]=\"selected\"\n [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-container>\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\n [triggerOn]=\"'keydown'\" shrink=\"never\"></pep-search>\n <div pepRtlClass class=\"multi-select-options pep-border-top pep-border-bottom\"\n [ngClass]=\"{'with-no-search': options?.length <= numberOptionsToShowSearch}\">\n <div #optionsContainer class=\"flip-scroll\" pepRtlClass>\n <virtual-scroller #scroll [items]=\"filteredOptions$ | async\" [parentScroll]=\"optionsContainer\">\n <mat-checkbox *ngFor=\"let opt of scroll.viewPortItems\"\n class=\"pep-checkbox-container pep-input no-default-background md\" [title]=\"opt.value\"\n [checked]=\"opt.selected\" (change)=\"onOptionChange(opt, $event)\">\n <div class=\"title\">\n <span class=\"body-sm ellipsis\">{{ opt.value }}</span>\n <span *ngIf=\"opt.count\" class=\"color-dimmed body-xs ellipsis\">({{opt.count}})</span>\n </div>\n </mat-checkbox>\n <ng-container *ngIf=\"scroll.viewPortItems?.length === 0\">\n <span class=\"no-options body-sm ellipsis\" [title]=\"field.name\">\n {{ ( options.length > 0 ? \"SMART_FILTERS.NO_SEARCH_RESULTS\" : \"SMART_FILTERS.NO_OPTIONS\") |\n translate }}\n </span>\n </ng-container>\n </virtual-scroller>\n </div>\n </div>\n</div>", styles: [".multi-select-options{margin:var(--pep-spacing-sm, .5rem) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options.with-no-search{margin:calc(var(--pep-spacing-sm, .5rem) * -1) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options .no-options{display:flex;padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-md, .75rem)}.multi-select-options .flip-scroll{padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-xs, .25rem);min-height:3.25rem;max-height:34.75rem;direction:rtl}.multi-select-options .flip-scroll virtual-scroller{direction:ltr}.multi-select-options .flip-scroll.rtl{direction:ltr}.multi-select-options .flip-scroll.rtl virtual-scroller{direction:rtl}.multi-select-options .pep-checkbox-container{height:2.25rem;padding-inline-end:0}.multi-select-options .pep-checkbox-container ::ng-deep .mat-checkbox-layout{width:100%;height:100%;grid-template-columns:auto 1fr}.multi-select-options .pep-checkbox-container ::ng-deep .mat-checkbox-layout .mat-checkbox-label{align-self:center}.multi-select-options .pep-checkbox-container .title{display:grid;grid-auto-flow:column;justify-content:space-between;align-items:center;margin:0 var(--pep-spacing-xs, .25rem)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.VirtualScrollerComponent, selector: "virtual-scroller,[virtualScroller]", inputs: ["executeRefreshOutsideAngularZone", "RTL", "useMarginInsteadOfTranslate", "ssrViewportWidth", "ssrViewportHeight", "compareItems", "checkResizeInterval", "modifyOverflowStyleOfParentScroll", "resizeBypassRefreshThreshold", "scrollAnimationTime", "scrollDebounceTime", "scrollThrottlingTime", "scrollbarHeight", "scrollbarWidth", "stripedTable", "horizontal", "enableUnequalChildrenSizes", "bufferAmount", "items", "parentScroll", "childWidth", "childHeight", "ssrChildWidth", "ssrChildHeight"], outputs: ["vsUpdate", "vsChange", "vsStart", "vsEnd"], exportAs: ["virtualScroller"] }, { kind: "directive", type: i7.PepRtlClassDirective, selector: "[pepRtlClass]" }, { kind: "component", type: i8.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: i9.PepSearchComponent, selector: "pep-search", inputs: ["triggerOn", "autoCompleteTop", "autoCompleteValues", "shrink", "value", "searchControl", "useAsWebComponent", "sizeType"], outputs: ["search", "autocompleteChange", "stateChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepMultiSelectFilterComponent, decorators: [{
188
+ PepMultiSelectFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepMultiSelectFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
189
+ PepMultiSelectFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepMultiSelectFilterComponent, selector: "pep-multi-select-filter", viewQueries: [{ propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "virtualScroller", first: true, predicate: VirtualScrollerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\"\n [value]=\"selected\" [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\" [value]=\"selected\"\n [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-container>\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\n [triggerOn]=\"'keydown'\" shrink=\"never\"></pep-search>\n <div pepRtlClass class=\"multi-select-options pep-border-top pep-border-bottom\"\n [ngClass]=\"{'with-no-search': options?.length <= numberOptionsToShowSearch}\">\n <div #optionsContainer class=\"flip-scroll\" pepRtlClass>\n <virtual-scroller #scroll [items]=\"filteredOptions$ | async\" [parentScroll]=\"optionsContainer\">\n <mat-checkbox *ngFor=\"let opt of scroll.viewPortItems\"\n class=\"pep-checkbox-container pep-input no-default-background md\" [title]=\"opt.value\"\n [checked]=\"opt.selected\" (change)=\"onOptionChange(opt, $event)\">\n <div class=\"title\">\n <span class=\"body-sm ellipsis\">{{ opt.value }}</span>\n <span *ngIf=\"opt.count\" class=\"color-dimmed body-xs ellipsis\">({{opt.count}})</span>\n </div>\n </mat-checkbox>\n <ng-container *ngIf=\"scroll.viewPortItems?.length === 0\">\n <span class=\"no-options body-sm ellipsis\" [title]=\"field.name\">\n {{ ( options.length > 0 ? \"SMART_FILTERS.NO_SEARCH_RESULTS\" : \"SMART_FILTERS.NO_OPTIONS\") |\n translate }}\n </span>\n </ng-container>\n </virtual-scroller>\n </div>\n </div>\n</div>", styles: [".multi-select-options{margin:var(--pep-spacing-sm, .5rem) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options.with-no-search{margin:calc(var(--pep-spacing-sm, .5rem) * -1) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options .no-options{display:flex;padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-md, .75rem)}.multi-select-options .flip-scroll{padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-xs, .25rem);min-height:3.25rem;max-height:34.75rem;direction:rtl}.multi-select-options .flip-scroll virtual-scroller{direction:ltr}.multi-select-options .flip-scroll.rtl{direction:ltr}.multi-select-options .flip-scroll.rtl virtual-scroller{direction:rtl}.multi-select-options .pep-checkbox-container{height:2.25rem;padding-inline-end:0}.multi-select-options .pep-checkbox-container ::ng-deep .mat-checkbox-layout{width:100%;height:100%;grid-template-columns:auto 1fr}.multi-select-options .pep-checkbox-container ::ng-deep .mat-checkbox-layout .mat-checkbox-label{align-self:center}.multi-select-options .pep-checkbox-container .title{display:grid;grid-auto-flow:column;justify-content:space-between;align-items:center;margin:0 var(--pep-spacing-xs, .25rem)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.VirtualScrollerComponent, selector: "virtual-scroller,[virtualScroller]", inputs: ["executeRefreshOutsideAngularZone", "RTL", "useMarginInsteadOfTranslate", "ssrViewportWidth", "ssrViewportHeight", "compareItems", "checkResizeInterval", "modifyOverflowStyleOfParentScroll", "resizeBypassRefreshThreshold", "scrollAnimationTime", "scrollDebounceTime", "scrollThrottlingTime", "scrollbarHeight", "scrollbarWidth", "stripedTable", "horizontal", "enableUnequalChildrenSizes", "bufferAmount", "items", "parentScroll", "childWidth", "childHeight", "ssrChildWidth", "ssrChildHeight"], outputs: ["vsUpdate", "vsChange", "vsStart", "vsEnd"], exportAs: ["virtualScroller"] }, { kind: "directive", type: i7.PepRtlClassDirective, selector: "[pepRtlClass]" }, { kind: "component", type: i8.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: i9.PepSearchComponent, selector: "pep-search", inputs: ["triggerOn", "autoCompleteTop", "autoCompleteValues", "shrink", "value", "searchControl", "useAsWebComponent", "sizeType"], outputs: ["search", "autocompleteChange", "stateChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepMultiSelectFilterComponent, decorators: [{
191
191
  type: Component,
192
192
  args: [{ selector: 'pep-multi-select-filter', template: "<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\"\n [value]=\"selected\" [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\" [value]=\"selected\"\n [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-container>\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\n [triggerOn]=\"'keydown'\" shrink=\"never\"></pep-search>\n <div pepRtlClass class=\"multi-select-options pep-border-top pep-border-bottom\"\n [ngClass]=\"{'with-no-search': options?.length <= numberOptionsToShowSearch}\">\n <div #optionsContainer class=\"flip-scroll\" pepRtlClass>\n <virtual-scroller #scroll [items]=\"filteredOptions$ | async\" [parentScroll]=\"optionsContainer\">\n <mat-checkbox *ngFor=\"let opt of scroll.viewPortItems\"\n class=\"pep-checkbox-container pep-input no-default-background md\" [title]=\"opt.value\"\n [checked]=\"opt.selected\" (change)=\"onOptionChange(opt, $event)\">\n <div class=\"title\">\n <span class=\"body-sm ellipsis\">{{ opt.value }}</span>\n <span *ngIf=\"opt.count\" class=\"color-dimmed body-xs ellipsis\">({{opt.count}})</span>\n </div>\n </mat-checkbox>\n <ng-container *ngIf=\"scroll.viewPortItems?.length === 0\">\n <span class=\"no-options body-sm ellipsis\" [title]=\"field.name\">\n {{ ( options.length > 0 ? \"SMART_FILTERS.NO_SEARCH_RESULTS\" : \"SMART_FILTERS.NO_OPTIONS\") |\n translate }}\n </span>\n </ng-container>\n </virtual-scroller>\n </div>\n </div>\n</div>", styles: [".multi-select-options{margin:var(--pep-spacing-sm, .5rem) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options.with-no-search{margin:calc(var(--pep-spacing-sm, .5rem) * -1) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options .no-options{display:flex;padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-md, .75rem)}.multi-select-options .flip-scroll{padding:var(--pep-spacing-sm, .5rem) var(--pep-spacing-xs, .25rem);min-height:3.25rem;max-height:34.75rem;direction:rtl}.multi-select-options .flip-scroll virtual-scroller{direction:ltr}.multi-select-options .flip-scroll.rtl{direction:ltr}.multi-select-options .flip-scroll.rtl virtual-scroller{direction:rtl}.multi-select-options .pep-checkbox-container{height:2.25rem;padding-inline-end:0}.multi-select-options .pep-checkbox-container ::ng-deep .mat-checkbox-layout{width:100%;height:100%;grid-template-columns:auto 1fr}.multi-select-options .pep-checkbox-container ::ng-deep .mat-checkbox-layout .mat-checkbox-label{align-self:center}.multi-select-options .pep-checkbox-container .title{display:grid;grid-auto-flow:column;justify-content:space-between;align-items:center;margin:0 var(--pep-spacing-xs, .25rem)}\n"] }]
193
193
  }], propDecorators: { optionsContainer: [{
@@ -107,9 +107,9 @@ export class PepNumberFilterComponent extends BaseFilterComponent {
107
107
  }
108
108
  }
109
109
  }
110
- PepNumberFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepNumberFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
111
- PepNumberFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepNumberFilterComponent, selector: "pep-number-filter", usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container [ngSwitch]=\"operator\">\n <ng-container *ngSwitchCase=\"PepSmartFilterOperators.NumberRange\">\n <div fxLayout=\"row\" fxLayout.xs=\"column\" [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\"\n [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Min number -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n [maxValue]=\"secondControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n <!-- Max number -->\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [formattedValue]=\"secondControl?.value || ''\" [value]=\"secondControl?.value || ''\"\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"PepSmartFilterVariableOperators.LessThanVariable || \n PepSmartFilterVariableOperators.GreaterThanVariable || \n PepSmartFilterVariableOperators.EqualsToVariable\">\n <pep-select [fxFlex]=\"inline ? fieldsWidth : null\" [key]=\"firstControlKey\"\n [value]=\"firstControl?.value || ''\" [label]=\"'SMART_FILTERS.TYPE' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"variableFieldOptions\"\n (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.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: i5.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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepNumberFilterComponent, decorators: [{
110
+ PepNumberFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepNumberFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
111
+ PepNumberFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepNumberFilterComponent, selector: "pep-number-filter", usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container [ngSwitch]=\"operator\">\n <ng-container *ngSwitchCase=\"PepSmartFilterOperators.NumberRange\">\n <div fxLayout=\"row\" fxLayout.xs=\"column\" [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\"\n [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Min number -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n [maxValue]=\"secondControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n <!-- Max number -->\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [formattedValue]=\"secondControl?.value || ''\" [value]=\"secondControl?.value || ''\"\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"PepSmartFilterVariableOperators.LessThanVariable || \n PepSmartFilterVariableOperators.GreaterThanVariable || \n PepSmartFilterVariableOperators.EqualsToVariable\">\n <pep-select [fxFlex]=\"inline ? fieldsWidth : null\" [key]=\"firstControlKey\"\n [value]=\"firstControl?.value || ''\" [label]=\"'SMART_FILTERS.TYPE' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"variableFieldOptions\"\n (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { 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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.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: i5.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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepNumberFilterComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: 'pep-number-filter', template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container [ngSwitch]=\"operator\">\n <ng-container *ngSwitchCase=\"PepSmartFilterOperators.NumberRange\">\n <div fxLayout=\"row\" fxLayout.xs=\"column\" [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\"\n [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Min number -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n [maxValue]=\"secondControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n <!-- Max number -->\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [formattedValue]=\"secondControl?.value || ''\" [value]=\"secondControl?.value || ''\"\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"PepSmartFilterVariableOperators.LessThanVariable || \n PepSmartFilterVariableOperators.GreaterThanVariable || \n PepSmartFilterVariableOperators.EqualsToVariable\">\n <pep-select [fxFlex]=\"inline ? fieldsWidth : null\" [key]=\"firstControlKey\"\n [value]=\"firstControl?.value || ''\" [label]=\"'SMART_FILTERS.TYPE' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"variableFieldOptions\"\n (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\"\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n </ng-container>\n</div>" }]
115
115
  }] });