@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
@@ -17,6 +17,7 @@ export class PepQueryStructureService {
17
17
  this._outputQuery$ = new BehaviorSubject(null);
18
18
  this._variableFields = {};
19
19
  this._maxStructureDepth = MAX_STRUCTURE_DEPTH;
20
+ this._cmpRefMap = new Map();
20
21
  this.outputQuery$ = this._outputQuery$.asObservable();
21
22
  }
22
23
  set maxDepth(value) {
@@ -37,13 +38,22 @@ export class PepQueryStructureService {
37
38
  list.forEach(field => {
38
39
  const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));
39
40
  if (this.hasProperty(this._variableFields, fieldType)) {
40
- this._variableFields[fieldType].push(field.FieldID);
41
+ if (!this._variableFields[fieldType].includes(field.FieldID)) {
42
+ this._variableFields[fieldType].push(field.FieldID);
43
+ }
41
44
  }
42
45
  else {
43
46
  this._variableFields[fieldType] = [field.FieldID];
44
47
  }
45
48
  });
46
49
  }
50
+ this._cmpRefMap.forEach((value, key) => {
51
+ if (value.instance.variableFields) {
52
+ Object.keys(value.instance.variableFields).forEach(function (key, index) {
53
+ value.instance.variableFields[key] = JSON.parse(JSON.stringify(value.instance.variableFields[key]));
54
+ });
55
+ }
56
+ });
47
57
  }
48
58
  set form(value) {
49
59
  this._form = value;
@@ -58,6 +68,18 @@ export class PepQueryStructureService {
58
68
  * @param containerRef reference to root element
59
69
  */
60
70
  buildQueryStructure(query, containerRef) {
71
+ // Remove all the components from the query builder.
72
+ this._cmpRefMap.forEach((value, key) => {
73
+ // console.log(key, value);
74
+ // value.instance.remove();
75
+ if (value.instance.parentForm) {
76
+ value.instance.parentForm.removeControl(key);
77
+ }
78
+ value.destroy();
79
+ this._cmpRefMap.delete(key);
80
+ });
81
+ // Clear containerRef
82
+ containerRef.clear();
61
83
  //update root operator
62
84
  if (this.hasProperty(query, 'ComplexId') &&
63
85
  query?.Operation &&
@@ -138,10 +160,15 @@ export class PepQueryStructureService {
138
160
  parentForm.removeControl(formKey);
139
161
  componentRef.destroy();
140
162
  this.createOutputQuery();
163
+ if (this._cmpRefMap.has(formKey)) {
164
+ this._cmpRefMap.delete(formKey);
165
+ }
141
166
  });
142
167
  componentRef.instance.operatorChange.subscribe(() => {
143
168
  this.createOutputQuery();
144
169
  });
170
+ // Add this to remove all the components when fields changes.
171
+ this._cmpRefMap.set(formKey, componentRef);
145
172
  return {
146
173
  containerRef: componentRef.instance.sectionContainer,
147
174
  parentForm: sectionGroup
@@ -179,7 +206,12 @@ export class PepQueryStructureService {
179
206
  parentForm.removeControl(formKey);
180
207
  componentRef.destroy();
181
208
  this.createOutputQuery();
209
+ if (this._cmpRefMap.has(formKey)) {
210
+ this._cmpRefMap.delete(formKey);
211
+ }
182
212
  });
213
+ // Add this to remove all the components when fields changes.
214
+ this._cmpRefMap.set(formKey, componentRef);
183
215
  }
184
216
  /**
185
217
  * get smart filter field
@@ -223,4 +255,4 @@ PepQueryStructureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
223
255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryStructureService, decorators: [{
224
256
  type: Injectable
225
257
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PepOutputQueryService }, { type: i2.PepQueryBuilderService }]; } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWV2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBVWpDLFlBQ1ksU0FBbUMsRUFDbkMsbUJBQTBDLEVBQzFDLG9CQUE0QztRQUY1QyxjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBQzFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFaaEQsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFHNUUsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFMUIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFFMUMsaUJBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBT3hELENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFLO1FBQ2Qs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QUMsQ0FBQztZQUN2RixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEc7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xGO0lBQ0wsQ0FBQztJQUVPLCtCQUErQixDQUFDLElBQVk7UUFDaEQsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxZQUFZO2dCQUNiLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssV0FBVztnQkFDWixPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLElBQUksQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7cUhBcE9RLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZCwgSVBlcFF1ZXJ5U2VjdGlvbiwgSVBlcFF1ZXJ5SXRlbSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9sZWdhY3knO1xuaW1wb3J0IHtcbiAgICBJUGVwU21hcnRGaWx0ZXJEYXRhLFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIFBlcFNtYXJ0RmlsdGVyVHlwZSxcbiAgICBjcmVhdGVTbWFydEZpbHRlcixcbiAgICBjcmVhdGVTbWFydEZpbHRlckZpZWxkLFxuICAgIFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBPdXRwdXRRdWVyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvb3V0cHV0LXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0U21hcnRGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXItaXRlbS9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9maWVsZCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3R5cGUtbWFwJztcbmltcG9ydCB7IGdldFNtYXJ0RmlsdGVyT3BlcmF0aW9uVW5pdCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvZmlsdGVyJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmNvbnN0IE1BWF9TVFJVQ1RVUkVfREVQVEggPSAzO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlTdHJ1Y3R1cmVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vdXRwdXRRdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtPihudWxsKTtcblxuICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyRmllbGRzOiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+O1xuICAgIHByaXZhdGUgX3ZhcmlhYmxlRmllbGRzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIF9mb3JtOiBGb3JtR3JvdXA7XG4gICAgcHJpdmF0ZSBfbWF4U3RydWN0dXJlRGVwdGggPSBNQVhfU1RSVUNUVVJFX0RFUFRIO1xuXG4gICAgcHVibGljIG91dHB1dFF1ZXJ5JCA9IHRoaXMuX291dHB1dFF1ZXJ5JC5hc09ic2VydmFibGUoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9yZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIF9vdXRwdXRRdWVyeVNlcnZpY2U6IFBlcE91dHB1dFF1ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcXVlcnlCdWlsZGVyU2VydmljZTogUGVwUXVlcnlCdWlsZGVyU2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgc2V0IG1heERlcHRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX21heFN0cnVjdHVyZURlcHRoID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IG1heERlcHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4U3RydWN0dXJlRGVwdGg7XG4gICAgfVxuXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XG4gICAgICAgIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5jb252ZXJ0VG9TbWFydEZpbHRlckZpZWxkcyhsaXN0KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc2V0IHZhcmlhYmxlRmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdHlwZU1hcHBlciA9IG5ldyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwKCk7XG4gICAgICAgICAgICBsaXN0LmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IHRoaXMuY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlTWFwcGVyLmdldFNtYXJ0RmlsdGVyVHlwZShmaWVsZC5GaWVsZFR5cGUpKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eSh0aGlzLl92YXJpYWJsZUZpZWxkcywgZmllbGRUeXBlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZUZpZWxkc1tmaWVsZFR5cGVdLnB1c2goZmllbGQuRmllbGRJRCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXSA9IFtmaWVsZC5GaWVsZElEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBmb3JtKHZhbHVlOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fZm9ybSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBmb3JtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBidWlsZHMgYSBkeW5hbWljIFVJIHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIG1pZ2h0IGhhcyBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgdGhhbiB0aGUgcXVlcnkncyBkdWUgdG8gcGFyZW50LWNoaWxkIGVsZW1lbnRzIG1lcmdlXG4gICAgICogQHBhcmFtIHF1ZXJ5IGxlZ2FjeSBxdWVyeSAgICAgXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiByZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgYnVpbGRRdWVyeVN0cnVjdHVyZShcbiAgICAgICAgcXVlcnk6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLFxuICAgICAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgLy91cGRhdGUgcm9vdCBvcGVyYXRvciAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHF1ZXJ5LCAnQ29tcGxleElkJykgJiZcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcbiAgICAgICAgICAgIHF1ZXJ5Lk9wZXJhdGlvbiAhPT0gdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnNldFZhbHVlKHF1ZXJ5Lk9wZXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGF0dGVuKHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnZhbHVlLCBxdWVyeSwgY29udGFpbmVyUmVmLCB0aGlzLl9mb3JtLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIFVJIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudE9wZXJhdG9yIHBhcmVudCBsZWdhY3kgY29tcGxleCBvcGVyYXRvclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGNoaWxkIGxlZ2FjeSBvYmplY3QgKGVpdGhlciBhbm90aGVyIGNvbXBsZXggb3IgZXhwcmVzc2lvbiB0eXBlKVxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnRPcGVyYXRvcjogc3RyaW5nLCBjdXJyZW50OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHBhcmVudE9wZXJhdG9yID09PSBjdXJyZW50Lk9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihjdXJyZW50Lk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZiwgcGFyZW50Rm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBvZiB0d28gb3IgbW9yZSBjaGlsZCBmaWx0ZXIgaXRlbXNcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlU2VjdGlvbihvcGVyYXRvcjogUGVwT3BlcmF0b3JUeXBlcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIC8vIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgLy8gICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG9wZXJhdG9yKVxuICAgICAgICAvLyB9KTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKG9wZXJhdG9yKVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnc2VjdGlvbicpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBzZWN0aW9uJHtjb3VudGVyfWA7XG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZXB0aCxcbiAgICAgICAgICAgIG1heDogdGhpcy5fbWF4U3RydWN0dXJlRGVwdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZVNlY3Rpb24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXAsIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlSXRlbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVyYXRvckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdpdGVtJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBjb25zdCBmb3JtS2V5ID0gYGl0ZW0ke2NvdW50ZXJ9YDtcblxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZm9ybUtleSA9IGZvcm1LZXk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLl9zbWFydEZpbHRlckZpZWxkcztcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzID0gdGhpcy5fdmFyaWFibGVGaWVsZHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSB0aGlzLmdldFNlbGVjdGVkRmllbGQoY3VycmVudCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSBzZWxlY3RlZEZpZWxkO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5nZXRGaWx0ZXIoY3VycmVudCwgc2VsZWN0ZWRGaWVsZC5zbWFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEZvcm0gPSBwYXJlbnRGb3JtO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgc21hcnQgZmlsdGVyIGZpZWxkXG4gICAgICogQHBhcmFtIGN1cnJlbnQgZmlsdGVyIGxlZ2FjeSBlbGVtZW50XG4gICAgICogQHJldHVybnMgc21hcnQgZmlsdGVyIGZpZWxkLCBpZiBub3QgZm91bmQgcmV0dXJucyB0aGUgZmlyc3QgZmllbGRcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRmllbGQoY3VycmVudDogSVBlcFF1ZXJ5SXRlbSk6IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB8IG51bGwge1xuICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuc21hcnQuaWQgPT09IGN1cnJlbnQuQXBpTmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0gOiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgY2FzZSAncmVhbCc6XG4gICAgICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBvdXRwdXQgcXVlcnkgXG4gICAgICovXG4gICAgY3JlYXRlT3V0cHV0UXVlcnkoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuX291dHB1dFF1ZXJ5U2VydmljZS5nZW5lcmF0ZVF1ZXJ5KHRoaXMuX2Zvcm0udmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3V0cHV0UXVlcnkkLm5leHQocXVlcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG59Il19
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRELE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQ1ksU0FBbUMsRUFDbkMsbUJBQTBDLEVBQzFDLG9CQUE0QztRQUY1QyxjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBQzFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFkaEQsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFHNUUsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFMUIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFFekMsZUFBVSxHQUFtQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXhELGlCQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU94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RztJQUNILGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7cUhBMVFRLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkLCBJUGVwUXVlcnlTZWN0aW9uLCBJUGVwUXVlcnlJdGVtIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL2xlZ2FjeSc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcE91dHB1dFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9vdXRwdXQtcXVlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXItaXRlbS9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9maWVsZCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3R5cGUtbWFwJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmNvbnN0IE1BWF9TVFJVQ1RVUkVfREVQVEggPSAzO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlTdHJ1Y3R1cmVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vdXRwdXRRdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtPihudWxsKTtcblxuICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyRmllbGRzOiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+O1xuICAgIHByaXZhdGUgX3ZhcmlhYmxlRmllbGRzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIF9mb3JtOiBGb3JtR3JvdXA7XG4gICAgcHJpdmF0ZSBfbWF4U3RydWN0dXJlRGVwdGggPSBNQVhfU1RSVUNUVVJFX0RFUFRIO1xuXG4gICAgcHJpdmF0ZSBfY21wUmVmTWFwOiBNYXA8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgb3V0cHV0UXVlcnkkID0gdGhpcy5fb3V0cHV0UXVlcnkkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3Jlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgX291dHB1dFF1ZXJ5U2VydmljZTogUGVwT3V0cHV0UXVlcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9xdWVyeUJ1aWxkZXJTZXJ2aWNlOiBQZXBRdWVyeUJ1aWxkZXJTZXJ2aWNlKSB7XG5cbiAgICB9XG5cbiAgICBzZXQgbWF4RGVwdGgodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fbWF4U3RydWN0dXJlRGVwdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgbWF4RGVwdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aDtcbiAgICB9XG5cbiAgICBzZXQgZmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcbiAgICAgICAgdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMgPSB0aGlzLl9xdWVyeUJ1aWxkZXJTZXJ2aWNlLmNvbnZlcnRUb1NtYXJ0RmlsdGVyRmllbGRzKGxpc3QpO1xuICAgIH1cblxuICAgIGdldCBoYXNGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBzZXQgdmFyaWFibGVGaWVsZHMobGlzdDogQXJyYXk8SVBlcFF1ZXJ5QnVpbGRlckZpZWxkPikge1xuICAgICAgICBpZiAobGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTWFwcGVyID0gbmV3IFBlcFF1ZXJ5QnVpbGRlclR5cGVNYXAoKTtcbiAgICAgICAgICAgIGxpc3QuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRUeXBlID0gdGhpcy5jb252ZXJ0U21hcnRGaWx0ZXJDb21wb25lbnRUeXBlKHR5cGVNYXBwZXIuZ2V0U21hcnRGaWx0ZXJUeXBlKGZpZWxkLkZpZWxkVHlwZSkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHRoaXMuX3ZhcmlhYmxlRmllbGRzLCBmaWVsZFR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLl92YXJpYWJsZUZpZWxkc1tmaWVsZFR5cGVdLmluY2x1ZGVzKGZpZWxkLkZpZWxkSUQpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlRmllbGRzW2ZpZWxkVHlwZV0ucHVzaChmaWVsZC5GaWVsZElEKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlRmllbGRzW2ZpZWxkVHlwZV0gPSBbZmllbGQuRmllbGRJRF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jbXBSZWZNYXAuZm9yRWFjaCgodmFsdWU6IENvbXBvbmVudFJlZjxhbnk+LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXModmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHMpLmZvckVhY2goZnVuY3Rpb24oa2V5LCBpbmRleCl7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzW2tleV0pKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0IGZvcm0odmFsdWU6IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl9mb3JtID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGJ1aWxkcyBhIGR5bmFtaWMgVUkgcXVlcnkgc3RydWN0dXJlXG4gICAgICogbWlnaHQgaGFzIGEgZGlmZmVyZW50IHN0cnVjdHVyZSB0aGFuIHRoZSBxdWVyeSdzIGR1ZSB0byBwYXJlbnQtY2hpbGQgZWxlbWVudHMgbWVyZ2VcbiAgICAgKiBAcGFyYW0gcXVlcnkgbGVnYWN5IHF1ZXJ5ICAgICBcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHJlZmVyZW5jZSB0byByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICBidWlsZFF1ZXJ5U3RydWN0dXJlKFxuICAgICAgICBxdWVyeTogSVBlcFF1ZXJ5U2VjdGlvbiB8IElQZXBRdWVyeUl0ZW0sXG4gICAgICAgIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge1xuICAgICAgICAvLyBSZW1vdmUgYWxsIHRoZSBjb21wb25lbnRzIGZyb20gdGhlIHF1ZXJ5IGJ1aWxkZXIuXG4gICAgICAgIHRoaXMuX2NtcFJlZk1hcC5mb3JFYWNoKCh2YWx1ZTogQ29tcG9uZW50UmVmPGFueT4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHZhbHVlLmluc3RhbmNlLnJlbW92ZSgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluc3RhbmNlLnBhcmVudEZvcm0pIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5pbnN0YW5jZS5wYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuX2NtcFJlZk1hcC5kZWxldGUoa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBDbGVhciBjb250YWluZXJSZWZcbiAgICAgICAgY29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgLy91cGRhdGUgcm9vdCBvcGVyYXRvciAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHF1ZXJ5LCAnQ29tcGxleElkJykgJiZcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcbiAgICAgICAgICAgIHF1ZXJ5Lk9wZXJhdGlvbiAhPT0gdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnNldFZhbHVlKHF1ZXJ5Lk9wZXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGF0dGVuKHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnZhbHVlLCBxdWVyeSwgY29udGFpbmVyUmVmLCB0aGlzLl9mb3JtLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIFVJIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudE9wZXJhdG9yIHBhcmVudCBsZWdhY3kgY29tcGxleCBvcGVyYXRvclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGNoaWxkIGxlZ2FjeSBvYmplY3QgKGVpdGhlciBhbm90aGVyIGNvbXBsZXggb3IgZXhwcmVzc2lvbiB0eXBlKVxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnRPcGVyYXRvcjogc3RyaW5nLCBjdXJyZW50OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHBhcmVudE9wZXJhdG9yID09PSBjdXJyZW50Lk9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihjdXJyZW50Lk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZiwgcGFyZW50Rm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBvZiB0d28gb3IgbW9yZSBjaGlsZCBmaWx0ZXIgaXRlbXNcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlU2VjdGlvbihvcGVyYXRvcjogUGVwT3BlcmF0b3JUeXBlcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIC8vIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgLy8gICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG9wZXJhdG9yKVxuICAgICAgICAvLyB9KTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKG9wZXJhdG9yKVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnc2VjdGlvbicpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBzZWN0aW9uJHtjb3VudGVyfWA7XG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZXB0aCxcbiAgICAgICAgICAgIG1heDogdGhpcy5fbWF4U3RydWN0dXJlRGVwdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZVNlY3Rpb24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXAsIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlSXRlbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbXBSZWZNYXAuaGFzKGZvcm1LZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY21wUmVmTWFwLmRlbGV0ZShmb3JtS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVyYXRvckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhpcyB0byByZW1vdmUgYWxsIHRoZSBjb21wb25lbnRzIHdoZW4gZmllbGRzIGNoYW5nZXMuXG4gICAgICAgIHRoaXMuX2NtcFJlZk1hcC5zZXQoZm9ybUtleSwgY29tcG9uZW50UmVmKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgXG4gICAgICAgIGxldCBjb3VudGVyID0gMTtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyZW50Rm9ybS5jb250cm9scykuZm9yRWFjaChpdGVtID0+IHsgaWYgKGl0ZW0uaW5jbHVkZXMoJ2l0ZW0nKSkgeyBjb3VudGVyKys7IH0gfSk7XG4gICAgICAgIGNvbnN0IGZvcm1LZXkgPSBgaXRlbSR7Y291bnRlcn1gO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtS2V5ID0gZm9ybUtleTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpZWxkcyA9IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudmFyaWFibGVGaWVsZHMgPSB0aGlzLl92YXJpYWJsZUZpZWxkcztcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IHRoaXMuZ2V0U2VsZWN0ZWRGaWVsZChjdXJyZW50KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RlZCA9IHNlbGVjdGVkRmllbGQ7XG4gICAgICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWx0ZXIgPSB0aGlzLl9xdWVyeUJ1aWxkZXJTZXJ2aWNlLmdldEZpbHRlcihjdXJyZW50LCBzZWxlY3RlZEZpZWxkLnNtYXJ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFyZW50Rm9ybSA9IHBhcmVudEZvcm07XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWx0ZXJDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHBhcmVudEZvcm0ucmVtb3ZlQ29udHJvbChmb3JtS2V5KTtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fY21wUmVmTWFwLmhhcyhmb3JtS2V5KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NtcFJlZk1hcC5kZWxldGUoZm9ybUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGlzIHRvIHJlbW92ZSBhbGwgdGhlIGNvbXBvbmVudHMgd2hlbiBmaWVsZHMgY2hhbmdlcy5cbiAgICAgICAgdGhpcy5fY21wUmVmTWFwLnNldChmb3JtS2V5LCBjb21wb25lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBzbWFydCBmaWx0ZXIgZmllbGRcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgZmllbGQsIGlmIG5vdCBmb3VuZCByZXR1cm5zIHRoZSBmaXJzdCBmaWVsZFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRGaWVsZChjdXJyZW50OiBJUGVwUXVlcnlJdGVtKTogSVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyIHwgbnVsbCB7XG4gICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5zbWFydC5pZCA9PT0gY3VycmVudC5BcGlOYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtID8gaXRlbSA6IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0U21hcnRGaWx0ZXJDb21wb25lbnRUeXBlKHR5cGU6IHN0cmluZykge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ludCc6XG4gICAgICAgICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgICAgICBjYXNlICdyZWFsJzpcbiAgICAgICAgICAgIGNhc2UgJ3BlcmNlbnRhZ2UnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkYXRlJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgbGVnYWN5IG91dHB1dCBxdWVyeSBcbiAgICAgKi9cbiAgICBjcmVhdGVPdXRwdXRRdWVyeSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5fb3V0cHV0UXVlcnlTZXJ2aWNlLmdlbmVyYXRlUXVlcnkodGhpcy5fZm9ybS52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9vdXRwdXRRdWVyeSQubmV4dChxdWVyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iXX0=
@@ -2,15 +2,17 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/forms";
4
4
  import * as i2 from "../common/services/type-convertor.service";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@angular/flex-layout/flex";
7
- import * as i5 from "@pepperi-addons/ngx-lib/select";
8
- import * as i6 from "@pepperi-addons/ngx-lib/button";
9
- import * as i7 from "@pepperi-addons/ngx-lib/smart-filters";
5
+ import * as i3 from "../common/services/query-structure.service";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "@angular/flex-layout/flex";
8
+ import * as i6 from "@pepperi-addons/ngx-lib/select";
9
+ import * as i7 from "@pepperi-addons/ngx-lib/button";
10
+ import * as i8 from "@pepperi-addons/ngx-lib/smart-filters";
10
11
  export class PepQueryBuilderItemComponent {
11
- constructor(_fb, typeConvertorService) {
12
+ constructor(_fb, typeConvertorService, queryStructureService) {
12
13
  this._fb = _fb;
13
14
  this.typeConvertorService = typeConvertorService;
15
+ this.queryStructureService = queryStructureService;
14
16
  this._fields = [];
15
17
  this._options = [];
16
18
  this._selectedField = null;
@@ -48,7 +50,7 @@ export class PepQueryBuilderItemComponent {
48
50
  }
49
51
  }
50
52
  ngOnInit() {
51
- //
53
+ //this.variableFields = this.queryStructureService.variableFields;
52
54
  }
53
55
  get f() {
54
56
  return this.form.controls;
@@ -100,12 +102,12 @@ export class PepQueryBuilderItemComponent {
100
102
  this.remove.emit();
101
103
  }
102
104
  }
103
- PepQueryBuilderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderItemComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PepTypeConvertorService }], target: i0.ɵɵFactoryTarget.Component });
104
- PepQueryBuilderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderItemComponent, selector: "pep-query-builder-item", inputs: { formKey: "formKey", fields: "fields", selected: "selected", filter: "filter", parentForm: "parentForm", variableFields: "variableFields" }, outputs: { filterChange: "filterChange", remove: "remove" }, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.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: i4.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: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.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: i6.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i7.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i7.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i7.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i7.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i7.PepNumberFilterComponent, selector: "pep-number-filter" }] });
105
+ PepQueryBuilderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderItemComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PepTypeConvertorService }, { token: i3.PepQueryStructureService }], target: i0.ɵɵFactoryTarget.Component });
106
+ PepQueryBuilderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderItemComponent, selector: "pep-query-builder-item", inputs: { formKey: "formKey", fields: "fields", selected: "selected", filter: "filter", parentForm: "parentForm", variableFields: "variableFields" }, outputs: { filterChange: "filterChange", remove: "remove" }, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <!-- <ng-container *ngSwitchCase=\"'text'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container> -->\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.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: i5.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: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: 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.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i8.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i8.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i8.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i8.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i8.PepNumberFilterComponent, selector: "pep-number-filter" }] });
105
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderItemComponent, decorators: [{
106
108
  type: Component,
107
- args: [{ selector: 'pep-query-builder-item', template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"] }]
108
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PepTypeConvertorService }]; }, propDecorators: { formKey: [{
109
+ args: [{ selector: 'pep-query-builder-item', template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <!-- <ng-container *ngSwitchCase=\"'text'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container> -->\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"] }]
110
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PepTypeConvertorService }, { type: i3.PepQueryStructureService }]; }, propDecorators: { formKey: [{
109
111
  type: Input
110
112
  }], fields: [{
111
113
  type: Input
@@ -122,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
122
124
  }], remove: [{
123
125
  type: Output
124
126
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLWl0ZW0vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLWl0ZW0vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQWN2RSxNQUFNLE9BQU8sNEJBQTRCO0lBa0RyQyxZQUNZLEdBQWdCLEVBQ2pCLG9CQUE2QztRQUQ1QyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2pCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFsRHhELFlBQU8sR0FBMEMsRUFBRSxDQUFDO1FBQ3BELGFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBYTVCLG1CQUFjLEdBQTRCLElBQUksQ0FBQztRQXlCL0MsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFHekIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXhCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBbkRELElBQ0ksTUFBTSxDQUFDLElBQTJDO1FBQ2xELElBQUksSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixPQUFPO29C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Q0FBQztRQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3lIQXRIUSw0QkFBNEI7NkdBQTVCLDRCQUE0QixpUkNkekMscTNHQStDTTsyRkRqQ08sNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNJLHdCQUF3Qjt3SUFLekIsT0FBTztzQkFBZixLQUFLO2dCQUlGLE1BQU07c0JBRFQsS0FBSztnQkFjRixRQUFRO3NCQURYLEtBQUs7Z0JBU0YsTUFBTTtzQkFEVCxLQUFLO2dCQVFGLFVBQVU7c0JBRGIsS0FBSztnQkFTTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxNQUFNO2dCQUdQLE1BQU07c0JBREwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQsIElQZXBTbWFydEZpbHRlckZpZWxkIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5pbXBvcnQgeyBJUGVwU21hcnRGaWx0ZXJEYXRhIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5pbXBvcnQgeyBJUGVwT3B0aW9uIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwVHlwZUNvbnZlcnRvclNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvdHlwZS1jb252ZXJ0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXIgfSBmcm9tICcuLi9jb21tb24vbW9kZWwvZmllbGQnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLXF1ZXJ5LWJ1aWxkZXItaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGZvcm1LZXk6IHN0cmluZztcbiAgICBfZmllbGRzOiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+ID0gW107XG4gICAgX29wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+KSB7XG4gICAgICAgIGlmIChsaXN0Py5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9maWVsZHMgPSBsaXN0O1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGxpc3QubWFwKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IGZpZWxkLnNtYXJ0LmlkLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmllbGQuc21hcnQubmFtZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG4gICAgX3NlbGVjdGVkRmllbGQ6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZTogSVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWVsZCA9IHZhbHVlLnNtYXJ0O1xuICAgICAgICAgICAgdGhpcy5xdWVyeUZvcm0uZmllbGRUeXBlLnNldFZhbHVlKHZhbHVlLnF1ZXJ5LmZpZWxkVHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2ZpbHRlcjogSVBlcFNtYXJ0RmlsdGVyRGF0YTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWx0ZXIodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGEpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcGFyZW50Rm9ybTogRm9ybUdyb3VwO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHBhcmVudEZvcm0odmFsdWU6IEZvcm1Hcm91cCkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudEZvcm0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuYWRkVG9QYXJlbnRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgQElucHV0KCkgXG4gICAgdmFyaWFibGVGaWVsZHM6IGFueSA9IHt9O1xuXG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHB1YmxpYyB0eXBlQ29udmVydG9yU2VydmljZTogUGVwVHlwZUNvbnZlcnRvclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXR1cEZvcm0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICBnZXQgcXVlcnlGb3JtKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuZi5xdWVyeSBhcyBGb3JtR3JvdXApLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIHNldHVwRm9ybSgpIHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgc21hcnQ6IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBmaWVsZElkOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy5fZmIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5fZmIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvclVuaXQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICAgICAgdmFsdWVzOiB0aGlzLl9mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0OiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgICAgICAgICBzZWNvbmQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBxdWVyeTogdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy5fZmIuY29udHJvbChudWxsKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkVG9QYXJlbnRGb3JtKCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2wodGhpcy5mb3JtS2V5LCB0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIG9uRmllbGRDaGFuZ2VkKGtleSkge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fZmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuc21hcnQuaWQgPT09IGtleSk7XG5cbiAgICAgICAgdGhpcy5zZXR1cEZvcm0oKTtcbiAgICAgICAgdGhpcy5xdWVyeUZvcm0uZmllbGRUeXBlLnNldFZhbHVlKGl0ZW0ucXVlcnkuZmllbGRUeXBlKTtcbiAgICAgICAgdGhpcy5hZGRUb1BhcmVudEZvcm0oKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogaGFjayBkdWUgdG8gYW5ndWxhcidzIGNoYW5nZSBkZXRlY3Rpb24gYnVnIC1cbiAgICAgICAgICogRVJST1IgRXJyb3I6IFRoZXJlIGlzIG5vIEZvcm1Db250cm9sIGluc3RhbmNlIGF0dGFjaGVkIHRvIGZvcm0gY29udHJvbCBlbGVtZW50IHdpdGggbmFtZTogW2Zvcm1Db250cm9sTmFtZV1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmllbGQgPSBudWxsO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRmllbGQgPSBpdGVtID8gaXRlbS5zbWFydCA6IG51bGw7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJDaGFuZ2VkKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRlbGV0ZUl0ZW1DbGlja2VkKCkge1xuICAgICAgICB0aGlzLnJlbW92ZS5lbWl0KCk7XG4gICAgfVxuXG5cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiLjVyZW1cIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICA8cGVwLXNlbGVjdCBmeEZsZXg9XCIyNSVcIiBbdmFsdWVdPVwiX3NlbGVjdGVkRmllbGQ/LmlkXCIgeEFsaWdubWVudD1cImxlZnRcIiBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIiAodmFsdWVDaGFuZ2UpPVwib25GaWVsZENoYW5nZWQoJGV2ZW50KVwiPjwvcGVwLXNlbGVjdD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zZWxlY3RlZEZpZWxkPy5jb21wb25lbnRUeXBlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJfc2VsZWN0ZWRGaWVsZC5jb21wb25lbnRUeXBlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtdGV4dC1maWx0ZXIgZnhGbGV4PVwiYXV0b1wiIFtzaG93QWN0aW9uQnV0dG9uc109XCJmYWxzZVwiIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZF09XCJfc2VsZWN0ZWRGaWVsZFwiIFtmaWx0ZXJdPVwiX2ZpbHRlclwiIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZV09XCJ0cnVlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1ib29sZWFuLWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy5ib29sZWFuXCIgW2ZpZWxkXT1cIl9zZWxlY3RlZEZpZWxkXCIgW2ZpbHRlcl09XCJfZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIiBbaW5saW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidHlwZUNvbnZlcnRvclNlcnZpY2UuYm9vbGVhbnNcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1ib29sZWFuLWZpbHRlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1kYXRlLWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCIgW3Nob3dBZGRpdGlvbmFsT3BlcmF0b3JzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhYmxlRmllbGRdPVwidmFyaWFibGVGaWVsZHM/LmRhdGVcIiBbZmllbGRdPVwiX3NlbGVjdGVkRmllbGRcIiBbZmlsdGVyXT1cIl9maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEZvcm1dPVwiZi5zbWFydFwiIFtlbWl0T25DaGFuZ2VdPVwidHJ1ZVwiIFtpbmxpbmVdPVwidHJ1ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyQ2hhbmdlKT1cIm9uRmlsdGVyQ2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcGVwLWRhdGUtZmlsdGVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS1zZWxlY3QnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtbXVsdGktc2VsZWN0LWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy5bJ211bHRpLXNlbGVjdCddXCIgW2ZpZWxkXT1cIl9zZWxlY3RlZEZpZWxkXCIgW2ZpbHRlcl09XCJfZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIiBbaW5saW5lXT1cInRydWVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1tdWx0aS1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtbnVtYmVyLWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy5udW1iZXJcIiBbZmllbGRdPVwiX3NlbGVjdGVkRmllbGRcIiBbZmlsdGVyXT1cIl9maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEZvcm1dPVwiZi5zbWFydFwiIFtlbWl0T25DaGFuZ2VdPVwidHJ1ZVwiIFtpbmxpbmVdPVwidHJ1ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyQ2hhbmdlKT1cIm9uRmlsdGVyQ2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcGVwLW51bWJlci1maWx0ZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxwZXAtYnV0dG9uIHN0eWxlVHlwZT1cIndlYWtcIiBzdHlsZVN0YXRlVHlwZT1cInN5c3RlbV9iaW5cIiBzaXplVHlwZT1cIm1kXCIgY2xhc3NOYW1lcz1cIlwiIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiBpY29uUG9zaXRpb249XCJlbmRcIiBbdmlzaWJsZV09XCJ0cnVlXCIgKGJ1dHRvbkNsaWNrKT1cIm9uRGVsZXRlSXRlbUNsaWNrZWQoKVwiPlxuICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLWl0ZW0vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLWl0ZW0vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFjdkUsTUFBTSxPQUFPLDRCQUE0QjtJQWtEckMsWUFDWSxHQUFnQixFQUNqQixvQkFBNkMsRUFDNUMscUJBQStDO1FBRi9DLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDakIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQTBCO1FBbkQzRCxZQUFPLEdBQTBDLEVBQUUsQ0FBQztRQUNwRCxhQUFRLEdBQWlCLEVBQUUsQ0FBQztRQWE1QixtQkFBYyxHQUE0QixJQUFJLENBQUM7UUF5Qi9DLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBR3pCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQXBERCxJQUNJLE1BQU0sQ0FBQyxJQUEyQztRQUNsRCxJQUFJLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFB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LENBQUM7UUFFdkI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzt5SEF2SFEsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsaVJDZHpDLHkzSEFzRE07MkZEeENPLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDSSx3QkFBd0I7K0tBS3pCLE9BQU87c0JBQWYsS0FBSztnQkFJRixNQUFNO3NCQURULEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLE1BQU07c0JBRFQsS0FBSztnQkFRRixVQUFVO3NCQURiLEtBQUs7Z0JBU04sY0FBYztzQkFEYixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTTtnQkFHUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkLCBJUGVwU21hcnRGaWx0ZXJGaWVsZCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgSVBlcE9wdGlvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcFR5cGVDb252ZXJ0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL3R5cGUtY29udmVydG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyIH0gZnJvbSAnLi4vY29tbW9uL21vZGVsL2ZpZWxkJztcbmltcG9ydCB7IFBlcFF1ZXJ5U3RydWN0dXJlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9xdWVyeS1zdHJ1Y3R1cmUuc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtcXVlcnktYnVpbGRlci1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgZm9ybUtleTogc3RyaW5nO1xuICAgIF9maWVsZHM6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lcj4gPSBbXTtcbiAgICBfb3B0aW9uczogSVBlcE9wdGlvbltdID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lcj4pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpZWxkcyA9IGxpc3Q7XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gbGlzdC5tYXAoZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogZmllbGQuc21hcnQuaWQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC5zbWFydC5uYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2VsZWN0ZWRGaWVsZDogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNlbGVjdGVkKHZhbHVlOiBJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEZpZWxkID0gdmFsdWUuc21hcnQ7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5Rm9ybS5maWVsZFR5cGUuc2V0VmFsdWUodmFsdWUucXVlcnkuZmllbGRUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfZmlsdGVyOiBJUGVwU21hcnRGaWx0ZXJEYXRhO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcih2YWx1ZTogSVBlcFNtYXJ0RmlsdGVyRGF0YSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9wYXJlbnRGb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyZW50Rm9ybSh2YWx1ZTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcGFyZW50Rm9ybSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5hZGRUb1BhcmVudEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBASW5wdXQoKSBcbiAgICB2YXJpYWJsZUZpZWxkczogYW55ID0ge307XG5cbiAgICBAT3V0cHV0KClcbiAgICBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgZm9ybTogRm9ybUdyb3VwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHVibGljIHR5cGVDb252ZXJ0b3JTZXJ2aWNlOiBQZXBUeXBlQ29udmVydG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBxdWVyeVN0cnVjdHVyZVNlcnZpY2U6IFBlcFF1ZXJ5U3RydWN0dXJlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvL3RoaXMudmFyaWFibGVGaWVsZHMgPSB0aGlzLnF1ZXJ5U3RydWN0dXJlU2VydmljZS52YXJpYWJsZUZpZWxkcztcbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICBnZXQgcXVlcnlGb3JtKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuZi5xdWVyeSBhcyBGb3JtR3JvdXApLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIHNldHVwRm9ybSgpIHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgc21hcnQ6IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBmaWVsZElkOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy5fZmIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5fZmIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvclVuaXQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICAgICAgdmFsdWVzOiB0aGlzLl9mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0OiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgICAgICAgICBzZWNvbmQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBxdWVyeTogdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy5fZmIuY29udHJvbChudWxsKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkVG9QYXJlbnRGb3JtKCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2wodGhpcy5mb3JtS2V5LCB0aGlzLmZvcm0pO1xuICAgIH1cblxuICAgIG9uRmllbGRDaGFuZ2VkKGtleSkge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fZmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuc21hcnQuaWQgPT09IGtleSk7XG5cbiAgICAgICAgdGhpcy5zZXR1cEZvcm0oKTtcbiAgICAgICAgdGhpcy5xdWVyeUZvcm0uZmllbGRUeXBlLnNldFZhbHVlKGl0ZW0ucXVlcnkuZmllbGRUeXBlKTtcbiAgICAgICAgdGhpcy5hZGRUb1BhcmVudEZvcm0oKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogaGFjayBkdWUgdG8gYW5ndWxhcidzIGNoYW5nZSBkZXRlY3Rpb24gYnVnIC1cbiAgICAgICAgICogRVJST1IgRXJyb3I6IFRoZXJlIGlzIG5vIEZvcm1Db250cm9sIGluc3RhbmNlIGF0dGFjaGVkIHRvIGZvcm0gY29udHJvbCBlbGVtZW50IHdpdGggbmFtZTogW2Zvcm1Db250cm9sTmFtZV1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmllbGQgPSBudWxsO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRmllbGQgPSBpdGVtID8gaXRlbS5zbWFydCA6IG51bGw7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJDaGFuZ2VkKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRlbGV0ZUl0ZW1DbGlja2VkKCkge1xuICAgICAgICB0aGlzLnJlbW92ZS5lbWl0KCk7XG4gICAgfVxuXG5cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiLjVyZW1cIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICA8cGVwLXNlbGVjdCBmeEZsZXg9XCIyNSVcIiBbdmFsdWVdPVwiX3NlbGVjdGVkRmllbGQ/LmlkXCIgeEFsaWdubWVudD1cImxlZnRcIiBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIiAodmFsdWVDaGFuZ2UpPVwib25GaWVsZENoYW5nZWQoJGV2ZW50KVwiPjwvcGVwLXNlbGVjdD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zZWxlY3RlZEZpZWxkPy5jb21wb25lbnRUeXBlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJfc2VsZWN0ZWRGaWVsZC5jb21wb25lbnRUeXBlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtdGV4dC1maWx0ZXIgZnhGbGV4PVwiYXV0b1wiIFtzaG93QWN0aW9uQnV0dG9uc109XCJmYWxzZVwiIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZF09XCJfc2VsZWN0ZWRGaWVsZFwiIFtmaWx0ZXJdPVwiX2ZpbHRlclwiIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZV09XCJ0cnVlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCIgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1ib29sZWFuLWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy5ib29sZWFuXCIgW2ZpZWxkXT1cIl9zZWxlY3RlZEZpZWxkXCIgW2ZpbHRlcl09XCJfZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIiBbaW5saW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidHlwZUNvbnZlcnRvclNlcnZpY2UuYm9vbGVhbnNcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1ib29sZWFuLWZpbHRlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1kYXRlLWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCIgW3Nob3dBZGRpdGlvbmFsT3BlcmF0b3JzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhYmxlRmllbGRdPVwidmFyaWFibGVGaWVsZHM/LmRhdGVcIiBbZmllbGRdPVwiX3NlbGVjdGVkRmllbGRcIiBbZmlsdGVyXT1cIl9maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEZvcm1dPVwiZi5zbWFydFwiIFtlbWl0T25DaGFuZ2VdPVwidHJ1ZVwiIFtpbmxpbmVdPVwidHJ1ZVwiIFtyZW5kZXJUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyQ2hhbmdlKT1cIm9uRmlsdGVyQ2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvcGVwLWRhdGUtZmlsdGVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwZXAtbXVsdGktc2VsZWN0LWZpbHRlciBmeEZsZXg9XCJhdXRvXCIgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YXJpYWJsZUZpZWxkXT1cInZhcmlhYmxlRmllbGRzPy50ZXh0XCIgW2ZpZWxkXT1cIl9zZWxlY3RlZEZpZWxkXCIgW2ZpbHRlcl09XCJfZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIiBbaW5saW5lXT1cInRydWVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1tdWx0aS1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbXVsdGktc2VsZWN0J1wiPlxuICAgICAgICAgICAgICAgICAgICA8cGVwLW11bHRpLXNlbGVjdC1maWx0ZXIgZnhGbGV4PVwiYXV0b1wiIFtzaG93QWN0aW9uQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFyaWFibGVGaWVsZF09XCJ2YXJpYWJsZUZpZWxkcz8udGV4dFwiIFtmaWVsZF09XCJfc2VsZWN0ZWRGaWVsZFwiIFtmaWx0ZXJdPVwiX2ZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50Rm9ybV09XCJmLnNtYXJ0XCIgW2VtaXRPbkNoYW5nZV09XCJ0cnVlXCIgW2lubGluZV09XCJ0cnVlXCIgW3JlbmRlclRpdGxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXJDaGFuZ2UpPVwib25GaWx0ZXJDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9wZXAtbXVsdGktc2VsZWN0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8cGVwLW51bWJlci1maWx0ZXIgZnhGbGV4PVwiYXV0b1wiIFtzaG93QWN0aW9uQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFyaWFibGVGaWVsZF09XCJ2YXJpYWJsZUZpZWxkcz8ubnVtYmVyXCIgW2ZpZWxkXT1cIl9zZWxlY3RlZEZpZWxkXCIgW2ZpbHRlcl09XCJfZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGb3JtXT1cImYuc21hcnRcIiBbZW1pdE9uQ2hhbmdlXT1cInRydWVcIiBbaW5saW5lXT1cInRydWVcIiBbcmVuZGVyVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNoYW5nZSk9XCJvbkZpbHRlckNoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8cGVwLWJ1dHRvbiBzdHlsZVR5cGU9XCJ3ZWFrXCIgc3R5bGVTdGF0ZVR5cGU9XCJzeXN0ZW1cIiBzaXplVHlwZT1cIm1kXCIgY2xhc3NOYW1lcz1cIlwiIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiBpY29uUG9zaXRpb249XCJlbmRcIiBbdmlzaWJsZV09XCJ0cnVlXCIgKGJ1dHRvbkNsaWNrKT1cIm9uRGVsZXRlSXRlbUNsaWNrZWQoKVwiPlxuICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -46,10 +46,10 @@ export class PepQueryBuilderSectionComponent {
46
46
  }
47
47
  }
48
48
  PepQueryBuilderSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderSectionComponent, deps: [{ token: i1.PepTypeConvertorService }], target: i0.ɵɵFactoryTarget.Component });
49
- PepQueryBuilderSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderSectionComponent, selector: "pep-query-builder-section", inputs: { form: "form", depth: "depth", hasFields: "hasFields" }, outputs: { createSection: "createSection", createItem: "createItem", remove: "remove", operatorChange: "operatorChange" }, viewQueries: [{ propertyName: "sectionContainer", first: true, predicate: ["sectionContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }] });
49
+ PepQueryBuilderSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderSectionComponent, selector: "pep-query-builder-section", inputs: { form: "form", depth: "depth", hasFields: "hasFields" }, outputs: { createSection: "createSection", createItem: "createItem", remove: "remove", operatorChange: "operatorChange" }, viewQueries: [{ propertyName: "sectionContainer", first: true, predicate: ["sectionContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }] });
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderSectionComponent, decorators: [{
51
51
  type: Component,
52
- args: [{ selector: 'pep-query-builder-section', template: "<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"] }]
52
+ args: [{ selector: 'pep-query-builder-section', template: "<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{box-shadow:var(--pep-shadow-sm-offset, 0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.08);border:1px solid hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"] }]
53
53
  }], ctorParameters: function () { return [{ type: i1.PepTypeConvertorService }]; }, propDecorators: { form: [{
54
54
  type: Input
55
55
  }], depth: [{
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
68
68
  type: ViewChild,
69
69
  args: ['sectionContainer', { read: ViewContainerRef, static: true }]
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQWV2QixNQUFNLE9BQU8sK0JBQStCO0lBa0J4QyxZQUFvQixxQkFBOEM7UUFBOUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQWZ6RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRzFCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFPcEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBb0IsRUFBRSxFQUFFO1lBQ25GLE9BQU87Z0JBQ0gsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO2dCQUNqQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLFFBQVEsRUFBRSxDQUFDLEtBQTJCLEVBQUUsRUFBRSxDQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2FBQ3ZCLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSztRQUNuQixJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7NEhBekRRLCtCQUErQjtnSEFBL0IsK0JBQStCLCtWQWNELGdCQUFnQiwyQ0NwQzNELDBuREF1Qk07MkZERE8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNJLDJCQUEyQjs4R0FLNUIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdOLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxVQUFVO3NCQURULE1BQU07Z0JBR1AsTUFBTTtzQkFETCxNQUFNO2dCQUdQLGNBQWM7c0JBRGIsTUFBTTtnQkFHa0UsZ0JBQWdCO3NCQUF4RixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBJUGVwQnV0dG9uQ2xpY2tFdmVudCxcbiAgICBQZXBCdXR0b24sXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBJUGVwT3B0aW9uIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwVHlwZUNvbnZlcnRvclNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvdHlwZS1jb252ZXJ0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwUXVlcnlEZXB0aCB9IGZyb20gJy4uL2NvbW1vbi9tb2RlbC9zdHJ1Y3R1cmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1xdWVyeS1idWlsZGVyLXNlY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQuc2NzcycsICcuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQudGhlbWUuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KCkgZGVwdGg6IElQZXBRdWVyeURlcHRoO1xuICAgIEBJbnB1dCgpIGhhc0ZpZWxkcyA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjcmVhdGVTZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGNyZWF0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIG9wZXJhdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnc2VjdGlvbkNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHNlY3Rpb25Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICB0b2dnbGVCdXR0b25zOiBBcnJheTxQZXBCdXR0b24+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfdHlwZUNvbnZlcnRvclNlcnZpY2U6IFBlcFR5cGVDb252ZXJ0b3JTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE9wZXJhdG9ycygpO1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIGluaXRPcGVyYXRvcnMoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlQnV0dG9ucyA9IHRoaXMuX3R5cGVDb252ZXJ0b3JTZXJ2aWNlLm9wZXJhdG9ycy5tYXAoKG9wZXJhdG9yOiBJUGVwT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGtleTogb3BlcmF0b3Iua2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBvcGVyYXRvci52YWx1ZSxcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogKGV2ZW50OiBJUGVwQnV0dG9uQ2xpY2tFdmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk9wZXJhdG9yQ2hhbmdlZChldmVudClcbiAgICAgICAgICAgIH0gYXMgUGVwQnV0dG9uXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT3BlcmF0b3JDaGFuZ2VkKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudD8uc291cmNlPy5rZXkpIHtcbiAgICAgICAgICAgIHRoaXMuZi5vcGVyYXRvci5zZXRWYWx1ZShldmVudC5zb3VyY2Uua2V5KTtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JDaGFuZ2UuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BZGRSdWxlQ2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVJdGVtLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkFkZFJ1bGVTZXRDbGlja2VkKCkge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlY3Rpb24uZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRGVsZXRlU2VjdGlvbkNsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoKTtcbiAgICB9XG5cblxufVxuIiwiPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiLjVyZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicXVlcnktc2VjdGlvbi1jb250YWluZXJcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiLjVyZW1cIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8cGVwLWdyb3VwLWJ1dHRvbnMgW2J1dHRvbnNdPVwidG9nZ2xlQnV0dG9uc1wiIFtzZWxlY3RlZEJ1dHRvbktleV09XCJmLm9wZXJhdG9yPy52YWx1ZSB8fCAnJ1wiIHN0eWxlVHlwZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemVUeXBlPVwic21cIiBbdmlld1R5cGVdPVwiJ3RvZ2dsZSdcIiBbYnV0dG9uc0Rpc2FibGVkXT1cIiFoYXNGaWVsZHNcIj5cbiAgICAgICAgICAgIDwvcGVwLWdyb3VwLWJ1dHRvbnM+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIHZhbHVlPVwiQWRkIEZpbHRlclwiIHN0eWxlVHlwZT1cIndlYWtcIiBzdHlsZVN0YXRlVHlwZT1cInN5c3RlbVwiIHNpemVUeXBlPVwic21cIiBjbGFzc05hbWVzPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNGaWVsZHNcIiBpY29uTmFtZT1cIm51bWJlcl9wbHVzXCIgaWNvblBvc2l0aW9uPVwiZW5kXCIgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFkZFJ1bGVDbGlja2VkKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlcHRoLmN1cnJlbnQgPCBkZXB0aC5tYXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiB2YWx1ZT1cIkFkZCBGaWx0ZXIgR3JvdXBcIiBzdHlsZVR5cGU9XCJ3ZWFrXCIgc3R5bGVTdGF0ZVR5cGU9XCJzeXN0ZW1cIiBzaXplVHlwZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXM9XCJcIiBbZGlzYWJsZWRdPVwiIWhhc0ZpZWxkc1wiIGljb25OYW1lPVwibnVtYmVyX3BsdXNcIiBpY29uUG9zaXRpb249XCJlbmRcIiBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFkZFJ1bGVTZXRDbGlja2VkKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgI3NlY3Rpb25Db250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHBlcC1idXR0b24gKm5nSWY9XCJkZXB0aC5jdXJyZW50ID4gMFwiIHN0eWxlVHlwZT1cIndlYWtcIiBzdHlsZVN0YXRlVHlwZT1cInN5c3RlbV9iaW5cIiBzaXplVHlwZT1cIm1kXCIgY2xhc3NOYW1lcz1cIlwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiIGljb25OYW1lPVwic3lzdGVtX2JpblwiIGljb25Qb3NpdGlvbj1cImVuZFwiIFt2aXNpYmxlXT1cInRydWVcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25EZWxldGVTZWN0aW9uQ2xpY2tlZCgpXCI+XG4gICAgPC9wZXAtYnV0dG9uPlxuPC9kaXY+Il19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQWV2QixNQUFNLE9BQU8sK0JBQStCO0lBa0J4QyxZQUFvQixxQkFBOEM7UUFBOUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQWZ6RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRzFCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFPcEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBb0IsRUFBRSxFQUFFO1lBQ25GLE9BQU87Z0JBQ0gsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO2dCQUNqQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLFFBQVEsRUFBRSxDQUFDLEtBQTJCLEVBQUUsRUFBRSxDQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2FBQ3ZCLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSztRQUNuQixJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7NEhBekRRLCtCQUErQjtnSEFBL0IsK0JBQStCLCtWQWNELGdCQUFnQiwyQ0NwQzNELHNuREF1Qk07MkZERE8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNJLDJCQUEyQjs4R0FLNUIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdOLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxVQUFVO3NCQURULE1BQU07Z0JBR1AsTUFBTTtzQkFETCxNQUFNO2dCQUdQLGNBQWM7c0JBRGIsTUFBTTtnQkFHa0UsZ0JBQWdCO3NCQUF4RixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBJUGVwQnV0dG9uQ2xpY2tFdmVudCxcbiAgICBQZXBCdXR0b24sXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBJUGVwT3B0aW9uIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwVHlwZUNvbnZlcnRvclNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvdHlwZS1jb252ZXJ0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwUXVlcnlEZXB0aCB9IGZyb20gJy4uL2NvbW1vbi9tb2RlbC9zdHJ1Y3R1cmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1xdWVyeS1idWlsZGVyLXNlY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQuc2NzcycsICcuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQudGhlbWUuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG4gICAgQElucHV0KCkgZGVwdGg6IElQZXBRdWVyeURlcHRoO1xuICAgIEBJbnB1dCgpIGhhc0ZpZWxkcyA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjcmVhdGVTZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGNyZWF0ZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIG9wZXJhdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnc2VjdGlvbkNvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHNlY3Rpb25Db250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICB0b2dnbGVCdXR0b25zOiBBcnJheTxQZXBCdXR0b24+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfdHlwZUNvbnZlcnRvclNlcnZpY2U6IFBlcFR5cGVDb252ZXJ0b3JTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE9wZXJhdG9ycygpO1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIGluaXRPcGVyYXRvcnMoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlQnV0dG9ucyA9IHRoaXMuX3R5cGVDb252ZXJ0b3JTZXJ2aWNlLm9wZXJhdG9ycy5tYXAoKG9wZXJhdG9yOiBJUGVwT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGtleTogb3BlcmF0b3Iua2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBvcGVyYXRvci52YWx1ZSxcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogKGV2ZW50OiBJUGVwQnV0dG9uQ2xpY2tFdmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk9wZXJhdG9yQ2hhbmdlZChldmVudClcbiAgICAgICAgICAgIH0gYXMgUGVwQnV0dG9uXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uT3BlcmF0b3JDaGFuZ2VkKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudD8uc291cmNlPy5rZXkpIHtcbiAgICAgICAgICAgIHRoaXMuZi5vcGVyYXRvci5zZXRWYWx1ZShldmVudC5zb3VyY2Uua2V5KTtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JDaGFuZ2UuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BZGRSdWxlQ2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVJdGVtLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkFkZFJ1bGVTZXRDbGlja2VkKCkge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlY3Rpb24uZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRGVsZXRlU2VjdGlvbkNsaWNrZWQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlLmVtaXQoKTtcbiAgICB9XG5cblxufVxuIiwiPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiLjVyZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicXVlcnktc2VjdGlvbi1jb250YWluZXJcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiLjVyZW1cIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8cGVwLWdyb3VwLWJ1dHRvbnMgW2J1dHRvbnNdPVwidG9nZ2xlQnV0dG9uc1wiIFtzZWxlY3RlZEJ1dHRvbktleV09XCJmLm9wZXJhdG9yPy52YWx1ZSB8fCAnJ1wiIHN0eWxlVHlwZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemVUeXBlPVwic21cIiBbdmlld1R5cGVdPVwiJ3RvZ2dsZSdcIiBbYnV0dG9uc0Rpc2FibGVkXT1cIiFoYXNGaWVsZHNcIj5cbiAgICAgICAgICAgIDwvcGVwLWdyb3VwLWJ1dHRvbnM+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIHZhbHVlPVwiQWRkIEZpbHRlclwiIHN0eWxlVHlwZT1cIndlYWtcIiBzdHlsZVN0YXRlVHlwZT1cInN5c3RlbVwiIHNpemVUeXBlPVwic21cIiBjbGFzc05hbWVzPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNGaWVsZHNcIiBpY29uTmFtZT1cIm51bWJlcl9wbHVzXCIgaWNvblBvc2l0aW9uPVwiZW5kXCIgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFkZFJ1bGVDbGlja2VkKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlcHRoLmN1cnJlbnQgPCBkZXB0aC5tYXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiB2YWx1ZT1cIkFkZCBGaWx0ZXIgR3JvdXBcIiBzdHlsZVR5cGU9XCJ3ZWFrXCIgc3R5bGVTdGF0ZVR5cGU9XCJzeXN0ZW1cIiBzaXplVHlwZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZXM9XCJcIiBbZGlzYWJsZWRdPVwiIWhhc0ZpZWxkc1wiIGljb25OYW1lPVwibnVtYmVyX3BsdXNcIiBpY29uUG9zaXRpb249XCJlbmRcIiBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFkZFJ1bGVTZXRDbGlja2VkKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgI3NlY3Rpb25Db250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHBlcC1idXR0b24gKm5nSWY9XCJkZXB0aC5jdXJyZW50ID4gMFwiIHN0eWxlVHlwZT1cIndlYWtcIiBzdHlsZVN0YXRlVHlwZT1cInN5c3RlbVwiIHNpemVUeXBlPVwibWRcIiBjbGFzc05hbWVzPVwiXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCIgaWNvbk5hbWU9XCJzeXN0ZW1fYmluXCIgaWNvblBvc2l0aW9uPVwiZW5kXCIgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJvbkRlbGV0ZVNlY3Rpb25DbGlja2VkKClcIj5cbiAgICA8L3BlcC1idXR0b24+XG48L2Rpdj4iXX0=
@@ -9,10 +9,18 @@ import { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';
9
9
  import { PepQueryBuilderComponent } from './query-builder.component';
10
10
  import { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';
11
11
  import { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';
12
+ import { PepIconModule, pepIconSystemBin, } from '@pepperi-addons/ngx-lib/icon';
12
13
  import * as i0 from "@angular/core";
14
+ import * as i1 from "@pepperi-addons/ngx-lib/icon";
13
15
  export class PepQueryBuilderModule {
16
+ constructor(pepIconRegistry) {
17
+ this.pepIconRegistry = pepIconRegistry;
18
+ this.pepIconRegistry.registerIcons([
19
+ pepIconSystemBin,
20
+ ]);
21
+ }
14
22
  }
15
- PepQueryBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ PepQueryBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
16
24
  PepQueryBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, declarations: [PepQueryBuilderComponent,
17
25
  PepQueryBuilderSectionComponent,
18
26
  PepQueryBuilderItemComponent], imports: [CommonModule,
@@ -20,6 +28,7 @@ PepQueryBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
20
28
  FlexLayoutModule,
21
29
  PepSelectModule,
22
30
  PepButtonModule,
31
+ PepIconModule,
23
32
  PepGroupButtonsModule,
24
33
  PepSmartFiltersModule], exports: [PepQueryBuilderComponent] });
25
34
  PepQueryBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, providers: [
@@ -29,6 +38,7 @@ PepQueryBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
29
38
  FlexLayoutModule,
30
39
  PepSelectModule,
31
40
  PepButtonModule,
41
+ PepIconModule,
32
42
  PepGroupButtonsModule,
33
43
  PepSmartFiltersModule] });
34
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, decorators: [{
@@ -40,6 +50,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
40
50
  FlexLayoutModule,
41
51
  PepSelectModule,
42
52
  PepButtonModule,
53
+ PepIconModule,
43
54
  PepGroupButtonsModule,
44
55
  PepSmartFiltersModule
45
56
  ],
@@ -55,5 +66,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
55
66
  FormBuilder
56
67
  ]
57
68
  }]
58
- }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDMUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBeUJqRyxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBUjFCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsNEJBQTRCLGFBZDVCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLHFCQUFxQixhQUdyQix3QkFBd0I7bUhBV25CLHFCQUFxQixhQUpuQjtRQUNQLFdBQVc7S0FDZCxZQWxCRyxZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixxQkFBcUI7MkZBY2hCLHFCQUFxQjtrQkF0QmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3QjtxQkFDM0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiw0QkFBNEI7cUJBQy9CO29CQUNELFNBQVMsRUFBRTt3QkFDUCxXQUFXO3FCQUNkO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlcnNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcbmltcG9ydCB7IFBlcFNlbGVjdE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NlbGVjdCc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwR3JvdXBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZ3JvdXAtYnV0dG9ucyc7XG5cbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1pdGVtL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgICAgIFBlcFNlbGVjdE1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBHcm91cEJ1dHRvbnNNb2R1bGUsXG4gICAgICAgIFBlcFNtYXJ0RmlsdGVyc01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBQZXBRdWVyeUJ1aWxkZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBQZXBRdWVyeUJ1aWxkZXJDb21wb25lbnQsXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQsXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBGb3JtQnVpbGRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlCdWlsZGVyTW9kdWxlIHsgfVxuIl19
69
+ }], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDMUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFakcsT0FBTyxFQUNILGFBQWEsRUFFYixnQkFBZ0IsR0FDbkIsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBeUJ0QyxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztZQUMvQixnQkFBZ0I7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7a0hBTFEscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBUjFCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsNEJBQTRCLGFBZjVCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixlQUFlO1FBQ2YsYUFBYTtRQUNiLHFCQUFxQjtRQUNyQixxQkFBcUIsYUFHckIsd0JBQXdCO21IQVduQixxQkFBcUIsYUFKbkI7UUFDUCxXQUFXO0tBQ2QsWUFuQkcsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixhQUFhO1FBQ2IscUJBQXFCO1FBQ3JCLHFCQUFxQjsyRkFjaEIscUJBQXFCO2tCQXZCakMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx3QkFBd0I7cUJBQzNCO29CQUNELFlBQVksRUFBRTt3QkFDVix3QkFBd0I7d0JBQ3hCLCtCQUErQjt3QkFDL0IsNEJBQTRCO3FCQUMvQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsV0FBVztxQkFDZDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJzTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5pbXBvcnQgeyBQZXBTZWxlY3RNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWxlY3QnO1xuaW1wb3J0IHsgUGVwQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnV0dG9uJztcbmltcG9ydCB7IFBlcEdyb3VwQnV0dG9uc01vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2dyb3VwLWJ1dHRvbnMnO1xuXG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXItaXRlbS9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uU3lzdGVtQmluLFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgRmxleExheW91dE1vZHVsZSxcbiAgICAgICAgUGVwU2VsZWN0TW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFBlcEljb25Nb2R1bGUsXG4gICAgICAgIFBlcEdyb3VwQnV0dG9uc01vZHVsZSxcbiAgICAgICAgUGVwU21hcnRGaWx0ZXJzTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudCxcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEZvcm1CdWlsZGVyXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJNb2R1bGUgeyBcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMoW1xuICAgICAgICAgICAgcGVwSWNvblN5c3RlbUJpbixcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19