@pepperi-addons/ngx-lib 0.4.2-beta.31 → 0.4.2-beta.310

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 (408) hide show
  1. package/README.md +35 -0
  2. package/address/address.component.d.ts +9 -2
  3. package/attachment/attachment.component.d.ts +3 -1
  4. package/carousel/carousel.component.d.ts +3 -2
  5. package/checkbox/checkbox.component.d.ts +8 -1
  6. package/chips/chips.component.d.ts +4 -7
  7. package/chips/chips.service.d.ts +0 -3
  8. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  9. package/core/common/directives/public-api.d.ts +1 -0
  10. package/core/common/pipes/common-pipes.d.ts +5 -2
  11. package/core/common/services/addon.service.d.ts +6 -4
  12. package/core/common/services/file.service.d.ts +7 -2
  13. package/core/common/services/session.service.d.ts +2 -0
  14. package/core/common/services/utilities.service.d.ts +4 -4
  15. package/core/customization/customization.model.d.ts +4 -1
  16. package/core/customization/customization.service.d.ts +4 -0
  17. package/date/date.component.d.ts +4 -2
  18. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  19. package/draggable-items/draggable-items.component.d.ts +3 -6
  20. package/draggable-items/draggable-items.module.d.ts +4 -3
  21. package/elements/README.md +256 -0
  22. package/esm2020/address/address.component.mjs +93 -5
  23. package/esm2020/assets/i18n/ar.ngx-lib.json +180 -0
  24. package/esm2020/assets/i18n/de.ngx-lib.json +180 -0
  25. package/esm2020/assets/i18n/en.ngx-lib.json +186 -0
  26. package/esm2020/assets/i18n/es.ngx-lib.json +180 -0
  27. package/esm2020/assets/i18n/fr.ngx-lib.json +180 -0
  28. package/esm2020/assets/i18n/he.ngx-lib.json +180 -0
  29. package/esm2020/assets/i18n/hu.ngx-lib.json +79 -0
  30. package/esm2020/assets/i18n/it.ngx-lib.json +180 -0
  31. package/esm2020/assets/i18n/ja.ngx-lib.json +180 -0
  32. package/esm2020/assets/i18n/nl.ngx-lib.json +79 -0
  33. package/esm2020/assets/i18n/pl.ngx-lib.json +180 -0
  34. package/esm2020/assets/i18n/pt.ngx-lib.json +180 -0
  35. package/esm2020/assets/i18n/ru.ngx-lib.json +79 -0
  36. package/esm2020/assets/i18n/sr.ngx-lib.json +180 -0
  37. package/esm2020/assets/i18n/zh.ngx-lib.json +180 -0
  38. package/esm2020/attachment/attachment.component.mjs +16 -6
  39. package/esm2020/carousel/carousel.component.mjs +14 -4
  40. package/esm2020/checkbox/checkbox.component.mjs +37 -3
  41. package/esm2020/chips/chips.component.mjs +11 -16
  42. package/esm2020/chips/chips.service.mjs +2 -11
  43. package/esm2020/color/color-picker.component.mjs +3 -3
  44. package/esm2020/color/color.component.mjs +3 -3
  45. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  46. package/esm2020/core/common/directives/public-api.mjs +2 -1
  47. package/esm2020/core/common/pipes/common-pipes.mjs +18 -8
  48. package/esm2020/core/common/services/addon.service.mjs +31 -7
  49. package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
  50. package/esm2020/core/common/services/file.service.mjs +57 -20
  51. package/esm2020/core/common/services/session.service.mjs +5 -1
  52. package/esm2020/core/common/services/utilities.service.mjs +7 -7
  53. package/esm2020/core/customization/customization.model.mjs +46 -10
  54. package/esm2020/core/customization/customization.service.mjs +29 -1
  55. package/esm2020/core/http/services/http.service.mjs +17 -8
  56. package/esm2020/core/http/services/loader.service.mjs +3 -3
  57. package/esm2020/date/date.component.mjs +35 -13
  58. package/esm2020/dialog/dialog.component.mjs +3 -3
  59. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +44 -4
  60. package/esm2020/draggable-items/draggable-items.component.mjs +7 -15
  61. package/esm2020/draggable-items/draggable-items.module.mjs +5 -1
  62. package/esm2020/field-title/field-title.component.mjs +6 -3
  63. package/esm2020/files-uploader/files-uploader.component.mjs +23 -32
  64. package/esm2020/form/field-generator.component.mjs +3 -3
  65. package/esm2020/form/form.component.mjs +7 -4
  66. package/esm2020/form/internal-button.component.mjs +2 -2
  67. package/esm2020/form/internal-carusel.component.mjs +10 -6
  68. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  69. package/esm2020/form/internal-form.component.mjs +5 -3
  70. package/esm2020/form/internal-list.component.mjs +2 -2
  71. package/esm2020/form/internal-menu.component.mjs +4 -6
  72. package/esm2020/form/internal-page.component.mjs +3 -4
  73. package/esm2020/group-buttons/group-buttons.component.mjs +2 -2
  74. package/esm2020/icon/icon.component.mjs +36 -6
  75. package/esm2020/icon/icon.service.mjs +5 -1
  76. package/esm2020/image/image.component.mjs +15 -3
  77. package/esm2020/image/image.service.mjs +2 -4
  78. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +99 -25
  79. package/esm2020/json-editor/json-editor.component.mjs +288 -0
  80. package/esm2020/json-editor/json-editor.module.mjs +83 -0
  81. package/esm2020/json-editor/json-tree-node.component.mjs +32 -0
  82. package/esm2020/json-editor/pepperi-addons-ngx-lib-json-editor.mjs +5 -0
  83. package/esm2020/json-editor/public-api.mjs +6 -0
  84. package/esm2020/lib/i18n/embedded-i18n.mjs +33 -0
  85. package/esm2020/link/link.component.mjs +25 -4
  86. package/esm2020/list/list-actions.component.mjs +1 -1
  87. package/esm2020/list/list-chooser.component.mjs +1 -1
  88. package/esm2020/list/list-pager.component.mjs +1 -1
  89. package/esm2020/list/list-sorting.component.mjs +1 -1
  90. package/esm2020/list/list-total.component.mjs +6 -3
  91. package/esm2020/list/list-views.component.mjs +1 -1
  92. package/esm2020/list/list.component.mjs +230 -37
  93. package/esm2020/list/list.model.mjs +1 -1
  94. package/esm2020/menu/menu-item.component.mjs +3 -3
  95. package/esm2020/menu/menu.component.mjs +6 -3
  96. package/esm2020/menu/menu.model.mjs +2 -1
  97. package/esm2020/page-layout/page-layout.component.mjs +28 -7
  98. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
  99. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
  100. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
  101. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  102. package/esm2020/public-api.mjs +2 -1
  103. package/esm2020/quantity-selector/quantity-selector.component.mjs +67 -33
  104. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  105. package/esm2020/query-builder/common/model/operator.mjs +73 -63
  106. package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
  107. package/esm2020/query-builder/common/services/query-structure.service.mjs +34 -2
  108. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +14 -12
  109. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  110. package/esm2020/query-builder/query-builder.module.mjs +14 -3
  111. package/esm2020/query-builder/query-builder.service.mjs +2 -2
  112. package/esm2020/remote-loader/addon-block-loader.component.mjs +26 -16
  113. package/esm2020/remote-loader/addon-block-loader.service.mjs +5 -2
  114. package/esm2020/remote-loader/remote-loader-element.component.mjs +81 -27
  115. package/esm2020/remote-loader/remote-loader.component.mjs +1 -3
  116. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  117. package/esm2020/remote-loader/remote-loader.service.mjs +49 -26
  118. package/esm2020/reset-configuration-field/pepperi-addons-ngx-lib-reset-configuration-field.mjs +5 -0
  119. package/esm2020/reset-configuration-field/public-api.mjs +3 -0
  120. package/esm2020/reset-configuration-field/reset-configuration-field.component.mjs +55 -0
  121. package/esm2020/reset-configuration-field/reset-configuration-field.module.mjs +36 -0
  122. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +19 -3
  123. package/esm2020/search/search.component.mjs +43 -16
  124. package/esm2020/select/select.component.mjs +124 -53
  125. package/esm2020/select-panel/select-panel.component.mjs +4 -6
  126. package/esm2020/side-bar/side-bar.component.mjs +18 -4
  127. package/esm2020/signature/public-api.mjs +2 -1
  128. package/esm2020/signature/signature-dialog.component.mjs +79 -0
  129. package/esm2020/signature/signature.component.mjs +84 -68
  130. package/esm2020/signature/signature.module.mjs +6 -5
  131. package/esm2020/size-detector/size-detector.component.mjs +16 -6
  132. package/esm2020/skeleton-loader/public-api.mjs +2 -2
  133. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +33 -9
  134. package/esm2020/slider/slider.component.mjs +2 -2
  135. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  136. package/esm2020/smart-filters/common/model/base-filter-component.mjs +5 -11
  137. package/esm2020/smart-filters/common/model/operator.mjs +15 -6
  138. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  139. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  140. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  141. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  142. package/esm2020/smart-filters/smart-filters.component.mjs +2 -2
  143. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +27 -7
  144. package/esm2020/snack-bar/snack-bar.component.mjs +19 -4
  145. package/esm2020/textarea/textarea.component.mjs +12 -3
  146. package/esm2020/textbox/textbox-validation.directive.mjs +2 -4
  147. package/esm2020/textbox/textbox.component.mjs +85 -10
  148. package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
  149. package/esm2020/top-bar/top-bar.component.mjs +26 -15
  150. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +92 -5
  151. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  152. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  153. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  155. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  156. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +37 -2
  157. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +11 -25
  159. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  160. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  161. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  162. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +35 -12
  163. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  165. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  166. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  167. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  168. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  169. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  170. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  171. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  172. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -25
  173. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  175. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +40 -5
  177. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  178. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +15 -5
  179. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +101 -24
  181. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  182. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs +407 -0
  183. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  184. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +24 -3
  185. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  186. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +241 -43
  187. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
  189. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  190. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  191. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  192. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  193. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  194. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +66 -31
  195. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  196. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +140 -81
  197. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  198. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +169 -83
  199. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  200. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  201. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  202. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  203. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  204. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +45 -15
  205. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  206. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  207. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  208. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +123 -51
  209. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  210. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  211. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  212. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +173 -81
  213. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  214. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  215. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  216. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  217. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  218. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +2 -2
  219. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  220. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  221. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  222. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +18 -3
  223. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  224. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  225. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  226. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  227. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  228. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +87 -12
  229. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  230. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +26 -15
  231. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  232. package/fesm2015/pepperi-addons-ngx-lib.mjs +3420 -577
  233. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  234. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +92 -5
  235. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  236. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  237. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  238. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  239. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  240. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +36 -2
  241. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  242. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +11 -25
  243. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  244. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  245. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  246. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +34 -12
  247. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  248. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  249. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  250. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  251. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  252. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  253. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  254. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  255. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  256. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -25
  257. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  258. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  259. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  260. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +39 -5
  261. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  262. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +15 -5
  263. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  264. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +98 -24
  265. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  266. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs +403 -0
  267. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  268. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +24 -3
  269. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  270. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +238 -42
  271. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  272. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
  273. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  274. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  275. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  276. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  277. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  278. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +65 -31
  279. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  280. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +136 -80
  281. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  282. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +157 -69
  283. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  284. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  285. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  286. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  287. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  288. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +42 -15
  289. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  290. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  291. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  292. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +122 -51
  293. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  294. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  295. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  296. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +169 -81
  297. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  298. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  299. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  300. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  301. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  302. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +2 -2
  303. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  304. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  305. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  306. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +18 -3
  307. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  308. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  309. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  310. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  311. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  312. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +85 -12
  313. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  314. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +25 -14
  315. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  316. package/fesm2020/pepperi-addons-ngx-lib.mjs +3416 -574
  317. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  318. package/field-title/field-title.component.d.ts +2 -1
  319. package/files-uploader/files-uploader.component.d.ts +4 -2
  320. package/form/internal-carusel.component.d.ts +1 -0
  321. package/form/internal-menu.component.d.ts +1 -2
  322. package/icon/icon.component.d.ts +4 -0
  323. package/image/image.component.d.ts +3 -1
  324. package/images-filmstrip/images-filmstrip.component.d.ts +24 -8
  325. package/json-editor/index.d.ts +5 -0
  326. package/json-editor/json-editor.component.d.ts +75 -0
  327. package/json-editor/json-editor.component.theme.scss +5 -0
  328. package/json-editor/json-editor.module.d.ts +24 -0
  329. package/json-editor/json-tree-node.component.d.ts +18 -0
  330. package/json-editor/public-api.d.ts +2 -0
  331. package/lib/i18n/embedded-i18n.d.ts +1 -0
  332. package/link/link.component.d.ts +7 -2
  333. package/list/list-total.component.d.ts +2 -1
  334. package/list/list.component.d.ts +21 -5
  335. package/list/list.model.d.ts +2 -1
  336. package/menu/menu.component.d.ts +2 -1
  337. package/menu/menu.model.d.ts +1 -0
  338. package/package.json +18 -2
  339. package/page-layout/page-layout.component.d.ts +8 -2
  340. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
  341. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
  342. package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
  343. package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
  344. package/public-api.d.ts +1 -0
  345. package/quantity-selector/quantity-selector.component.d.ts +9 -9
  346. package/query-builder/common/model/legacy.d.ts +2 -0
  347. package/query-builder/common/model/operator.d.ts +11 -1
  348. package/query-builder/common/services/query-structure.service.d.ts +1 -0
  349. package/query-builder/query-builder-item/query-builder-item.component.d.ts +3 -1
  350. package/query-builder/query-builder.module.d.ts +7 -3
  351. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  352. package/remote-loader/remote-loader-element.component.d.ts +8 -1
  353. package/remote-loader/remote-loader.model.d.ts +1 -0
  354. package/remote-loader/remote-loader.service.d.ts +3 -1
  355. package/reset-configuration-field/index.d.ts +5 -0
  356. package/reset-configuration-field/public-api.d.ts +2 -0
  357. package/reset-configuration-field/reset-configuration-field.component.d.ts +23 -0
  358. package/reset-configuration-field/reset-configuration-field.module.d.ts +12 -0
  359. package/rich-html-textarea/rich-html-textarea.component.d.ts +4 -1
  360. package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
  361. package/search/search.component.d.ts +9 -3
  362. package/select/select.component.d.ts +18 -2
  363. package/select-panel/select-panel.component.d.ts +1 -2
  364. package/side-bar/side-bar.component.d.ts +4 -1
  365. package/signature/public-api.d.ts +1 -0
  366. package/signature/signature-dialog.component.d.ts +29 -0
  367. package/signature/signature.component.d.ts +3 -13
  368. package/signature/signature.module.d.ts +16 -15
  369. package/size-detector/size-detector.component.d.ts +6 -3
  370. package/skeleton-loader/skeleton-loader.component.d.ts +15 -7
  371. package/slider/slider.component.theme.scss +4 -0
  372. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -0
  373. package/smart-filters/common/model/base-filter-component.d.ts +2 -4
  374. package/smart-filters/common/model/operator.d.ts +3 -0
  375. package/smart-filters/common/model/type.d.ts +1 -1
  376. package/smart-filters/date-filter/date-filter.component.d.ts +3 -0
  377. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -0
  378. package/smart-filters/number-filter/number-filter.component.d.ts +3 -0
  379. package/smart-filters/text-filter/text-filter.component.d.ts +4 -0
  380. package/snack-bar/snack-bar.component.d.ts +9 -4
  381. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  382. package/src/assets/i18n/de.ngx-lib.json +106 -4
  383. package/src/assets/i18n/en.ngx-lib.json +14 -3
  384. package/src/assets/i18n/es.ngx-lib.json +113 -11
  385. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  386. package/src/assets/i18n/he.ngx-lib.json +105 -4
  387. package/src/assets/i18n/it.ngx-lib.json +114 -13
  388. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  389. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  390. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  391. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  392. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  393. package/src/core/style/abstracts/mixins.scss +135 -26
  394. package/src/core/style/abstracts/variables.scss +10 -1
  395. package/src/core/style/base/Spacing.stories.mdx +22 -22
  396. package/src/core/style/base/base.scss +16 -14
  397. package/src/core/style/base/typography.scss +2 -1
  398. package/src/core/style/components/button.scss +11 -0
  399. package/src/core/style/components/checkbox.scss +13 -63
  400. package/src/core/style/components/file.scss +4 -4
  401. package/src/core/style/components/general.scss +27 -9
  402. package/src/core/style/components/textarea.scss +13 -0
  403. package/textarea/textarea.component.d.ts +2 -1
  404. package/textbox/textbox.component.d.ts +10 -3
  405. package/theming.scss +5 -1
  406. package/top-bar/top-bar.component.d.ts +2 -0
  407. package/src/assets/images/sail-away.jpg +0 -0
  408. package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
@@ -1,15 +1,15 @@
1
1
  import { Directive, EventEmitter, Input, Output, } from '@angular/core';
2
2
  import { Validators, } from '@angular/forms';
3
- import { Subject } from 'rxjs';
3
+ import { BaseDestroyerDirective } from '@pepperi-addons/ngx-lib';
4
4
  import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators, PepSmartFilterVariableOperators, PepSmartFilterOperatorUnits, } from './operator';
5
- import { takeUntil } from 'rxjs/operators';
6
5
  import { PepFilterActionsComponent } from '../filter-actions.component';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/forms";
9
8
  import * as i2 from "@ngx-translate/core";
10
9
  import * as i3 from "@pepperi-addons/ngx-lib";
11
- export class BaseFilterComponent {
10
+ export class BaseFilterComponent extends BaseDestroyerDirective {
12
11
  constructor(viewContainerRef, injector, resolver, builder, translate, validator, utilitiesService, renderer) {
12
+ super();
13
13
  this.viewContainerRef = viewContainerRef;
14
14
  this.injector = injector;
15
15
  this.resolver = resolver;
@@ -29,7 +29,6 @@ export class BaseFilterComponent {
29
29
  this.filterChange = new EventEmitter();
30
30
  this.OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';
31
31
  this.OPERATOR_UNITS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATOR_UNITS';
32
- this._destroyed = new Subject();
33
32
  }
34
33
  set field(value) {
35
34
  this._field = value;
@@ -197,9 +196,6 @@ export class BaseFilterComponent {
197
196
  second: this.secondControl
198
197
  }));
199
198
  }
200
- getDestroyer() {
201
- return takeUntil(this._destroyed);
202
- }
203
199
  updateValidity() {
204
200
  this.setFieldsStateAndValidators();
205
201
  this.firstControl.updateValueAndValidity();
@@ -258,15 +254,13 @@ export class BaseFilterComponent {
258
254
  // }
259
255
  }
260
256
  ngOnDestroy() {
261
- this._destroyed.next();
262
- this._destroyed.complete();
263
257
  if (this.showActionButtons) {
264
258
  this.actionsContainerRef.destroy();
265
259
  }
266
260
  }
267
261
  }
268
262
  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: i3.PepUtilitiesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
269
- 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 });
263
+ 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" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
270
264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseFilterComponent, decorators: [{
271
265
  type: Directive,
272
266
  args: [{}]
@@ -293,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
293
287
  }], filterChange: [{
294
288
  type: Output
295
289
  }] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU0zQyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzlCLE1BQU0sWUFBWSxDQUFDO0FBSXBCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFJeEUsTUFBTSxPQUFnQixtQkFBbUI7SUFxSHJDLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFFBQWtDLEVBQ2xDLE9BQW9CLEVBQ2xCLFNBQTJCLEVBQzNCLFNBQThCLEVBQzlCLGdCQUFxQyxFQUNyQyxRQUFtQjtRQVByQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVc7UUF4SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVlo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RSxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNMLENBQUM7O2dIQWpWaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFOzBUQVNMLEtBQUs7c0JBRFIsS0FBSztnQkFZRixhQUFhO3NCQURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBJUGVwT3B0aW9uLFxuICAgIFBlcFV0aWxpdGllc1NlcnZpY2Vcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHtcbiAgICBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcixcbiAgICBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQsXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzLFxufSBmcm9tICcuL29wZXJhdG9yJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZXBTbWFydEZpbHRlckRhdGEsIElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSB9IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkIH0gZnJvbSAnLi9maWVsZCc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLWFjdGlvbnMuY29tcG9uZW50JztcblxuXG5ARGlyZWN0aXZlKHt9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGaWx0ZXJDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZDogU3ViamVjdDx2b2lkPjtcbiAgICBwcml2YXRlIGFjdGlvbnNDb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50PjtcblxuICAgIHByaXZhdGUgX2ZpZWxkSWRXaXRoTm9Eb3RzID0gJyc7XG4gICAgcHJpdmF0ZSBfZmllbGQ6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkKHZhbHVlOiBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCkge1xuICAgICAgICB0aGlzLl9maWVsZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9maWVsZElkV2l0aE5vRG90cyA9IHZhbHVlID8gdmFsdWUuaWQucmVwbGFjZSgvXFwuL2csICdfJykgOiAnJztcbiAgICAgICAgdGhpcy5zZXR1cEZvcm0oKTtcbiAgICB9XG4gICAgZ2V0IGZpZWxkKCk6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xuICAgIH1cblxuICAgIHZhcmlhYmxlRmllbGRPcHRpb25zOiBBcnJheTxJUGVwT3B0aW9uPiA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhcmlhYmxlRmllbGQobGlzdDogYW55W10pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZUZpZWxkT3B0aW9ucyA9IGxpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcblxuICAgIHByaXZhdGUgX2ZpbHRlcjogSVBlcFNtYXJ0RmlsdGVyRGF0YTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWx0ZXIodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGEpIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0dXBGaWx0ZXIoKTtcbiAgICB9XG4gICAgZ2V0IGZpbHRlcigpOiBJUGVwU21hcnRGaWx0ZXJEYXRhIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9wYXJlbnRGb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyZW50Rm9ybShmb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybSA9IGZvcm07XG4gICAgICAgIHRoaXMudXBkYXRlUGFyZW50Rm9ybSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBlbWl0T25DaGFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpbmxpbmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93QWN0aW9uQnV0dG9ucyA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNob3dBZGRpdGlvbmFsT3BlcmF0b3JzID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgZmlsdGVyQ2xlYXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KClcbiAgICBmaWx0ZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcFNtYXJ0RmlsdGVyRGF0YT4oKTtcblxuICAgIHByaXZhdGUgX29wZXJhdG9yOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcjtcbiAgICBzZXQgb3BlcmF0b3Iob3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yKSB7XG4gICAgICAgIGlmIChvcGVyYXRvcj8uaWQgIT0gdGhpcy5fb3BlcmF0b3I/LmlkKSB7XG4gICAgICAgICAgICAvLyBWYWxpZGF0ZSBvcGVyYXRvclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZXJhdG9ycy5maW5kSW5kZXgoKG8pID0+IG8uaWQgPT09IG9wZXJhdG9yLmlkKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yc1tpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcGVyYXRvcigpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9vcGVyYXRvclVuaXQ6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdDtcbiAgICBzZXQgb3BlcmF0b3JVbml0KG9wZXJhdG9yVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0KSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yIHVuaXRcbiAgICAgICAgaWYgKG9wZXJhdG9yVW5pdCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZXJhdG9yVW5pdHMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgIChvdSkgPT4gb3UuaWQgPT09IG9wZXJhdG9yVW5pdC5pZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JVbml0ID0gdGhpcy5vcGVyYXRvclVuaXRzW2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JVbml0ID0gdGhpcy5vcGVyYXRvclVuaXRzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JVbml0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcGVyYXRvclVuaXQoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yVW5pdDtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RDb250cm9sS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCA/IGAke3RoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzfV9maXJzdGAgOiAnZmlyc3QnO1xuICAgIH1cbiAgICBnZXQgZmlyc3RDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KHRoaXMuZmlyc3RDb250cm9sS2V5KTtcbiAgICB9XG4gICAgZ2V0IHNlY29uZENvbnRyb2xLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkID8gYCR7dGhpcy5fZmllbGRJZFdpdGhOb0RvdHN9X3NlY29uZGAgOiAnc2Vjb25kJztcbiAgICB9XG4gICAgZ2V0IHNlY29uZENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQodGhpcy5zZWNvbmRDb250cm9sS2V5KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3BlcmF0b3JzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdO1xuICAgIHByb3RlY3RlZCBvcGVyYXRvclVuaXRzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRbXTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBPUEVSQVRPUlNfVFJBTlNMQVRJT05fUFJFRklYID0gJ1NNQVJUX0ZJTFRFUlMuT1BFUkFUT1JTJztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgT1BFUkFUT1JfVU5JVFNfVFJBTlNMQVRJT05fUFJFRklYID1cbiAgICAgICAgJ1NNQVJUX0ZJTFRFUlMuT1BFUkFUT1JfVU5JVFMnO1xuXG4gICAgZm9ybTogRm9ybUdyb3VwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBidWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRvcjogUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHV0aWxpdGllc1NlcnZpY2U6IFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQWN0aW9uc0NvbXBvbmVudCgpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5mb3JtO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuYXBwbHlDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuY2xlYXJDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5pbnNlcnQodGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmhvc3RWaWV3KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuc2Vjb25kQ29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgLy8gdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTsgICAgICAgIFxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmJ1aWxkZXIuZ3JvdXAoZm9ybVZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5mb3JtW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuXG4gICAgICAgIHRoaXMuc2V0dXBPcGVyYXRvcnMoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25zQ29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwT3BlcmF0b3JzKCkge1xuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9ycyBieSBjb21wb25lbnRUeXBlLlxuICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgIC8vIEFkZCBhZGRpdGlvbmFsIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy5zaG93QWRkaXRpb25hbE9wZXJhdG9ycykge1xuICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JbXSA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IFsuLi50aGlzLm9wZXJhdG9ycywgLi4uYWRkaXRpb25hbF07XG4gICAgICAgIH1cblxuICAgICAgICAvL2FkZCB2YXJpYWJsZSBvcGVyYXRvcnNcbiAgICAgICAgaWYgKHRoaXMudmFyaWFibGVGaWVsZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi52YXJpYWJsZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9ycy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9yIHVuaXRzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cylcbiAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzW2tleV0pO1xuXG4gICAgICAgIC8vIEZpbHRlciBieSBmcm9tIGZpZWxkLm9wZXJhdG9yc1VuaXRzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvclVuaXRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdHMgPSB0aGlzLm9wZXJhdG9yVW5pdHMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHMuc29tZSgobzIpID0+IG8xLmlkID09PSBvMilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2FkIHRyYW5zbGF0aW9uIGJlZm9yZSBnZXQgdGhlIG9wdGlvbnMgaW4gdGhlIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ1NNQVJUX0ZJTFRFUlMuVElUTEUnKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkT3BlcmF0b3JzT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRmlsdGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fZmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gdGhpcy5fZmlsdGVyLm9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLl9maWx0ZXIub3BlcmF0b3JVbml0O1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5maXJzdENvbnRyb2xLZXldID0gdGhpcy5fZmlsdGVyLnZhbHVlLmZpcnN0O1xuICAgICAgICAgICAgZm9ybVZhbHVlW3RoaXMuc2Vjb25kQ29udHJvbEtleV0gPSB0aGlzLl9maWx0ZXIudmFsdWUuc2Vjb25kO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvcigpO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvclVuaXQoKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVBhcmVudEZvcm0oKSB7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnZmllbGRJZCcsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMuZmllbGQuaWQpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdmaWVsZFR5cGUnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLmZpZWxkLnR5cGUpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvcicsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMub3BlcmF0b3IpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvclVuaXQnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLm9wZXJhdG9yVW5pdCkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ3ZhbHVlcycsIHRoaXMuYnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdENvbnRyb2wsXG4gICAgICAgICAgICBzZWNvbmQ6IHRoaXMuc2Vjb25kQ29udHJvbFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldERlc3Ryb3llcigpIHtcbiAgICAgICAgcmV0dXJuIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRpdHkoKSB7XG4gICAgICAgIHRoaXMuc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgdGhpcy5maXJzdENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICAvLyBMb2FkIHRoZSBvcGVyYXRvcnMgb3B0aW9ucyBmcm9tIHRoZSB0cmFuc2xhdGlvbi5cbiAgICBwcm90ZWN0ZWQgbG9hZE9wZXJhdG9yc09wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IHZhbGlkYXRvcnMgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBzZXRGaWVsZHNTdGF0ZUFuZFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuc2Vjb25kQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0T3BlcmF0b3JVbml0KCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRGaWx0ZXIoKSB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIGFic3RyYWN0IGdldERlZmF1bHRPcGVyYXRvcigpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcjtcbiAgICBhYnN0cmFjdCBnZXRGaWx0ZXJWYWx1ZSgpOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWU7XG5cbiAgICBjbGVhckZpbHRlcihlbWl0RXZlbnQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNsZWFyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZ2V0RmlsdGVyVmFsdWUoKTtcblxuICAgICAgICAvLyBJZiB0aGUgZmlsdGVyIGlzIG5vdCBudWxsIGRlY2xhcmUgaXQsIGVsc2UgLSBjbGVhciBpdC5cbiAgICAgICAgaWYgKGZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgZmllbGRJZDogdGhpcy5maWVsZC5pZCxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICBvcGVyYXRvclVuaXQ6IHRoaXMub3BlcmF0b3JVbml0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KGZpbHRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdyaXRlVmFsdWUodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodmFsdWUpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZShcbiAgICAvLyAgICAgICAgICAgICB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGZpcnN0OiB2YWx1ZS5maXJzdCxcbiAgICAvLyAgICAgICAgICAgICAgICAgc2Vjb25kOiB2YWx1ZS5zZWNvbmQgfHwgbnVsbCxcbiAgICAvLyAgICAgICAgICAgICB9LFxuICAgIC8vICAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgLy8gICAgICAgICApO1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICAvLyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pO1xuICAgIC8vIH1cblxuICAgIC8vIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvLyAgICAgLyogRG8gbm90aGluZyAqL1xuICAgIC8vIH07XG5cbiAgICAvLyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgLy8gfVxuXG4gICAgLy8gc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vICAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtLmRpc2FibGUoKSA6IHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZCA/IG51bGwgOiB7IFBlcEZpbHRlcklzTm90VmFsaWQ6IHRydWUgfTtcbiAgICAvLyB9XG59XG4iXX0=
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUlILHNCQUFzQixFQUN6QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUMvQiwyQkFBMkIsR0FDOUIsTUFBTSxZQUFZLENBQUM7QUFLcEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBSXhFLE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsc0JBQXNCO0lBb0hwRSxZQUNZLGdCQUFrQyxFQUNsQyxRQUFrQixFQUNsQixRQUFrQyxFQUNsQyxPQUFvQixFQUNsQixTQUEyQixFQUMzQixTQUE4QixFQUM5QixnQkFBcUMsRUFDckMsUUFBbUI7UUFFN0IsS0FBSyxFQUFFLENBQUM7UUFUQSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVc7UUF4SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVloQyx5QkFB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QURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBJUGVwT3B0aW9uLFxuICAgIFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgQmFzZURlc3Ryb3llckRpcmVjdGl2ZVxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQge1xuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMsXG59IGZyb20gJy4vb3BlcmF0b3InO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSwgSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItYWN0aW9ucy5jb21wb25lbnQnO1xuXG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpbHRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmVcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgYWN0aW9uc0NvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfZmllbGRJZFdpdGhOb0RvdHMgPSAnJztcbiAgICBwcml2YXRlIF9maWVsZDogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGQodmFsdWU6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzID0gdmFsdWUgPyB2YWx1ZS5pZC5yZXBsYWNlKC9cXC4vZywgJ18nKSA6ICcnO1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cbiAgICBnZXQgZmllbGQoKTogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gICAgfVxuXG4gICAgdmFyaWFibGVGaWVsZE9wdGlvbnM6IEFycmF5PElQZXBPcHRpb24+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgdmFyaWFibGVGaWVsZChsaXN0OiBhbnlbXSkge1xuICAgICAgICBpZiAobGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlRmllbGRPcHRpb25zID0gbGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG4gICAgcHJpdmF0ZSBfZmlsdGVyOiBJUGVwU21hcnRGaWx0ZXJEYXRhO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcih2YWx1ZTogSVBlcFNtYXJ0RmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgICBnZXQgZmlsdGVyKCk6IElQZXBTbWFydEZpbHRlckRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3BhcmVudEZvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBwYXJlbnRGb3JtKGZvcm06IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtID0gZm9ybTtcbiAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRGb3JtKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGVtaXRPbkNoYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlubGluZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b25zID0gdHJ1ZTtcbiAgICBASW5wdXQoKSByZW5kZXJUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0FkZGl0aW9uYWxPcGVyYXRvcnMgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBmaWx0ZXJDbGVhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhPigpO1xuXG4gICAgcHJpdmF0ZSBfb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yO1xuICAgIHNldCBvcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IpIHtcbiAgICAgICAgaWYgKG9wZXJhdG9yPy5pZCAhPSB0aGlzLl9vcGVyYXRvcj8uaWQpIHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JzLmZpbmRJbmRleCgobykgPT4gby5pZCA9PT0gb3BlcmF0b3IuaWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yc1swXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yKCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29wZXJhdG9yVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0O1xuICAgIHNldCBvcGVyYXRvclVuaXQob3BlcmF0b3JVbml0OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0b3IgdW5pdFxuICAgICAgICBpZiAob3BlcmF0b3JVbml0KSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JVbml0cy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgKG91KSA9PiBvdS5pZCA9PT0gb3BlcmF0b3JVbml0LmlkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JVbml0O1xuICAgIH1cblxuICAgIGdldCBmaXJzdENvbnRyb2xLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkID8gYCR7dGhpcy5fZmllbGRJZFdpdGhOb0RvdHN9X2ZpcnN0YCA6ICdmaXJzdCc7XG4gICAgfVxuICAgIGdldCBmaXJzdENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQodGhpcy5maXJzdENvbnRyb2xLZXkpO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbEtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyBgJHt0aGlzLl9maWVsZElkV2l0aE5vRG90c31fc2Vjb25kYCA6ICdzZWNvbmQnO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCh0aGlzLnNlY29uZENvbnRyb2xLZXkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVyYXRvcnM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW107XG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yVW5pdHM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdFtdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9QRVJBVE9SU19UUkFOU0xBVElPTl9QUkVGSVggPSAnU01BUlRfRklMVEVSUy5PUEVSQVRPUlMnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPUEVSQVRPUl9VTklUU19UUkFOU0xBVElPTl9QUkVGSVggPVxuICAgICAgICAnU01BUlRfRklMVEVSUy5PUEVSQVRPUl9VTklUUyc7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdG9yOiBQZXBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBY3Rpb25zQ29tcG9uZW50KCkge1xuICAgICAgICBjb25zdCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgICAgIFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYgPSBmYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLmZvcm07XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5hcHBseUNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5jbGVhckNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmluc2VydCh0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaG9zdFZpZXcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGb3JtKCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmb3JtVmFsdWUpOyAgICAgICAgXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuYnVpbGRlci5ncm91cChmb3JtVmFsdWUpO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5maXJzdENvbnRyb2xLZXldID0gW107XG4gICAgICAgIC8vIHRoaXMuZm9ybVt0aGlzLnNlY29uZENvbnRyb2xLZXldID0gW107XG5cbiAgICAgICAgdGhpcy5zZXR1cE9wZXJhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3dBY3Rpb25CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbnNDb21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBPcGVyYXRvcnMoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3JzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMpXG4gICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgLy8gQWRkIGFkZGl0aW9uYWwgb3BlcmF0b3JzXG4gICAgICAgIGlmICh0aGlzLnNob3dBZGRpdGlvbmFsT3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi5hZGRpdGlvbmFsXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYWRkIHZhcmlhYmxlIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy52YXJpYWJsZUZpZWxkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZXM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW10gPSBPYmplY3Qua2V5cyhQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSBbLi4udGhpcy5vcGVyYXRvcnMsIC4uLnZhcmlhYmxlc107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWx0ZXIgYnkgZnJvbSBmaWVsZC5vcGVyYXRvcnMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JzLnNvbWUoKG8yKSA9PiBvMS5pZCA9PT0gbzIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3IgdW5pdHMgYnkgY29tcG9uZW50VHlwZS5cbiAgICAgICAgdGhpcy5vcGVyYXRvclVuaXRzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0c1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XSk7XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzVW5pdHMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IHRoaXMub3BlcmF0b3JVbml0cy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JVbml0cy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgdHJhbnNsYXRpb24gYmVmb3JlIGdldCB0aGUgb3B0aW9ucyBpbiB0aGUgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnU01BUlRfRklMVEVSUy5USVRMRScpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRPcGVyYXRvcnNPcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLl9maWx0ZXIub3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdCA9IHRoaXMuX2ZpbHRlci5vcGVyYXRvclVuaXQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSB0aGlzLl9maWx0ZXIudmFsdWUuZmlyc3Q7XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IHRoaXMuX2ZpbHRlci52YWx1ZS5zZWNvbmQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmb3JtVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IHRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9yKCk7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdCA9IHRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9yVW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlUGFyZW50Rm9ybSgpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdmaWVsZElkJywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5maWVsZC5pZCkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ2ZpZWxkVHlwZScsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMuZmllbGQudHlwZSkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ29wZXJhdG9yJywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5vcGVyYXRvcikpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ29wZXJhdG9yVW5pdCcsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMub3BlcmF0b3JVbml0KSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgndmFsdWVzJywgdGhpcy5idWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0Q29udHJvbCxcbiAgICAgICAgICAgIHNlY29uZDogdGhpcy5zZWNvbmRDb250cm9sXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkaXR5KCkge1xuICAgICAgICB0aGlzLnNldEZpZWxkc1N0YXRlQW5kVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgLy8gTG9hZCB0aGUgb3BlcmF0b3JzIG9wdGlvbnMgZnJvbSB0aGUgdHJhbnNsYXRpb24uXG4gICAgcHJvdGVjdGVkIGxvYWRPcGVyYXRvcnNPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWxpZGF0b3JzIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpcnN0Q29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0RmlsdGVyKCkge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0T3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3I7XG4gICAgYWJzdHJhY3QgZ2V0RmlsdGVyVmFsdWUoKTogSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlO1xuXG4gICAgY2xlYXJGaWx0ZXIoZW1pdEV2ZW50ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKCk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDbGVhci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcHBseUZpbHRlcigpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmdldEZpbHRlclZhbHVlKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGZpbHRlciBpcyBub3QgbnVsbCBkZWNsYXJlIGl0LCBlbHNlIC0gY2xlYXIgaXQuXG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IHRoaXMuZmllbGQuaWQsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3JVbml0OiB0aGlzLm9wZXJhdG9yVW5pdCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyVmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gZmlsdGVyO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdChmaWx0ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3cml0ZVZhbHVlKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWUpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHZhbHVlKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoXG4gICAgLy8gICAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgICAgICBmaXJzdDogdmFsdWUuZmlyc3QsXG4gICAgLy8gICAgICAgICAgICAgICAgIHNlY29uZDogdmFsdWUuc2Vjb25kIHx8IG51bGwsXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgIC8vICAgICAgICAgKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG4gICAgLy8gcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGZuKTtcbiAgICAvLyB9XG5cbiAgICAvLyBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gICAgIC8qIERvIG5vdGhpbmcgKi9cbiAgICAvLyB9O1xuXG4gICAgLy8gcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIC8vIH1cblxuICAgIC8vIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyAgICAgaXNEaXNhYmxlZCA/IHRoaXMuZm9ybS5kaXNhYmxlKCkgOiB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQgPyBudWxsIDogeyBQZXBGaWx0ZXJJc05vdFZhbGlkOiB0cnVlIH07XG4gICAgLy8gfVxufVxuIl19
@@ -145,13 +145,13 @@ const IsEmpty = {
145
145
  id: 'isEmpty',
146
146
  name: 'IS_EMPTY',
147
147
  short: 'Is empty',
148
- componentType: ['date'],
148
+ componentType: ['date', 'text'],
149
149
  };
150
150
  const IsNotEmpty = {
151
151
  id: 'isNotEmpty',
152
152
  name: 'IS_NOT_EMPTY',
153
153
  short: 'Is not empty',
154
- componentType: ['date'],
154
+ componentType: ['date', 'text'],
155
155
  };
156
156
  const In = {
157
157
  id: 'in',
@@ -159,6 +159,12 @@ const In = {
159
159
  short: 'In',
160
160
  componentType: ['multi-select'],
161
161
  };
162
+ const InVariable = {
163
+ id: 'inv',
164
+ name: 'IN_VARIABLE',
165
+ short: 'In',
166
+ componentType: ['multi-select', 'text'],
167
+ };
162
168
  export const PepSmartFilterOperators = {
163
169
  Equals: Equals,
164
170
  NotEqual: NotEqual,
@@ -207,13 +213,13 @@ const EqualsToVariable = {
207
213
  id: 'eqv',
208
214
  name: 'EQUAL_TO_VARIABLE',
209
215
  short: '=',
210
- componentType: ['text', 'number', 'boolean', 'multi-select']
216
+ componentType: ['text', 'number', 'boolean']
211
217
  };
212
218
  const NotEqualsToVariable = {
213
219
  id: 'neqv',
214
220
  name: 'NOT_EQUAL_TO_VARIABLE',
215
221
  short: '<>',
216
- componentType: ['boolean', 'multi-select']
222
+ componentType: ['boolean']
217
223
  };
218
224
  const LessThanVariable = {
219
225
  id: 'ltv',
@@ -238,7 +244,10 @@ export const PepSmartFilterVariableOperators = {
238
244
  NotEqualsToVariable: NotEqualsToVariable,
239
245
  LessThanVariable: LessThanVariable,
240
246
  GreaterThanVariable: GreaterThanVariable,
241
- DateRangeVariable: DateRangeVariable
247
+ DateRangeVariable: DateRangeVariable,
248
+ InVariable: InVariable,
249
+ IsEmpty: IsEmpty,
250
+ IsNotEmpty: IsNotEmpty
242
251
  };
243
252
  export class IPepSmartFilterOperatorUnit {
244
253
  }
@@ -268,4 +277,4 @@ export const PepSmartFilterOperatorUnits = {
268
277
  Months: Months,
269
278
  Years: Years,
270
279
  };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyx1QkFBdUI7Q0FLbkM7QUFFRCxNQUFNLE1BQU0sR0FBNEI7SUFDcEMsRUFBRSxFQUFFLElBQUk7SUFDUixJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxHQUFHO0lBQ1YsYUFBYSxFQUFFO1FBQ1gsUUFBUTtRQUNSLFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsVUFBVTtRQUNWLE1BQU07UUFDTixtQkFBbUI7UUFDbkIsWUFBWTtLQUNmO0NBQ0osQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE0QjtJQUN0QyxFQUFFLEVBQUUsS0FBSztJQUNULElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFO1FBQ1gsUUFBUTtRQUNSLGtCQUFrQjtRQUNsQixVQUFVO1FBQ1YsTUFBTTtRQUNOLG1CQUFtQjtRQUNuQixZQUFZO0tBQ2Y7Q0FDSixDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQTRCO0lBQ3RDLEVBQUUsRUFBRSxJQUFJO0lBQ1IsSUFBSSxFQUFFLFdBQVc7SUFDakIsS0FBSyxFQUFFLEdBQUc7SUFDVixhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Q0FDNUIsQ0FBQztBQUVGLHNEQUFzRDtBQUN0RCxrQkFBa0I7QUFDbEIsa0NBQWtDO0FBQ2xDLG1CQUFtQjtBQUNuQix3QkFBd0I7QUFDeEIsS0FBSztBQUVMLE1BQU0sV0FBVyxHQUE0QjtJQUN6QyxFQUFFLEVBQUUsSUFBSTtJQUNSLElBQUksRUFBRSxjQUFjO0lBQ3BCLEtBQUssRUFBRSxHQUFHO0lBQ1YsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQzVCLENBQUM7QUFFRix5REFBeUQ7QUFDekQsa0JB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LEtBQUs7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQZXBTbWFydEZpbHRlckNvbXBvbmVudFR5cGUsXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvclR5cGUsXG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRUeXBlLFxufSBmcm9tICcuL3R5cGUnO1xuZXhwb3J0IGNsYXNzIElQZXBTbWFydEZpbHRlck9wZXJhdG9yIHtcbiAgICBpZDogUGVwU21hcnRGaWx0ZXJPcGVyYXRvclR5cGU7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNob3J0OiBzdHJpbmc7XG4gICAgY29tcG9uZW50VHlwZTogUGVwU21hcnRGaWx0ZXJDb21wb25lbnRUeXBlW107XG59XG5cbmNvbnN0IEVxdWFsczogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdlcScsXG4gICAgbmFtZTogJ0VRVUFMJyxcbiAgICBzaG9ydDogJz0nLFxuICAgIGNvbXBvbmVudFR5cGU6IFtcbiAgICAgICAgJ251bWJlcicsXG4gICAgICAgICdib29sZWFuJyxcbiAgICAgICAgLy8gJ211bHRpLXNlbGVjdCcsXG4gICAgICAgIC8vICdkYXRlJyxcbiAgICAgICAgJ3RleHQnLFxuICAgICAgICAvLyAnYXV0by1jb21wbGV0ZScsXG4gICAgICAgIC8vICdzZWxlY3QnLFxuICAgIF0sXG59O1xuXG5jb25zdCBOb3RFcXVhbDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICduZXEnLFxuICAgIG5hbWU6ICdOT1RfRVFVQUwnLFxuICAgIHNob3J0OiAnPD4nLFxuICAgIGNvbXBvbmVudFR5cGU6IFtcbiAgICAgICAgJ251bWJlcicsXG4gICAgICAgIC8vICdtdWx0aS1zZWxlY3QnLFxuICAgICAgICAvLyAnZGF0ZScsXG4gICAgICAgICd0ZXh0JyxcbiAgICAgICAgLy8gJ2F1dG8tY29tcGxldGUnLFxuICAgICAgICAvLyAnc2VsZWN0JyxcbiAgICBdLFxufTtcblxuY29uc3QgTGVzc1RoYW46IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnbHQnLFxuICAgIG5hbWU6ICdMRVNTX1RIRU4nLFxuICAgIHNob3J0OiAnPCcsXG4gICAgY29tcG9uZW50VHlwZTogWydudW1iZXInXSxcbn07XG5cbi8vIGNvbnN0IExlc3NUaGFuT3JFcXVhbHM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuLy8gICAgIGlkOiAnbHRvZScsXG4vLyAgICAgbmFtZTogJ0xFU1NfVEhFTl9PUl9FUVVBTCcsXG4vLyAgICAgc2hvcnQ6ICc8PScsXG4vLyAgICAgdHlwZTogWydudW1iZXInXSxcbi8vIH07XG5cbmNvbnN0IEdyZWF0ZXJUaGFuOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2d0JyxcbiAgICBuYW1lOiAnR1JFQVRFUl9USEVOJyxcbiAgICBzaG9ydDogJz4nLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnbnVtYmVyJ10sXG59O1xuXG4vLyBjb25zdCBHcmVhdGVyVGhhbk9yRXF1YWxzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbi8vICAgICBpZDogJ2d0b2UnLFxuLy8gICAgIG5hbWU6ICdHUkVBVEVSX1RIRU5fT1JfRVFVQUwnLFxuLy8gICAgIHNob3J0OiAnPj0nLFxuLy8gICAgIHR5cGU6IFsnbnVtYmVyJ10sXG4vLyB9O1xuXG5jb25zdCBOdW1iZXJSYW5nZTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdudW1iZXJSYW5nZScsXG4gICAgbmFtZTogJ05VTUJFUl9SQU5HRScsXG4gICAgc2hvcnQ6ICdSYW5nZScsXG4gICAgY29tcG9uZW50VHlwZTogWydudW1iZXInXSxcbn07XG5cbmNvbnN0IENvbnRhaW5zOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2NvbnRhaW5zJyxcbiAgICBuYW1lOiAnQ09OVEFJTlMnLFxuICAgIHNob3J0OiAnQ29udGFpbnMnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsndGV4dCddLFxufTtcblxuY29uc3QgQmVnaW5zV2l0aDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdiZWdpbnNXaXRoJyxcbiAgICBuYW1lOiAnQkVHSU5TX1dJVEgnLFxuICAgIHNob3J0OiAnQmVnaW5zIFdpdGgnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsndGV4dCddLFxufTtcblxuY29uc3QgRW5kc1dpdGg6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnZW5kc1dpdGgnLFxuICAgIG5hbWU6ICdFTkRTX1dJVEgnLFxuICAgIHNob3J0OiAnRW5kIFdpdGgnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsndGV4dCddLFxufTtcblxuLy8gY29uc3QgQWZ0ZXI6IE9wZXJhdG9yID0ge1xuLy8gICAgIGlkOiAnYWZ0ZXInLFxuLy8gICAgIG5hbWU6ICdBZnRlcicsXG4vLyAgICAgc2hvcnQ6ICdBZnRlcicsXG4vLyAgICAgdHlwZTogWydkYXRlJ10sXG4vLyB9O1xuXG4vLyBjb25zdCBCZWZvcmU6IE9wZXJhdG9yID0ge1xuLy8gICAgIGlkOiAnYmVmb3JlJyxcbi8vICAgICBuYW1lOiAnQmVmb3JlJyxcbi8vICAgICBzaG9ydDogJ0JlZm9yZScsXG4vLyAgICAgdHlwZTogWydkYXRlJ10sXG4vLyB9O1xuXG5jb25zdCBJblRoZUxhc3Q6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnaW5UaGVMYXN0JyxcbiAgICBuYW1lOiAnSU5fVEhFX0xBU1QnLFxuICAgIHNob3J0OiAnSW4gdGhlIGxhc3QnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuY29uc3QgVG9kYXk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAndG9kYXknLFxuICAgIG5hbWU6ICdUT0RBWScsXG4gICAgc2hvcnQ6ICdUb2RheScsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBUaGlzV2VlazogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICd0aGlzV2VlaycsXG4gICAgbmFtZTogJ1RISVNfV0VFSycsXG4gICAgc2hvcnQ6ICdUaGlzIHdlZWsnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuY29uc3QgVGhpc01vbnRoOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ3RoaXNNb250aCcsXG4gICAgbmFtZTogJ1RISVNfTU9OVEgnLFxuICAgIHNob3J0OiAnVGhpcyBtb250aCcsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBEYXRlUmFuZ2U6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnZGF0ZVJhbmdlJyxcbiAgICBuYW1lOiAnREFURV9SQU5HRScsXG4gICAgc2hvcnQ6ICdSYW5nZScsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBEdWVJbjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdkdWVJbicsXG4gICAgbmFtZTogJ0RVRV9JTicsXG4gICAgc2hvcnQ6ICdEdWUgaW4nLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuY29uc3QgT246IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnb24nLFxuICAgIG5hbWU6ICdPTicsXG4gICAgc2hvcnQ6ICdPbicsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBOb3RJblRoZUxhc3Q6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnbm90SW5UaGVMYXN0JyxcbiAgICBuYW1lOiAnTk9UX0lOX1RIRV9MQVNUJyxcbiAgICBzaG9ydDogJ05vdCBpbiB0aGUgbGFzdCcsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBOb3REdWVJbjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdub3REdWVJbicsXG4gICAgbmFtZTogJ05PVF9EVUVfSU4nLFxuICAgIHNob3J0OiAnTm90IGR1ZSBpbicsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBJc0VtcHR5OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2lzRW1wdHknLFxuICAgIG5hbWU6ICdJU19FTVBUWScsXG4gICAgc2hvcnQ6ICdJcyBlbXB0eScsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBJc05vdEVtcHR5OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2lzTm90RW1wdHknLFxuICAgIG5hbWU6ICdJU19OT1RfRU1QVFknLFxuICAgIHNob3J0OiAnSXMgbm90IGVtcHR5JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IEluOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2luJyxcbiAgICBuYW1lOiAnSU4nLFxuICAgIHNob3J0OiAnSW4nLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnbXVsdGktc2VsZWN0J10sXG59O1xuXG5leHBvcnQgY29uc3QgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMgPSB7XG4gICAgRXF1YWxzOiBFcXVhbHMsXG4gICAgTm90RXF1YWw6IE5vdEVxdWFsLFxuICAgIExlc3NUaGFuOiBMZXNzVGhhbixcbiAgICAvLyBMZXNzVGhhbk9yRXF1YWxzOiBMZXNzVGhhbk9yRXF1YWxzLFxuICAgIEdyZWF0ZXJUaGFuOiBHcmVhdGVyVGhhbixcbiAgICAvLyBHcmVhdGVyVGhhbk9yRXF1YWxzOiBHcmVhdGVyVGhhbk9yRXF1YWxzLFxuICAgIE51bWJlclJhbmdlOiBOdW1iZXJSYW5nZSxcbiAgICBDb250YWluczogQ29udGFpbnMsXG4gICAgQmVnaW5zV2l0aDogQmVnaW5zV2l0aCxcbiAgICBFbmRzV2l0aDogRW5kc1dpdGgsXG4gICAgLy8gQWZ0ZXI6IEFmdGVyLFxuICAgIC8vIEJlZm9yZTogQmVmb3JlLFxuICAgIEluVGhlTGFzdDogSW5UaGVMYXN0LFxuICAgIFRvZGF5OiBUb2RheSxcbiAgICBUaGlzV2VlazogVGhpc1dlZWssXG4gICAgVGhpc01vbnRoOiBUaGlzTW9udGgsXG4gICAgRGF0ZVJhbmdlOiBEYXRlUmFuZ2UsXG4gICAgRHVlSW46IER1ZUluLFxuICAgIE9uOiBPbixcbiAgICBOb3RJblRoZUxhc3Q6IE5vdEluVGhlTGFzdCxcbiAgICBOb3REdWVJbjogTm90RHVlSW4sXG4gICAgSXNFbXB0eTogSXNFbXB0eSxcbiAgICBJc05vdEVtcHR5OiBJc05vdEVtcHR5LFxuICAgIEluOiBJbixcbn07XG5cbi8vYWRkaXRpb25hbCBvcGVyYXRvcnMgdG8gYmUgYWRkZWQgdXBvbiBpbnB1dCBmbGFnXG5jb25zdCBJblRoZUxhc3RDYWxlbmRhcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdpblRoZUxhc3RDYWxlbmRhcicsXG4gICAgbmFtZTogJ0lOX1RIRV9MQVNUX0NBTEVOREFSJyxcbiAgICBzaG9ydDogJ0luIHRoZSBsYXN0IChjYWxlbmRhciknLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufVxuXG5jb25zdCBOb3RJblRoZUxhc3RDYWxlbmRhcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdub3RJblRoZUxhc3RDYWxlbmRhcicsXG4gICAgbmFtZTogJ05PVF9JTl9USEVfTEFTVF9DQUxFTkRBUicsXG4gICAgc2hvcnQ6ICdOb3QgaW4gdGhlIGxhc3QgKGNhbGVuZGFyKScsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59XG5cbmV4cG9ydCBjb25zdCBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMgPSB7XG4gICAgSW5UaGVMYXN0Q2FsZW5kYXI6IEluVGhlTGFzdENhbGVuZGFyLFxuICAgIE5vdEluVGhlTGFzdENhbGVuZGFyOiBOb3RJblRoZUxhc3RDYWxlbmRhclxufVxuXG4vL2FkZGl0aW9uYWwgdmFyaWFibGUgb3BlcmF0b3JzIHRvIGJlIGFkZGVkIHVwb24gaW5wdXQgdmFyaWFibGUgZmllbGRzXG5jb25zdCBFcXVhbHNUb1ZhcmlhYmxlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2VxdicsXG4gICAgbmFtZTogJ0VRVUFMX1RPX1ZBUklBQkxFJyxcbiAgICBzaG9ydDogJz0nLFxuICAgIGNvbXBvbmVudFR5cGU6IFsndGV4dCcsICdudW1iZXInLCAnYm9vbGVhbicsICdtdWx0aS1zZWxlY3QnXVxufVxuXG5jb25zdCBOb3RFcXVhbHNUb1ZhcmlhYmxlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ25lcXYnLFxuICAgIG5hbWU6ICdOT1RfRVFVQUxfVE9fVkFSSUFCTEUnLFxuICAgIHNob3J0OiAnPD4nLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnYm9vbGVhbicsICdtdWx0aS1zZWxlY3QnXVxufVxuXG5jb25zdCBMZXNzVGhhblZhcmlhYmxlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2x0dicsXG4gICAgbmFtZTogJ0xFU1NfVEhBTl9WQVJJQUJMRScsXG4gICAgc2hvcnQ6ICc8JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ251bWJlciddLFxufTtcblxuY29uc3QgR3JlYXRlclRoYW5WYXJpYWJsZTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdndHYnLFxuICAgIG5hbWU6ICdHUkVBVEVSX1RIQU5fVkFSSUFCTEUnLFxuICAgIHNob3J0OiAnPicsXG4gICAgY29tcG9uZW50VHlwZTogWydudW1iZXInXSxcbn07XG5cbmNvbnN0IERhdGVSYW5nZVZhcmlhYmxlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2RhdGVSYW5nZVZhcmlhYmxlJyxcbiAgICBuYW1lOiAnREFURV9SQU5HRV9WQVJJQUJMRScsXG4gICAgc2hvcnQ6ICdSYW5nZSBWYXJpYWJsZScsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5leHBvcnQgY29uc3QgUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycyA9IHtcbiAgICBFcXVhbHNUb1ZhcmlhYmxlOiBFcXVhbHNUb1ZhcmlhYmxlLFxuICAgIE5vdEVxdWFsc1RvVmFyaWFibGU6IE5vdEVxdWFsc1RvVmFyaWFibGUsXG4gICAgTGVzc1RoYW5WYXJpYWJsZTogTGVzc1RoYW5WYXJpYWJsZSxcbiAgICBHcmVhdGVyVGhhblZhcmlhYmxlOiBHcmVhdGVyVGhhblZhcmlhYmxlLFxuICAgIERhdGVSYW5nZVZhcmlhYmxlOiBEYXRlUmFuZ2VWYXJpYWJsZVxufVxuXG5leHBvcnQgY2xhc3MgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0IHtcbiAgICBpZDogUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRUeXBlO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjb21wb25lbnRUeXBlOiBQZXBTbWFydEZpbHRlckNvbXBvbmVudFR5cGVbXTtcbn1cblxuY29uc3QgRGF5czogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0ID0ge1xuICAgIGlkOiAnZGF5cycsXG4gICAgbmFtZTogJ0RBWVMnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuY29uc3QgV2Vla3M6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCA9IHtcbiAgICBpZDogJ3dlZWtzJyxcbiAgICBuYW1lOiAnV0VFS1MnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuY29uc3QgTW9udGhzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQgPSB7XG4gICAgaWQ6ICdtb250aHMnLFxuICAgIG5hbWU6ICdNT05USFMnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuY29uc3QgWWVhcnM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCA9IHtcbiAgICBpZDogJ3llYXJzJyxcbiAgICBuYW1lOiAnWUVBUlMnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufTtcblxuZXhwb3J0IGNvbnN0IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cyA9IHtcbiAgICBEYXlzOiBEYXlzLFxuICAgIFdlZWtzOiBXZWVrcyxcbiAgICBNb250aHM6IE1vbnRocyxcbiAgICBZZWFyczogWWVhcnMsXG59O1xuIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyx1QkFBdUI7Q0FLbkM7QUFFRCxNQUFNLE1BQU0sR0FBNEI7SUFDcEMsRUFBRSxFQUFFLElBQUk7SUFDUixJQUFJLEVBQUUsT0FBTztJQUNiLEtBQUssRUFBRSxHQUFHO0lBQ1YsYUFBYSxFQUFFO1FBQ1gsUUFBUTtRQUNSLFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsVUFBVTtRQUNWLE1BQU07UUFDTixtQkFBbUI7UUFDbkIsWUFBWTtLQUNmO0NBQ0osQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE0QjtJQUN0QyxFQUFFLEVBQUUsS0FBSztJQUNULElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFO1FBQ1gsUUFBUTtRQUNSLGtCQUFrQjtRQUNsQixVQUFVO1FBQ1YsTUFBTTtRQUNOLG1CQUFtQjtRQUNuQixZQUFZO0tBQ2Y7Q0FDSixDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQTRCO0lBQ3RDLEVBQUUsRUFBRSxJQUFJO0lBQ1IsSUFBSSxFQUFFLFdBQVc7SUFDakIsS0FBSyxFQUFFLEdBQUc7SUFDVixhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Q0FDNUIsQ0FBQztBQUVGLHNEQUFzRDtBQUN0RCxrQkFBa0I7QUFDbEIsa0NBQWtDO0FBQ2xDLG1CQUFtQjtBQUNuQix3QkFBd0I7QUFDeEIsS0FBSztBQUVMLE1BQU0sV0FBVyxHQUE0QjtJQUN6QyxFQUFFLEVBQUUsSUFBSTtJQUNSLElBQUksRUFBRSxjQUFjO0lBQ3BCLEtBQUssRUFBRSxHQUFHO0lBQ1YsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO0NBQzVCLENBQUM7QUFFRix5REFBeUQ7QUFDekQsa0JB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SyxHQUFnQztJQUN2QyxFQUFFLEVBQUUsT0FBTztJQUNYLElBQUksRUFBRSxPQUFPO0lBQ2IsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN2QyxJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLE1BQU07SUFDZCxLQUFLLEVBQUUsS0FBSztDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBlcFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9yVHlwZSxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdFR5cGUsXG59IGZyb20gJy4vdHlwZSc7XG5leHBvcnQgY2xhc3MgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3Ige1xuICAgIGlkOiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVHlwZTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2hvcnQ6IHN0cmluZztcbiAgICBjb21wb25lbnRUeXBlOiBQZXBTbWFydEZpbHRlckNvbXBvbmVudFR5cGVbXTtcbn1cblxuY29uc3QgRXF1YWxzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2VxJyxcbiAgICBuYW1lOiAnRVFVQUwnLFxuICAgIHNob3J0OiAnPScsXG4gICAgY29tcG9uZW50VHlwZTogW1xuICAgICAgICAnbnVtYmVyJyxcbiAgICAgICAgJ2Jvb2xlYW4nLFxuICAgICAgICAvLyAnbXVsdGktc2VsZWN0JyxcbiAgICAgICAgLy8gJ2RhdGUnLFxuICAgICAgICAndGV4dCcsXG4gICAgICAgIC8vICdhdXRvLWNvbXBsZXRlJyxcbiAgICAgICAgLy8gJ3NlbGVjdCcsXG4gICAgXSxcbn07XG5cbmNvbnN0IE5vdEVxdWFsOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ25lcScsXG4gICAgbmFtZTogJ05PVF9FUVVBTCcsXG4gICAgc2hvcnQ6ICc8PicsXG4gICAgY29tcG9uZW50VHlwZTogW1xuICAgICAgICAnbnVtYmVyJyxcbiAgICAgICAgLy8gJ211bHRpLXNlbGVjdCcsXG4gICAgICAgIC8vICdkYXRlJyxcbiAgICAgICAgJ3RleHQnLFxuICAgICAgICAvLyAnYXV0by1jb21wbGV0ZScsXG4gICAgICAgIC8vICdzZWxlY3QnLFxuICAgIF0sXG59O1xuXG5jb25zdCBMZXNzVGhhbjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdsdCcsXG4gICAgbmFtZTogJ0xFU1NfVEhFTicsXG4gICAgc2hvcnQ6ICc8JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ251bWJlciddLFxufTtcblxuLy8gY29uc3QgTGVzc1RoYW5PckVxdWFsczogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4vLyAgICAgaWQ6ICdsdG9lJyxcbi8vICAgICBuYW1lOiAnTEVTU19USEVOX09SX0VRVUFMJyxcbi8vICAgICBzaG9ydDogJzw9Jyxcbi8vICAgICB0eXBlOiBbJ251bWJlciddLFxuLy8gfTtcblxuY29uc3QgR3JlYXRlclRoYW46IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnZ3QnLFxuICAgIG5hbWU6ICdHUkVBVEVSX1RIRU4nLFxuICAgIHNob3J0OiAnPicsXG4gICAgY29tcG9uZW50VHlwZTogWydudW1iZXInXSxcbn07XG5cbi8vIGNvbnN0IEdyZWF0ZXJUaGFuT3JFcXVhbHM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuLy8gICAgIGlkOiAnZ3RvZScsXG4vLyAgICAgbmFtZTogJ0dSRUFURVJfVEhFTl9PUl9FUVVBTCcsXG4vLyAgICAgc2hvcnQ6ICc+PScsXG4vLyAgICAgdHlwZTogWydudW1iZXInXSxcbi8vIH07XG5cbmNvbnN0IE51bWJlclJhbmdlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ251bWJlclJhbmdlJyxcbiAgICBuYW1lOiAnTlVNQkVSX1JBTkdFJyxcbiAgICBzaG9ydDogJ1JhbmdlJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ251bWJlciddLFxufTtcblxuY29uc3QgQ29udGFpbnM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnY29udGFpbnMnLFxuICAgIG5hbWU6ICdDT05UQUlOUycsXG4gICAgc2hvcnQ6ICdDb250YWlucycsXG4gICAgY29tcG9uZW50VHlwZTogWyd0ZXh0J10sXG59O1xuXG5jb25zdCBCZWdpbnNXaXRoOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2JlZ2luc1dpdGgnLFxuICAgIG5hbWU6ICdCRUdJTlNfV0lUSCcsXG4gICAgc2hvcnQ6ICdCZWdpbnMgV2l0aCcsXG4gICAgY29tcG9uZW50VHlwZTogWyd0ZXh0J10sXG59O1xuXG5jb25zdCBFbmRzV2l0aDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdlbmRzV2l0aCcsXG4gICAgbmFtZTogJ0VORFNfV0lUSCcsXG4gICAgc2hvcnQ6ICdFbmQgV2l0aCcsXG4gICAgY29tcG9uZW50VHlwZTogWyd0ZXh0J10sXG59O1xuXG4vLyBjb25zdCBBZnRlcjogT3BlcmF0b3IgPSB7XG4vLyAgICAgaWQ6ICdhZnRlcicsXG4vLyAgICAgbmFtZTogJ0FmdGVyJyxcbi8vICAgICBzaG9ydDogJ0FmdGVyJyxcbi8vICAgICB0eXBlOiBbJ2RhdGUnXSxcbi8vIH07XG5cbi8vIGNvbnN0IEJlZm9yZTogT3BlcmF0b3IgPSB7XG4vLyAgICAgaWQ6ICdiZWZvcmUnLFxuLy8gICAgIG5hbWU6ICdCZWZvcmUnLFxuLy8gICAgIHNob3J0OiAnQmVmb3JlJyxcbi8vICAgICB0eXBlOiBbJ2RhdGUnXSxcbi8vIH07XG5cbmNvbnN0IEluVGhlTGFzdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdpblRoZUxhc3QnLFxuICAgIG5hbWU6ICdJTl9USEVfTEFTVCcsXG4gICAgc2hvcnQ6ICdJbiB0aGUgbGFzdCcsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBUb2RheTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICd0b2RheScsXG4gICAgbmFtZTogJ1RPREFZJyxcbiAgICBzaG9ydDogJ1RvZGF5JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IFRoaXNXZWVrOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ3RoaXNXZWVrJyxcbiAgICBuYW1lOiAnVEhJU19XRUVLJyxcbiAgICBzaG9ydDogJ1RoaXMgd2VlaycsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBUaGlzTW9udGg6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAndGhpc01vbnRoJyxcbiAgICBuYW1lOiAnVEhJU19NT05USCcsXG4gICAgc2hvcnQ6ICdUaGlzIG1vbnRoJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IERhdGVSYW5nZTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdkYXRlUmFuZ2UnLFxuICAgIG5hbWU6ICdEQVRFX1JBTkdFJyxcbiAgICBzaG9ydDogJ1JhbmdlJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IER1ZUluOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2R1ZUluJyxcbiAgICBuYW1lOiAnRFVFX0lOJyxcbiAgICBzaG9ydDogJ0R1ZSBpbicsXG4gICAgY29tcG9uZW50VHlwZTogWydkYXRlJ10sXG59O1xuXG5jb25zdCBPbjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdvbicsXG4gICAgbmFtZTogJ09OJyxcbiAgICBzaG9ydDogJ09uJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IE5vdEluVGhlTGFzdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdub3RJblRoZUxhc3QnLFxuICAgIG5hbWU6ICdOT1RfSU5fVEhFX0xBU1QnLFxuICAgIHNob3J0OiAnTm90IGluIHRoZSBsYXN0JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IE5vdER1ZUluOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ25vdER1ZUluJyxcbiAgICBuYW1lOiAnTk9UX0RVRV9JTicsXG4gICAgc2hvcnQ6ICdOb3QgZHVlIGluJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IElzRW1wdHk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnaXNFbXB0eScsXG4gICAgbmFtZTogJ0lTX0VNUFRZJyxcbiAgICBzaG9ydDogJ0lzIGVtcHR5JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnLCd0ZXh0J10sXG59O1xuXG5jb25zdCBJc05vdEVtcHR5OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2lzTm90RW1wdHknLFxuICAgIG5hbWU6ICdJU19OT1RfRU1QVFknLFxuICAgIHNob3J0OiAnSXMgbm90IGVtcHR5JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnLCd0ZXh0J10sXG59O1xuXG5jb25zdCBJbjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdpbicsXG4gICAgbmFtZTogJ0lOJyxcbiAgICBzaG9ydDogJ0luJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ211bHRpLXNlbGVjdCddLFxufTtcblxuY29uc3QgSW5WYXJpYWJsZTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdpbnYnLFxuICAgIG5hbWU6ICdJTl9WQVJJQUJMRScsXG4gICAgc2hvcnQ6ICdJbicsXG4gICAgY29tcG9uZW50VHlwZTogWydtdWx0aS1zZWxlY3QnLCAndGV4dCddLFxufTtcblxuZXhwb3J0IGNvbnN0IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzID0ge1xuICAgIEVxdWFsczogRXF1YWxzLFxuICAgIE5vdEVxdWFsOiBOb3RFcXVhbCxcbiAgICBMZXNzVGhhbjogTGVzc1RoYW4sXG4gICAgLy8gTGVzc1RoYW5PckVxdWFsczogTGVzc1RoYW5PckVxdWFscyxcbiAgICBHcmVhdGVyVGhhbjogR3JlYXRlclRoYW4sXG4gICAgLy8gR3JlYXRlclRoYW5PckVxdWFsczogR3JlYXRlclRoYW5PckVxdWFscyxcbiAgICBOdW1iZXJSYW5nZTogTnVtYmVyUmFuZ2UsXG4gICAgQ29udGFpbnM6IENvbnRhaW5zLFxuICAgIEJlZ2luc1dpdGg6IEJlZ2luc1dpdGgsXG4gICAgRW5kc1dpdGg6IEVuZHNXaXRoLFxuICAgIC8vIEFmdGVyOiBBZnRlcixcbiAgICAvLyBCZWZvcmU6IEJlZm9yZSxcbiAgICBJblRoZUxhc3Q6IEluVGhlTGFzdCxcbiAgICBUb2RheTogVG9kYXksXG4gICAgVGhpc1dlZWs6IFRoaXNXZWVrLFxuICAgIFRoaXNNb250aDogVGhpc01vbnRoLFxuICAgIERhdGVSYW5nZTogRGF0ZVJhbmdlLFxuICAgIER1ZUluOiBEdWVJbixcbiAgICBPbjogT24sXG4gICAgTm90SW5UaGVMYXN0OiBOb3RJblRoZUxhc3QsXG4gICAgTm90RHVlSW46IE5vdER1ZUluLFxuICAgIElzRW1wdHk6IElzRW1wdHksXG4gICAgSXNOb3RFbXB0eTogSXNOb3RFbXB0eSxcbiAgICBJbjogSW4sXG59O1xuXG4vL2FkZGl0aW9uYWwgb3BlcmF0b3JzIHRvIGJlIGFkZGVkIHVwb24gaW5wdXQgZmxhZ1xuY29uc3QgSW5UaGVMYXN0Q2FsZW5kYXI6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnaW5UaGVMYXN0Q2FsZW5kYXInLFxuICAgIG5hbWU6ICdJTl9USEVfTEFTVF9DQUxFTkRBUicsXG4gICAgc2hvcnQ6ICdJbiB0aGUgbGFzdCAoY2FsZW5kYXIpJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn1cblxuY29uc3QgTm90SW5UaGVMYXN0Q2FsZW5kYXI6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnbm90SW5UaGVMYXN0Q2FsZW5kYXInLFxuICAgIG5hbWU6ICdOT1RfSU5fVEhFX0xBU1RfQ0FMRU5EQVInLFxuICAgIHNob3J0OiAnTm90IGluIHRoZSBsYXN0IChjYWxlbmRhciknLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnZGF0ZSddLFxufVxuXG5leHBvcnQgY29uc3QgUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzID0ge1xuICAgIEluVGhlTGFzdENhbGVuZGFyOiBJblRoZUxhc3RDYWxlbmRhcixcbiAgICBOb3RJblRoZUxhc3RDYWxlbmRhcjogTm90SW5UaGVMYXN0Q2FsZW5kYXJcbn1cblxuLy9hZGRpdGlvbmFsIHZhcmlhYmxlIG9wZXJhdG9ycyB0byBiZSBhZGRlZCB1cG9uIGlucHV0IHZhcmlhYmxlIGZpZWxkc1xuY29uc3QgRXF1YWxzVG9WYXJpYWJsZTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgPSB7XG4gICAgaWQ6ICdlcXYnLFxuICAgIG5hbWU6ICdFUVVBTF9UT19WQVJJQUJMRScsXG4gICAgc2hvcnQ6ICc9JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ3RleHQnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nXVxufVxuXG5jb25zdCBOb3RFcXVhbHNUb1ZhcmlhYmxlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ25lcXYnLFxuICAgIG5hbWU6ICdOT1RfRVFVQUxfVE9fVkFSSUFCTEUnLFxuICAgIHNob3J0OiAnPD4nLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnYm9vbGVhbiddXG59XG5cbmNvbnN0IExlc3NUaGFuVmFyaWFibGU6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnbHR2JyxcbiAgICBuYW1lOiAnTEVTU19USEFOX1ZBUklBQkxFJyxcbiAgICBzaG9ydDogJzwnLFxuICAgIGNvbXBvbmVudFR5cGU6IFsnbnVtYmVyJ10sXG59O1xuXG5jb25zdCBHcmVhdGVyVGhhblZhcmlhYmxlOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciA9IHtcbiAgICBpZDogJ2d0dicsXG4gICAgbmFtZTogJ0dSRUFURVJfVEhBTl9WQVJJQUJMRScsXG4gICAgc2hvcnQ6ICc+JyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ251bWJlciddLFxufTtcblxuY29uc3QgRGF0ZVJhbmdlVmFyaWFibGU6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yID0ge1xuICAgIGlkOiAnZGF0ZVJhbmdlVmFyaWFibGUnLFxuICAgIG5hbWU6ICdEQVRFX1JBTkdFX1ZBUklBQkxFJyxcbiAgICBzaG9ydDogJ1JhbmdlIFZhcmlhYmxlJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmV4cG9ydCBjb25zdCBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzID0ge1xuICAgIEVxdWFsc1RvVmFyaWFibGU6IEVxdWFsc1RvVmFyaWFibGUsXG4gICAgTm90RXF1YWxzVG9WYXJpYWJsZTogTm90RXF1YWxzVG9WYXJpYWJsZSxcbiAgICBMZXNzVGhhblZhcmlhYmxlOiBMZXNzVGhhblZhcmlhYmxlLFxuICAgIEdyZWF0ZXJUaGFuVmFyaWFibGU6IEdyZWF0ZXJUaGFuVmFyaWFibGUsXG4gICAgRGF0ZVJhbmdlVmFyaWFibGU6IERhdGVSYW5nZVZhcmlhYmxlLFxuICAgIEluVmFyaWFibGU6IEluVmFyaWFibGUsXG4gICAgSXNFbXB0eTogSXNFbXB0eSxcbiAgICBJc05vdEVtcHR5OiBJc05vdEVtcHR5XG5cbn1cblxuZXhwb3J0IGNsYXNzIElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgaWQ6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0VHlwZTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY29tcG9uZW50VHlwZTogUGVwU21hcnRGaWx0ZXJDb21wb25lbnRUeXBlW107XG59XG5cbmNvbnN0IERheXM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCA9IHtcbiAgICBpZDogJ2RheXMnLFxuICAgIG5hbWU6ICdEQVlTJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IFdlZWtzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQgPSB7XG4gICAgaWQ6ICd3ZWVrcycsXG4gICAgbmFtZTogJ1dFRUtTJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IE1vbnRoczogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0ID0ge1xuICAgIGlkOiAnbW9udGhzJyxcbiAgICBuYW1lOiAnTU9OVEhTJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmNvbnN0IFllYXJzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQgPSB7XG4gICAgaWQ6ICd5ZWFycycsXG4gICAgbmFtZTogJ1lFQVJTJyxcbiAgICBjb21wb25lbnRUeXBlOiBbJ2RhdGUnXSxcbn07XG5cbmV4cG9ydCBjb25zdCBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMgPSB7XG4gICAgRGF5czogRGF5cyxcbiAgICBXZWVrczogV2Vla3MsXG4gICAgTW9udGhzOiBNb250aHMsXG4gICAgWWVhcnM6IFllYXJzLFxufTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycy9jb21tb24vbW9kZWwvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGVwU21hcnRGaWx0ZXJDb21wb25lbnRUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ251bWJlcidcbiAgICB8ICdkYXRlJ1xuICAgIHwgJ211bHRpLXNlbGVjdCdcbiAgICB8ICdib29sZWFuJztcblxuZXhwb3J0IHR5cGUgUGVwU21hcnRGaWx0ZXJUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ2Jvb2xlYW4nXG4gICAgfCAnY3VycmVuY3knXG4gICAgfCAnZGF0ZSdcbiAgICB8ICdkYXRlLXRpbWUnXG4gICAgfCAnaW50J1xuICAgIHwgJ211bHRpLXNlbGVjdCdcbiAgICB8ICdwZXJjZW50YWdlJ1xuICAgIHwgJ3JlYWwnO1xuXG5leHBvcnQgdHlwZSBQZXBTbWFydEZpbHRlck9wZXJhdG9yVHlwZSA9XG4gICAgfCAnZXEnXG4gICAgfCAnZXF2J1xuICAgIHwgJ25lcSdcbiAgICB8ICduZXF2J1xuICAgIHwgJ2x0J1xuICAgIHwgJ2x0didcbiAgICB8ICdndCdcbiAgICB8ICdndHYnXG4gICAgfCAnbHRvZSdcbiAgICB8ICdndG9lJ1xuICAgIHwgJ251bWJlclJhbmdlJ1xuICAgIHwgJ2NvbnRhaW5zJ1xuICAgIHwgJ2JlZ2luc1dpdGgnXG4gICAgfCAnZW5kc1dpdGgnXG4gICAgfCAnYWZ0ZXInXG4gICAgfCAnYmVmb3JlJ1xuICAgIHwgJ2luVGhlTGFzdCdcbiAgICB8ICdpblRoZUxhc3RDYWxlbmRhcidcbiAgICB8ICd0b2RheSdcbiAgICB8ICd0aGlzV2VlaydcbiAgICB8ICd0aGlzTW9udGgnXG4gICAgfCAnZGF0ZVJhbmdlJ1xuICAgIHwgJ2RhdGVSYW5nZVZhcmlhYmxlJ1xuICAgIHwgJ2R1ZUluJ1xuICAgIHwgJ29uJ1xuICAgIHwgJ25vdEluVGhlTGFzdCdcbiAgICB8ICdub3RJblRoZUxhc3RDYWxlbmRhcidcbiAgICB8ICdub3REdWVJbidcbiAgICB8ICdpc0VtcHR5J1xuICAgIHwgJ2lzTm90RW1wdHknXG4gICAgfCAnaW4nO1xuXG5leHBvcnQgdHlwZSBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdFR5cGUgPVxuICAgIHwgJ2RheXMnXG4gICAgfCAnd2Vla3MnXG4gICAgfCAnbW9udGhzJ1xuICAgIHwgJ3llYXJzJztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc21hcnQtZmlsdGVycy9jb21tb24vbW9kZWwvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGVwU21hcnRGaWx0ZXJDb21wb25lbnRUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ251bWJlcidcbiAgICB8ICdkYXRlJ1xuICAgIHwgJ211bHRpLXNlbGVjdCdcbiAgICB8ICdib29sZWFuJztcblxuZXhwb3J0IHR5cGUgUGVwU21hcnRGaWx0ZXJUeXBlID1cbiAgICB8ICd0ZXh0J1xuICAgIHwgJ2Jvb2xlYW4nXG4gICAgfCAnY3VycmVuY3knXG4gICAgfCAnZGF0ZSdcbiAgICB8ICdkYXRlLXRpbWUnXG4gICAgfCAnaW50J1xuICAgIHwgJ211bHRpLXNlbGVjdCdcbiAgICB8ICdwZXJjZW50YWdlJ1xuICAgIHwgJ3JlYWwnO1xuXG5leHBvcnQgdHlwZSBQZXBTbWFydEZpbHRlck9wZXJhdG9yVHlwZSA9XG4gICAgfCAnZXEnXG4gICAgfCAnZXF2J1xuICAgIHwgJ25lcSdcbiAgICB8ICduZXF2J1xuICAgIHwgJ2x0J1xuICAgIHwgJ2x0didcbiAgICB8ICdndCdcbiAgICB8ICdndHYnXG4gICAgfCAnbHRvZSdcbiAgICB8ICdndG9lJ1xuICAgIHwgJ251bWJlclJhbmdlJ1xuICAgIHwgJ2NvbnRhaW5zJ1xuICAgIHwgJ2JlZ2luc1dpdGgnXG4gICAgfCAnZW5kc1dpdGgnXG4gICAgfCAnYWZ0ZXInXG4gICAgfCAnYmVmb3JlJ1xuICAgIHwgJ2luVGhlTGFzdCdcbiAgICB8ICdpblRoZUxhc3RDYWxlbmRhcidcbiAgICB8ICd0b2RheSdcbiAgICB8ICd0aGlzV2VlaydcbiAgICB8ICd0aGlzTW9udGgnXG4gICAgfCAnZGF0ZVJhbmdlJ1xuICAgIHwgJ2RhdGVSYW5nZVZhcmlhYmxlJ1xuICAgIHwgJ2R1ZUluJ1xuICAgIHwgJ29uJ1xuICAgIHwgJ25vdEluVGhlTGFzdCdcbiAgICB8ICdub3RJblRoZUxhc3RDYWxlbmRhcidcbiAgICB8ICdub3REdWVJbidcbiAgICB8ICdpc0VtcHR5J1xuICAgIHwgJ2lzTm90RW1wdHknXG4gICAgfCAnaW4nXG4gICAgfCAnaW52JztcblxuZXhwb3J0IHR5cGUgUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRUeXBlID1cbiAgICB8ICdkYXlzJ1xuICAgIHwgJ3dlZWtzJ1xuICAgIHwgJ21vbnRocydcbiAgICB8ICd5ZWFycyc7XG4iXX0=
@@ -174,7 +174,7 @@ export class PepDateFilterComponent extends BaseFilterComponent {
174
174
  }
175
175
  }
176
176
  PepDateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDateFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
177
- 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 [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", "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", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval"], outputs: ["valueChange"] }, { kind: "component", type: i7.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "minFractionDigits", "maxFractionDigits", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey", "regex", "regexError", "isInFocus"], outputs: ["valueChange", "keyup"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
177
+ 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 [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", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "chooseTime", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange", "validationChange"] }, { kind: "component", type: i6.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "placeholder", "placeholderWhenDisabled", "autoSortOptions", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval", "addValueToOptionsIfNotExist"], outputs: ["valueChange", "validationChange"] }, { kind: "component", type: i7.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "minFractionDigits", "maxFractionDigits", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey", "regex", "regexError", "isInFocus"], outputs: ["valueChange", "keyup", "validationChange"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDateFilterComponent, decorators: [{
179
179
  type: Component,
180
180
  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 [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" }]