@clr/angular 13.0.1 → 13.1.0

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 (590) hide show
  1. package/README.md +0 -12
  2. package/button/button-group/button-group.d.ts +5 -3
  3. package/clarity.api.md +5553 -0
  4. package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +11 -3
  5. package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +9 -3
  6. package/data/datagrid/datagrid-column-toggle.d.ts +7 -3
  7. package/data/datagrid/datagrid-column.d.ts +10 -1
  8. package/data/datagrid/datagrid-footer.d.ts +3 -1
  9. package/data/datagrid/datagrid-row.d.ts +4 -1
  10. package/data/datagrid/render/main-renderer.d.ts +3 -2
  11. package/data/stack-view/stack-block.d.ts +12 -1
  12. package/data/stack-view/stack-control.d.ts +7 -2
  13. package/data/stack-view/stack-view-custom-tags.d.ts +13 -1
  14. package/data/stack-view/stack-view.module.d.ts +1 -1
  15. package/data/tree-view/tree-node.d.ts +3 -0
  16. package/esm2020/accordion/accordion-content.mjs +5 -5
  17. package/esm2020/accordion/accordion-description.mjs +5 -5
  18. package/esm2020/accordion/accordion-panel.mjs +6 -6
  19. package/esm2020/accordion/accordion-title.mjs +5 -5
  20. package/esm2020/accordion/accordion.mjs +5 -5
  21. package/esm2020/accordion/accordion.module.mjs +6 -6
  22. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +5 -5
  23. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +5 -5
  24. package/esm2020/accordion/enums/accordion-status.enum.mjs +2 -2
  25. package/esm2020/accordion/enums/accordion-strategy.enum.mjs +2 -2
  26. package/esm2020/accordion/index.mjs +2 -2
  27. package/esm2020/accordion/models/accordion.model.mjs +2 -2
  28. package/esm2020/accordion/providers/accordion.service.mjs +5 -5
  29. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +5 -5
  30. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +5 -5
  31. package/esm2020/accordion/stepper/index.mjs +2 -2
  32. package/esm2020/accordion/stepper/models/stepper.model.mjs +2 -2
  33. package/esm2020/accordion/stepper/providers/stepper.service.mjs +5 -5
  34. package/esm2020/accordion/stepper/step-button.mjs +5 -5
  35. package/esm2020/accordion/stepper/stepper-panel.mjs +6 -6
  36. package/esm2020/accordion/stepper/stepper.mjs +5 -5
  37. package/esm2020/accordion/stepper/stepper.module.mjs +6 -6
  38. package/esm2020/accordion/utils/animation.mjs +2 -2
  39. package/esm2020/button/button-group/button-group.mjs +20 -14
  40. package/esm2020/button/button-group/button-group.module.mjs +6 -6
  41. package/esm2020/button/button-group/button.mjs +5 -5
  42. package/esm2020/button/button-group/index.mjs +2 -2
  43. package/esm2020/button/button-loading/index.mjs +2 -2
  44. package/esm2020/button/button-loading/loading-button.mjs +3 -3
  45. package/esm2020/button/button-loading/loading-button.module.mjs +6 -6
  46. package/esm2020/button/button.module.mjs +6 -6
  47. package/esm2020/button/index.mjs +2 -2
  48. package/esm2020/button/providers/button-in-group.service.mjs +5 -5
  49. package/esm2020/clr-angular.module.mjs +6 -6
  50. package/esm2020/data/data.module.mjs +6 -6
  51. package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +6 -1
  52. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +2 -2
  53. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +39 -18
  54. package/esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs +6 -1
  55. package/esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs +6 -1
  56. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +2 -2
  57. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +29 -13
  58. package/esm2020/data/datagrid/built-in/nested-property.mjs +2 -2
  59. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +5 -5
  60. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +5 -5
  61. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +5 -5
  62. package/esm2020/data/datagrid/datagrid-action-bar.mjs +5 -5
  63. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +5 -5
  64. package/esm2020/data/datagrid/datagrid-cell.mjs +5 -5
  65. package/esm2020/data/datagrid/datagrid-column-separator.mjs +5 -5
  66. package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +5 -5
  67. package/esm2020/data/datagrid/datagrid-column-toggle-title.mjs +5 -5
  68. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +39 -27
  69. package/esm2020/data/datagrid/datagrid-column.mjs +31 -6
  70. package/esm2020/data/datagrid/datagrid-detail-body.mjs +5 -5
  71. package/esm2020/data/datagrid/datagrid-detail-header.mjs +5 -5
  72. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +5 -5
  73. package/esm2020/data/datagrid/datagrid-detail.mjs +5 -5
  74. package/esm2020/data/datagrid/datagrid-filter.mjs +5 -5
  75. package/esm2020/data/datagrid/datagrid-footer.mjs +17 -13
  76. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +5 -5
  77. package/esm2020/data/datagrid/datagrid-if-detail.mjs +5 -5
  78. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +5 -5
  79. package/esm2020/data/datagrid/datagrid-items-trackby.mjs +5 -5
  80. package/esm2020/data/datagrid/datagrid-items.mjs +5 -5
  81. package/esm2020/data/datagrid/datagrid-page-size.mjs +5 -5
  82. package/esm2020/data/datagrid/datagrid-pagination.mjs +17 -5
  83. package/esm2020/data/datagrid/datagrid-placeholder.mjs +5 -5
  84. package/esm2020/data/datagrid/datagrid-row-detail.mjs +14 -9
  85. package/esm2020/data/datagrid/datagrid-row.mjs +16 -7
  86. package/esm2020/data/datagrid/datagrid.mjs +5 -5
  87. package/esm2020/data/datagrid/datagrid.module.mjs +6 -6
  88. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +2 -2
  89. package/esm2020/data/datagrid/enums/display-mode.enum.mjs +2 -2
  90. package/esm2020/data/datagrid/enums/render-step.enum.mjs +2 -2
  91. package/esm2020/data/datagrid/enums/selection-type.mjs +2 -2
  92. package/esm2020/data/datagrid/enums/sort-order.enum.mjs +2 -2
  93. package/esm2020/data/datagrid/index.mjs +2 -2
  94. package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +6 -1
  95. package/esm2020/data/datagrid/interfaces/comparator.interface.mjs +6 -1
  96. package/esm2020/data/datagrid/interfaces/filter.interface.mjs +6 -1
  97. package/esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs +6 -1
  98. package/esm2020/data/datagrid/interfaces/state.interface.mjs +6 -1
  99. package/esm2020/data/datagrid/interfaces/string-filter.interface.mjs +6 -1
  100. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +5 -5
  101. package/esm2020/data/datagrid/providers/column-state.provider.mjs +2 -2
  102. package/esm2020/data/datagrid/providers/columns.service.mjs +5 -5
  103. package/esm2020/data/datagrid/providers/custom-filter.mjs +2 -2
  104. package/esm2020/data/datagrid/providers/detail.service.mjs +5 -5
  105. package/esm2020/data/datagrid/providers/display-mode.service.mjs +5 -5
  106. package/esm2020/data/datagrid/providers/filters.mjs +5 -5
  107. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +5 -5
  108. package/esm2020/data/datagrid/providers/items.mjs +5 -5
  109. package/esm2020/data/datagrid/providers/page.mjs +5 -5
  110. package/esm2020/data/datagrid/providers/row-action-service.mjs +5 -5
  111. package/esm2020/data/datagrid/providers/selection.mjs +5 -5
  112. package/esm2020/data/datagrid/providers/sort.mjs +5 -5
  113. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +5 -5
  114. package/esm2020/data/datagrid/providers/state.provider.mjs +5 -5
  115. package/esm2020/data/datagrid/providers/table-size.service.mjs +5 -5
  116. package/esm2020/data/datagrid/render/cell-renderer.mjs +5 -5
  117. package/esm2020/data/datagrid/render/constants.mjs +2 -2
  118. package/esm2020/data/datagrid/render/header-renderer.mjs +5 -5
  119. package/esm2020/data/datagrid/render/main-renderer.mjs +12 -9
  120. package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +5 -5
  121. package/esm2020/data/datagrid/render/render-organizer.mjs +5 -5
  122. package/esm2020/data/datagrid/render/row-renderer.mjs +5 -5
  123. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +5 -5
  124. package/esm2020/data/datagrid/wrapped-cell.mjs +5 -5
  125. package/esm2020/data/datagrid/wrapped-column.mjs +5 -5
  126. package/esm2020/data/datagrid/wrapped-row.mjs +5 -5
  127. package/esm2020/data/index.mjs +2 -2
  128. package/esm2020/data/stack-view/index.mjs +2 -2
  129. package/esm2020/data/stack-view/stack-block.mjs +40 -17
  130. package/esm2020/data/stack-view/stack-content-input.mjs +5 -5
  131. package/esm2020/data/stack-view/stack-control.mjs +14 -4
  132. package/esm2020/data/stack-view/stack-header.mjs +5 -5
  133. package/esm2020/data/stack-view/stack-input.mjs +5 -5
  134. package/esm2020/data/stack-view/stack-select.mjs +5 -5
  135. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +50 -7
  136. package/esm2020/data/stack-view/stack-view.mjs +5 -5
  137. package/esm2020/data/stack-view/stack-view.module.mjs +10 -7
  138. package/esm2020/data/tree-view/index.mjs +2 -2
  139. package/esm2020/data/tree-view/models/async-array.mjs +2 -2
  140. package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +2 -2
  141. package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +2 -2
  142. package/esm2020/data/tree-view/models/selected-state.enum.mjs +2 -2
  143. package/esm2020/data/tree-view/models/tree-node.model.mjs +2 -2
  144. package/esm2020/data/tree-view/recursive-children.mjs +5 -5
  145. package/esm2020/data/tree-view/recursive-for-of.mjs +5 -5
  146. package/esm2020/data/tree-view/tree-features.service.mjs +5 -5
  147. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +5 -5
  148. package/esm2020/data/tree-view/tree-node-link.mjs +5 -5
  149. package/esm2020/data/tree-view/tree-node.mjs +32 -14
  150. package/esm2020/data/tree-view/tree-view.module.mjs +6 -6
  151. package/esm2020/data/tree-view/tree.mjs +5 -5
  152. package/esm2020/emphasis/alert/alert-item.mjs +9 -7
  153. package/esm2020/emphasis/alert/alert-text.mjs +5 -5
  154. package/esm2020/emphasis/alert/alert.mjs +4 -4
  155. package/esm2020/emphasis/alert/alert.module.mjs +6 -6
  156. package/esm2020/emphasis/alert/alerts-pager.mjs +5 -5
  157. package/esm2020/emphasis/alert/alerts.mjs +5 -5
  158. package/esm2020/emphasis/alert/index.mjs +2 -2
  159. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +5 -5
  160. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +4 -4
  161. package/esm2020/emphasis/alert/utils/alert-info-object.mjs +2 -2
  162. package/esm2020/emphasis/alert/utils/alert-types.mjs +2 -2
  163. package/esm2020/emphasis/emphasis.module.mjs +6 -6
  164. package/esm2020/emphasis/index.mjs +2 -2
  165. package/esm2020/forms/checkbox/checkbox-container.mjs +6 -6
  166. package/esm2020/forms/checkbox/checkbox-wrapper.mjs +6 -6
  167. package/esm2020/forms/checkbox/checkbox.mjs +6 -6
  168. package/esm2020/forms/checkbox/checkbox.module.mjs +7 -7
  169. package/esm2020/forms/checkbox/index.mjs +2 -2
  170. package/esm2020/forms/combobox/combobox-container.mjs +6 -6
  171. package/esm2020/forms/combobox/combobox.mjs +6 -9
  172. package/esm2020/forms/combobox/combobox.module.mjs +7 -7
  173. package/esm2020/forms/combobox/index.mjs +2 -2
  174. package/esm2020/forms/combobox/model/combobox.model.mjs +3 -3
  175. package/esm2020/forms/combobox/model/multi-select-combobox.model.mjs +3 -3
  176. package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +3 -3
  177. package/esm2020/forms/combobox/model/single-select-combobox.model.mjs +3 -3
  178. package/esm2020/forms/combobox/option-items.directive.mjs +5 -5
  179. package/esm2020/forms/combobox/option-selected.directive.mjs +5 -5
  180. package/esm2020/forms/combobox/option.mjs +6 -6
  181. package/esm2020/forms/combobox/options.mjs +6 -6
  182. package/esm2020/forms/combobox/providers/combobox-container.service.mjs +5 -5
  183. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +5 -5
  184. package/esm2020/forms/combobox/providers/option-selection.service.mjs +5 -5
  185. package/esm2020/forms/common/abstract-container.mjs +6 -6
  186. package/esm2020/forms/common/abstract-control.mjs +6 -6
  187. package/esm2020/forms/common/common.module.mjs +7 -7
  188. package/esm2020/forms/common/control-container.mjs +6 -6
  189. package/esm2020/forms/common/control.mjs +5 -5
  190. package/esm2020/forms/common/error.mjs +6 -6
  191. package/esm2020/forms/common/form.mjs +6 -6
  192. package/esm2020/forms/common/helper.mjs +6 -6
  193. package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +5 -5
  194. package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +5 -5
  195. package/esm2020/forms/common/if-control-state/if-error.mjs +5 -5
  196. package/esm2020/forms/common/if-control-state/if-success.mjs +5 -5
  197. package/esm2020/forms/common/index.mjs +2 -2
  198. package/esm2020/forms/common/label.mjs +5 -5
  199. package/esm2020/forms/common/layout.mjs +6 -6
  200. package/esm2020/forms/common/providers/container-id.service.mjs +9 -4
  201. package/esm2020/forms/common/providers/control-class.service.mjs +5 -5
  202. package/esm2020/forms/common/providers/control-id.service.mjs +5 -5
  203. package/esm2020/forms/common/providers/focus.service.mjs +5 -5
  204. package/esm2020/forms/common/providers/layout.service.mjs +5 -5
  205. package/esm2020/forms/common/providers/mark-control.service.mjs +5 -5
  206. package/esm2020/forms/common/providers/ng-control.service.mjs +5 -5
  207. package/esm2020/forms/common/success.mjs +6 -6
  208. package/esm2020/forms/common/wrapped-control.mjs +6 -6
  209. package/esm2020/forms/datalist/datalist-container.mjs +6 -6
  210. package/esm2020/forms/datalist/datalist-input.mjs +6 -6
  211. package/esm2020/forms/datalist/datalist.mjs +5 -5
  212. package/esm2020/forms/datalist/datalist.module.mjs +6 -6
  213. package/esm2020/forms/datalist/index.mjs +2 -2
  214. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +5 -5
  215. package/esm2020/forms/datepicker/calendar.mjs +5 -5
  216. package/esm2020/forms/datepicker/date-container.mjs +55 -28
  217. package/esm2020/forms/datepicker/date-input.mjs +5 -5
  218. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +16 -12
  219. package/esm2020/forms/datepicker/datepicker.module.mjs +6 -6
  220. package/esm2020/forms/datepicker/day.mjs +7 -5
  221. package/esm2020/forms/datepicker/daypicker.mjs +5 -5
  222. package/esm2020/forms/datepicker/index.mjs +2 -2
  223. package/esm2020/forms/datepicker/interfaces/date-range.interface.mjs +2 -2
  224. package/esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs +2 -2
  225. package/esm2020/forms/datepicker/model/calendar-view.model.mjs +2 -2
  226. package/esm2020/forms/datepicker/model/calendar.model.mjs +2 -2
  227. package/esm2020/forms/datepicker/model/day-view.model.mjs +2 -2
  228. package/esm2020/forms/datepicker/model/day.model.mjs +2 -2
  229. package/esm2020/forms/datepicker/model/year-range.model.mjs +2 -2
  230. package/esm2020/forms/datepicker/monthpicker.mjs +5 -5
  231. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +5 -5
  232. package/esm2020/forms/datepicker/providers/date-io.service.mjs +5 -5
  233. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +5 -5
  234. package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +5 -5
  235. package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +5 -5
  236. package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +5 -5
  237. package/esm2020/forms/datepicker/providers/view-manager.service.mjs +5 -5
  238. package/esm2020/forms/datepicker/utils/constants.mjs +2 -2
  239. package/esm2020/forms/datepicker/utils/date-utils.mjs +2 -2
  240. package/esm2020/forms/datepicker/yearpicker.mjs +5 -5
  241. package/esm2020/forms/forms.module.mjs +6 -6
  242. package/esm2020/forms/index.mjs +2 -2
  243. package/esm2020/forms/input/index.mjs +2 -2
  244. package/esm2020/forms/input/input-container.mjs +6 -6
  245. package/esm2020/forms/input/input.mjs +6 -6
  246. package/esm2020/forms/input/input.module.mjs +7 -7
  247. package/esm2020/forms/password/index.mjs +2 -2
  248. package/esm2020/forms/password/password-container.mjs +12 -6
  249. package/esm2020/forms/password/password.mjs +6 -6
  250. package/esm2020/forms/password/password.module.mjs +7 -7
  251. package/esm2020/forms/radio/index.mjs +2 -2
  252. package/esm2020/forms/radio/radio-container.mjs +6 -6
  253. package/esm2020/forms/radio/radio-wrapper.mjs +6 -6
  254. package/esm2020/forms/radio/radio.mjs +6 -6
  255. package/esm2020/forms/radio/radio.module.mjs +7 -7
  256. package/esm2020/forms/range/index.mjs +2 -2
  257. package/esm2020/forms/range/range-container.mjs +6 -6
  258. package/esm2020/forms/range/range.mjs +6 -6
  259. package/esm2020/forms/range/range.module.mjs +7 -7
  260. package/esm2020/forms/select/index.mjs +2 -2
  261. package/esm2020/forms/select/select-container.mjs +6 -6
  262. package/esm2020/forms/select/select.mjs +6 -6
  263. package/esm2020/forms/select/select.module.mjs +7 -7
  264. package/esm2020/forms/textarea/index.mjs +2 -2
  265. package/esm2020/forms/textarea/textarea-container.mjs +6 -6
  266. package/esm2020/forms/textarea/textarea.mjs +6 -6
  267. package/esm2020/forms/textarea/textarea.module.mjs +7 -7
  268. package/esm2020/icon/icon.mjs +8 -8
  269. package/esm2020/icon/icon.module.mjs +6 -6
  270. package/esm2020/icon/index.mjs +2 -2
  271. package/esm2020/index.mjs +2 -2
  272. package/esm2020/layout/index.mjs +2 -2
  273. package/esm2020/layout/layout.module.mjs +6 -6
  274. package/esm2020/layout/main-container/index.mjs +2 -2
  275. package/esm2020/layout/main-container/main-container.mjs +5 -5
  276. package/esm2020/layout/main-container/main-container.module.mjs +6 -6
  277. package/esm2020/layout/nav/chocolate/index.mjs +2 -2
  278. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +5 -5
  279. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +5 -5
  280. package/esm2020/layout/nav/header.mjs +55 -24
  281. package/esm2020/layout/nav/index.mjs +2 -2
  282. package/esm2020/layout/nav/nav-level.mjs +111 -9
  283. package/esm2020/layout/nav/navigation.module.mjs +6 -6
  284. package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +5 -5
  285. package/esm2020/layout/nav/responsive-nav-codes.mjs +2 -2
  286. package/esm2020/layout/nav/responsive-nav-control-message.mjs +2 -2
  287. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +5 -5
  288. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +5 -5
  289. package/esm2020/layout/tabs/enums/tabs-layout.enum.mjs +2 -2
  290. package/esm2020/layout/tabs/index.mjs +2 -2
  291. package/esm2020/layout/tabs/providers/tabs.service.mjs +5 -5
  292. package/esm2020/layout/tabs/tab-content.mjs +5 -7
  293. package/esm2020/layout/tabs/tab-link.directive.mjs +5 -6
  294. package/esm2020/layout/tabs/tab-overflow-content.mjs +5 -5
  295. package/esm2020/layout/tabs/tab.mjs +5 -5
  296. package/esm2020/layout/tabs/tabs-id.provider.mjs +2 -2
  297. package/esm2020/layout/tabs/tabs.mjs +5 -5
  298. package/esm2020/layout/tabs/tabs.module.mjs +6 -6
  299. package/esm2020/layout/vertical-nav/index.mjs +2 -2
  300. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +5 -5
  301. package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +5 -5
  302. package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +5 -5
  303. package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +5 -5
  304. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +5 -5
  305. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +10 -6
  306. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +5 -5
  307. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +27 -17
  308. package/esm2020/layout/vertical-nav/vertical-nav.mjs +5 -5
  309. package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +6 -6
  310. package/esm2020/modal/index.mjs +2 -2
  311. package/esm2020/modal/modal-body.mjs +8 -5
  312. package/esm2020/modal/modal.mjs +11 -7
  313. package/esm2020/modal/modal.module.mjs +6 -6
  314. package/esm2020/popover/common/abstract-popover.mjs +18 -9
  315. package/esm2020/popover/common/popover-host-anchor.token.mjs +2 -2
  316. package/esm2020/popover/common/popover-options.interface.mjs +2 -2
  317. package/esm2020/popover/common/popover.mjs +2 -2
  318. package/esm2020/popover/dropdown/dropdown-item.mjs +5 -5
  319. package/esm2020/popover/dropdown/dropdown-menu.mjs +5 -5
  320. package/esm2020/popover/dropdown/dropdown-trigger.mjs +5 -5
  321. package/esm2020/popover/dropdown/dropdown.mjs +5 -5
  322. package/esm2020/popover/dropdown/dropdown.module.mjs +6 -6
  323. package/esm2020/popover/dropdown/index.mjs +2 -2
  324. package/esm2020/popover/dropdown/menu-positions.mjs +2 -2
  325. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +9 -7
  326. package/esm2020/popover/dropdown/providers/dropdown.service.mjs +5 -5
  327. package/esm2020/popover/index.mjs +2 -2
  328. package/esm2020/popover/popover.module.mjs +6 -6
  329. package/esm2020/popover/signpost/index.mjs +2 -2
  330. package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +5 -5
  331. package/esm2020/popover/signpost/providers/signpost-id.service.mjs +5 -6
  332. package/esm2020/popover/signpost/signpost-content.mjs +6 -5
  333. package/esm2020/popover/signpost/signpost-positions.mjs +2 -2
  334. package/esm2020/popover/signpost/signpost-trigger.mjs +5 -5
  335. package/esm2020/popover/signpost/signpost.mjs +5 -5
  336. package/esm2020/popover/signpost/signpost.module.mjs +6 -6
  337. package/esm2020/popover/tooltip/index.mjs +2 -2
  338. package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +5 -5
  339. package/esm2020/popover/tooltip/tooltip-content.mjs +5 -5
  340. package/esm2020/popover/tooltip/tooltip-trigger.mjs +5 -5
  341. package/esm2020/popover/tooltip/tooltip.mjs +5 -5
  342. package/esm2020/popover/tooltip/tooltip.module.mjs +6 -6
  343. package/esm2020/progress/progress-bars/index.mjs +2 -2
  344. package/esm2020/progress/progress-bars/progress-bar.mjs +5 -5
  345. package/esm2020/progress/progress-bars/progress-bar.module.mjs +6 -6
  346. package/esm2020/progress/spinner/index.mjs +2 -2
  347. package/esm2020/progress/spinner/spinner.mjs +5 -5
  348. package/esm2020/progress/spinner/spinner.module.mjs +6 -6
  349. package/esm2020/public-api.mjs +2 -2
  350. package/esm2020/timeline/enums/timeline-layout.enum.mjs +2 -2
  351. package/esm2020/timeline/enums/timeline-step-state.enum.mjs +2 -2
  352. package/esm2020/timeline/index.mjs +2 -2
  353. package/esm2020/timeline/interface/icon-attribute.interface.mjs +2 -2
  354. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +5 -5
  355. package/esm2020/timeline/timeline-step-description.mjs +5 -5
  356. package/esm2020/timeline/timeline-step-header.mjs +5 -5
  357. package/esm2020/timeline/timeline-step-title.mjs +5 -5
  358. package/esm2020/timeline/timeline-step.mjs +7 -19
  359. package/esm2020/timeline/timeline.mjs +5 -5
  360. package/esm2020/timeline/timeline.module.mjs +6 -6
  361. package/esm2020/utils/a11y/aria-live.service.mjs +5 -5
  362. package/esm2020/utils/a11y/index.mjs +2 -2
  363. package/esm2020/utils/animations/collapse/collapse.mjs +2 -2
  364. package/esm2020/utils/animations/collapse/index.mjs +2 -2
  365. package/esm2020/utils/animations/constants.mjs +2 -2
  366. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +5 -5
  367. package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +6 -6
  368. package/esm2020/utils/animations/expandable-animation/index.mjs +6 -1
  369. package/esm2020/utils/animations/fade/fade.mjs +2 -2
  370. package/esm2020/utils/animations/fade/index.mjs +2 -2
  371. package/esm2020/utils/animations/fade-slide/fade-slide.mjs +2 -2
  372. package/esm2020/utils/animations/fade-slide/index.mjs +2 -2
  373. package/esm2020/utils/animations/index.mjs +2 -2
  374. package/esm2020/utils/animations/slide/index.mjs +2 -2
  375. package/esm2020/utils/animations/slide/slide.mjs +2 -2
  376. package/esm2020/utils/aria/aria.service.mjs +5 -5
  377. package/esm2020/utils/breakpoints/breakpoints.mjs +16 -2
  378. package/esm2020/utils/chocolate/oompa-loompa.mjs +5 -5
  379. package/esm2020/utils/chocolate/willy-wonka.mjs +5 -5
  380. package/esm2020/utils/component/is-boolean-attribute-set.mjs +2 -2
  381. package/esm2020/utils/conditional/conditional.module.mjs +6 -6
  382. package/esm2020/utils/conditional/if-active.directive.mjs +5 -5
  383. package/esm2020/utils/conditional/if-active.service.mjs +5 -5
  384. package/esm2020/utils/conditional/if-expanded.directive.mjs +5 -5
  385. package/esm2020/utils/conditional/if-expanded.service.mjs +5 -5
  386. package/esm2020/utils/conditional/if-open.directive.mjs +5 -5
  387. package/esm2020/utils/conditional/index.mjs +2 -2
  388. package/esm2020/utils/destroy/destroy.service.mjs +44 -0
  389. package/esm2020/utils/destroy/index.mjs +7 -0
  390. package/esm2020/utils/dom-adapter/dom-adapter.mjs +5 -5
  391. package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +6 -6
  392. package/esm2020/utils/drag-and-drop/drag-event.mjs +6 -1
  393. package/esm2020/utils/drag-and-drop/drag-handle.mjs +5 -5
  394. package/esm2020/utils/drag-and-drop/draggable/draggable.mjs +5 -5
  395. package/esm2020/utils/drag-and-drop/draggable-ghost.mjs +5 -5
  396. package/esm2020/utils/drag-and-drop/droppable/droppable.mjs +5 -5
  397. package/esm2020/utils/drag-and-drop/if-dragged.mjs +5 -5
  398. package/esm2020/utils/drag-and-drop/index.mjs +2 -2
  399. package/esm2020/utils/drag-and-drop/interfaces/drag-event.interface.mjs +2 -2
  400. package/esm2020/utils/drag-and-drop/interfaces/drop-tolerance.interface.mjs +6 -1
  401. package/esm2020/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.mjs +5 -5
  402. package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +12 -12
  403. package/esm2020/utils/drag-and-drop/providers/drag-handle-registrar.service.mjs +5 -5
  404. package/esm2020/utils/drag-and-drop/providers/draggable-snapshot.service.mjs +5 -5
  405. package/esm2020/utils/drag-and-drop/providers/global-drag-mode.service.mjs +5 -5
  406. package/esm2020/utils/enums/key-codes.enum.mjs +3 -2
  407. package/esm2020/utils/focus/arrow-key-direction.enum.mjs +2 -2
  408. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +23 -18
  409. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +6 -6
  410. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs +2 -2
  411. package/esm2020/utils/focus/focus-on-view-init/index.mjs +2 -2
  412. package/esm2020/utils/focus/focus.service.mjs +5 -5
  413. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +5 -5
  414. package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +2 -2
  415. package/esm2020/utils/focus/focusable-item/focusable-item.mjs +2 -2
  416. package/esm2020/utils/focus/focusable-item/linkers.mjs +2 -2
  417. package/esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs +2 -2
  418. package/esm2020/utils/focus/key-focus/interfaces.mjs +2 -2
  419. package/esm2020/utils/focus/key-focus/key-focus-item.mjs +5 -5
  420. package/esm2020/utils/focus/key-focus/key-focus.mjs +5 -5
  421. package/esm2020/utils/focus/key-focus/key-focus.module.mjs +6 -6
  422. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +5 -5
  423. package/esm2020/utils/focus/key-focus/util.mjs +2 -2
  424. package/esm2020/utils/focus/wrap-observable.mjs +2 -2
  425. package/esm2020/utils/focus-trap/focus-trap-config.interface.mjs +2 -2
  426. package/esm2020/utils/focus-trap/focus-trap-tracker.service.mjs +5 -5
  427. package/esm2020/utils/focus-trap/focus-trap.directive.mjs +5 -5
  428. package/esm2020/utils/focus-trap/focus-trap.mjs +141 -0
  429. package/esm2020/utils/focus-trap/focus-trap.module.mjs +6 -6
  430. package/esm2020/utils/focus-trap/index.mjs +2 -2
  431. package/esm2020/utils/forms/validation.mjs +2 -2
  432. package/esm2020/utils/host-wrapping/dynamic-wrapper.mjs +3 -3
  433. package/esm2020/utils/host-wrapping/empty-anchor.mjs +6 -6
  434. package/esm2020/utils/host-wrapping/host-wrapper.mjs +3 -3
  435. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +7 -7
  436. package/esm2020/utils/i18n/common-strings.default.mjs +23 -5
  437. package/esm2020/utils/i18n/common-strings.interface.mjs +6 -1
  438. package/esm2020/utils/i18n/common-strings.service.mjs +5 -5
  439. package/esm2020/utils/i18n/index.mjs +2 -2
  440. package/esm2020/utils/id-generator/id-generator.service.mjs +2 -2
  441. package/esm2020/utils/index.mjs +3 -2
  442. package/esm2020/utils/key-codes/key-codes.mjs +2 -2
  443. package/esm2020/utils/loading/index.mjs +2 -2
  444. package/esm2020/utils/loading/loading-listener.mjs +2 -2
  445. package/esm2020/utils/loading/loading.mjs +5 -5
  446. package/esm2020/utils/loading/loading.module.mjs +6 -6
  447. package/esm2020/utils/outside-click/index.mjs +6 -1
  448. package/esm2020/utils/outside-click/outside-click.mjs +5 -5
  449. package/esm2020/utils/outside-click/outside-click.module.mjs +6 -6
  450. package/esm2020/utils/popover/enums/alignment.enum.mjs +2 -3
  451. package/esm2020/utils/popover/enums/axis.enum.mjs +2 -3
  452. package/esm2020/utils/popover/enums/positions.enum.mjs +2 -3
  453. package/esm2020/utils/popover/enums/side.enum.mjs +2 -3
  454. package/esm2020/utils/popover/enums/viewport-violation.enum.mjs +2 -3
  455. package/esm2020/utils/popover/index.mjs +2 -3
  456. package/esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs +2 -3
  457. package/esm2020/utils/popover/interfaces/popover-position.interface.mjs +2 -3
  458. package/esm2020/utils/popover/interfaces/visibility-coords.interface.mjs +2 -3
  459. package/esm2020/utils/popover/popover-anchor.mjs +5 -6
  460. package/esm2020/utils/popover/popover-close-button.mjs +5 -6
  461. package/esm2020/utils/popover/popover-content.mjs +18 -13
  462. package/esm2020/utils/popover/popover-open-close-button.mjs +5 -6
  463. package/esm2020/utils/popover/popover.module.mjs +6 -7
  464. package/esm2020/utils/popover/position-operators.mjs +2 -3
  465. package/esm2020/utils/popover/providers/popover-events.service.mjs +5 -6
  466. package/esm2020/utils/popover/providers/popover-position.service.mjs +12 -7
  467. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +5 -6
  468. package/esm2020/utils/scrolling/scrolling-service.mjs +5 -5
  469. package/esm2020/utils/template-ref/index.mjs +6 -1
  470. package/esm2020/utils/template-ref/template-ref-container.mjs +5 -5
  471. package/esm2020/utils/template-ref/template-ref.module.mjs +6 -6
  472. package/esm2020/wizard/index.mjs +2 -2
  473. package/esm2020/wizard/providers/button-hub.service.mjs +5 -5
  474. package/esm2020/wizard/providers/header-actions.service.mjs +5 -5
  475. package/esm2020/wizard/providers/page-collection.service.mjs +5 -5
  476. package/esm2020/wizard/providers/wizard-navigation.service.mjs +5 -5
  477. package/esm2020/wizard/wizard-button.mjs +5 -5
  478. package/esm2020/wizard/wizard-custom-tags.mjs +5 -5
  479. package/esm2020/wizard/wizard-header-action.mjs +5 -5
  480. package/esm2020/wizard/wizard-page-buttons.mjs +5 -5
  481. package/esm2020/wizard/wizard-page-header-actions.mjs +5 -5
  482. package/esm2020/wizard/wizard-page-navtitle.mjs +5 -5
  483. package/esm2020/wizard/wizard-page-title.mjs +5 -5
  484. package/esm2020/wizard/wizard-page.mjs +5 -5
  485. package/esm2020/wizard/wizard-stepnav-item.mjs +3 -3
  486. package/esm2020/wizard/wizard-stepnav.mjs +5 -5
  487. package/esm2020/wizard/wizard.mjs +35 -12
  488. package/esm2020/wizard/wizard.module.mjs +6 -6
  489. package/fesm2015/clr-angular.mjs +3225 -2560
  490. package/fesm2015/clr-angular.mjs.map +1 -1
  491. package/fesm2020/clr-angular.mjs +3240 -2541
  492. package/fesm2020/clr-angular.mjs.map +1 -1
  493. package/forms/checkbox/checkbox-container.d.ts +0 -5
  494. package/forms/checkbox/checkbox-wrapper.d.ts +0 -5
  495. package/forms/checkbox/checkbox.d.ts +0 -5
  496. package/forms/combobox/combobox-container.d.ts +0 -5
  497. package/forms/combobox/combobox.d.ts +0 -1
  498. package/forms/combobox/model/combobox.model.d.ts +0 -5
  499. package/forms/combobox/model/multi-select-combobox.model.d.ts +0 -5
  500. package/forms/combobox/model/pseudo-focus.model.d.ts +0 -5
  501. package/forms/combobox/model/single-select-combobox.model.d.ts +0 -5
  502. package/forms/combobox/option.d.ts +0 -5
  503. package/forms/combobox/options.d.ts +0 -5
  504. package/forms/common/abstract-container.d.ts +0 -5
  505. package/forms/common/form.d.ts +0 -5
  506. package/forms/common/layout.d.ts +0 -5
  507. package/forms/common/wrapped-control.d.ts +0 -5
  508. package/forms/datalist/datalist-input.d.ts +0 -5
  509. package/forms/datepicker/date-container.d.ts +12 -3
  510. package/forms/datepicker/datepicker-view-manager.d.ts +3 -1
  511. package/forms/input/input.d.ts +0 -5
  512. package/forms/password/password-container.d.ts +0 -5
  513. package/forms/password/password.d.ts +0 -5
  514. package/forms/radio/radio-container.d.ts +0 -5
  515. package/forms/radio/radio-wrapper.d.ts +0 -5
  516. package/forms/radio/radio.d.ts +0 -5
  517. package/forms/range/range-container.d.ts +0 -5
  518. package/forms/range/range.d.ts +0 -5
  519. package/forms/select/select.d.ts +0 -5
  520. package/forms/textarea/textarea.d.ts +0 -5
  521. package/layout/nav/header.d.ts +8 -0
  522. package/layout/nav/nav-level.d.ts +16 -4
  523. package/layout/vertical-nav/vertical-nav-group.d.ts +2 -1
  524. package/layout/vertical-nav/vertical-nav-link.d.ts +6 -5
  525. package/modal/modal-body.d.ts +1 -0
  526. package/modal/modal.d.ts +2 -1
  527. package/package.json +7 -17
  528. package/popover/common/abstract-popover.d.ts +3 -1
  529. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +2 -2
  530. package/utils/breakpoints/breakpoints.d.ts +14 -0
  531. package/utils/destroy/destroy.service.d.ts +32 -0
  532. package/utils/destroy/index.d.ts +1 -0
  533. package/utils/enums/key-codes.enum.d.ts +1 -0
  534. package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +5 -4
  535. package/utils/focus-trap/focus-trap.d.ts +29 -0
  536. package/utils/host-wrapping/dynamic-wrapper.d.ts +0 -5
  537. package/utils/host-wrapping/host-wrapper.d.ts +0 -5
  538. package/utils/i18n/common-strings.interface.d.ts +33 -0
  539. package/utils/index.d.ts +1 -0
  540. package/utils/popover/popover-content.d.ts +2 -1
  541. package/wizard/wizard.d.ts +2 -1
  542. package/schematics/add/index.js +0 -123
  543. package/schematics/add/index.js.map +0 -1
  544. package/schematics/add/index.spec.js +0 -114
  545. package/schematics/add/index.spec.js.map +0 -1
  546. package/schematics/add/schema.json +0 -18
  547. package/schematics/collection.json +0 -10
  548. package/schematics/migration-collection.json +0 -25
  549. package/schematics/update/update-0.13.0.js +0 -147
  550. package/schematics/update/update-0.13.0.js.map +0 -1
  551. package/schematics/update/update-13.0.0.js +0 -37
  552. package/schematics/update/update-13.0.0.js.map +0 -1
  553. package/schematics/update/update-13.0.0.spec.js +0 -71
  554. package/schematics/update/update-13.0.0.spec.js.map +0 -1
  555. package/schematics/update/update-3.0.0.js +0 -89
  556. package/schematics/update/update-3.0.0.js.map +0 -1
  557. package/schematics/update/update-5.0.0.js +0 -37
  558. package/schematics/update/update-5.0.0.js.map +0 -1
  559. package/schematics/update/update-5.0.0.spec.js +0 -71
  560. package/schematics/update/update-5.0.0.spec.js.map +0 -1
  561. package/schematics/utility/add-assets-to-config-file.js +0 -25
  562. package/schematics/utility/add-assets-to-config-file.js.map +0 -1
  563. package/schematics/utility/add-module-import-to-module.js +0 -36
  564. package/schematics/utility/add-module-import-to-module.js.map +0 -1
  565. package/schematics/utility/angular-config-filename.js +0 -10
  566. package/schematics/utility/angular-config-filename.js.map +0 -1
  567. package/schematics/utility/compare-versions.js +0 -30
  568. package/schematics/utility/compare-versions.js.map +0 -1
  569. package/schematics/utility/config.js +0 -32
  570. package/schematics/utility/config.js.map +0 -1
  571. package/schematics/utility/find-app-module.js +0 -17
  572. package/schematics/utility/find-app-module.js.map +0 -1
  573. package/schematics/utility/get-file-content.js +0 -12
  574. package/schematics/utility/get-file-content.js.map +0 -1
  575. package/schematics/utility/get-index-html-path.js +0 -14
  576. package/schematics/utility/get-index-html-path.js.map +0 -1
  577. package/schematics/utility/get-json-file.js +0 -25
  578. package/schematics/utility/get-json-file.js.map +0 -1
  579. package/schematics/utility/get-main-path.js +0 -14
  580. package/schematics/utility/get-main-path.js.map +0 -1
  581. package/schematics/utility/get-typescript-source-file.js +0 -26
  582. package/schematics/utility/get-typescript-source-file.js.map +0 -1
  583. package/schematics/utility/ng-add-options.js +0 -8
  584. package/schematics/utility/ng-add-options.js.map +0 -1
  585. package/schematics/utility/run-npm-install.js +0 -14
  586. package/schematics/utility/run-npm-install.js.map +0 -1
  587. package/schematics/utility/setup-project.js +0 -37
  588. package/schematics/utility/setup-project.js.map +0 -1
  589. package/schematics/utility/update-json-file.js +0 -17
  590. package/schematics/utility/update-json-file.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -8,13 +8,13 @@ import * as i0 from "@angular/core";
8
8
  /** @deprecated since 2.0, remove in 3.0 */
9
9
  export class ClrDatagridColumnToggleTitle {
10
10
  }
11
- ClrDatagridColumnToggleTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggleTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- ClrDatagridColumnToggleTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatagridColumnToggleTitle, selector: "clr-dg-column-toggle-title", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggleTitle, decorators: [{
11
+ ClrDatagridColumnToggleTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumnToggleTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ ClrDatagridColumnToggleTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridColumnToggleTitle, selector: "clr-dg-column-toggle-title", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumnToggleTitle, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: 'clr-dg-column-toggle-title',
17
17
  template: `<ng-content></ng-content>`,
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10aXRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10aXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsMkNBQTJDO0FBQzNDLE1BQU0sT0FBTyw0QkFBNEI7O3lIQUE1Qiw0QkFBNEI7NkdBQTVCLDRCQUE0QixrRUFIN0IsMkJBQTJCOzJGQUcxQiw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxufSlcbi8qKiBAZGVwcmVjYXRlZCBzaW5jZSAyLjAsIHJlbW92ZSBpbiAzLjAgKi9cbmV4cG9ydCBjbGFzcyBDbHJEYXRhZ3JpZENvbHVtblRvZ2dsZVRpdGxlIHt9XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10aXRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10aXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsMkNBQTJDO0FBQzNDLE1BQU0sT0FBTyw0QkFBNEI7O3lIQUE1Qiw0QkFBNEI7NkdBQTVCLDRCQUE0QixrRUFIN0IsMkJBQTJCOzJGQUcxQiw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGctY29sdW1uLXRvZ2dsZS10aXRsZScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG59KVxuLyoqIEBkZXByZWNhdGVkIHNpbmNlIDIuMCwgcmVtb3ZlIGluIDMuMCAqL1xuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkQ29sdW1uVG9nZ2xlVGl0bGUge31cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -17,28 +17,30 @@ import { ClrDatagridColumnToggleButton } from './datagrid-column-toggle-button';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "../../utils/i18n/common-strings.service";
19
19
  import * as i2 from "./providers/columns.service";
20
- import * as i3 from "../../forms/checkbox/checkbox-wrapper";
21
- import * as i4 from "./datagrid-column-toggle-button";
22
- import * as i5 from "../../utils/popover/popover-anchor";
23
- import * as i6 from "../../utils/popover/popover-open-close-button";
24
- import * as i7 from "../../icon/icon";
25
- import * as i8 from "../../utils/popover/popover-content";
26
- import * as i9 from "../../utils/focus-trap/focus-trap.directive";
27
- import * as i10 from "@angular/common";
28
- import * as i11 from "../../utils/popover/popover-close-button";
29
- import * as i12 from "./datagrid-items-trackby";
30
- import * as i13 from "@angular/forms";
31
- import * as i14 from "../../forms/checkbox/checkbox";
32
- import * as i15 from "../../forms/common/label";
20
+ import * as i3 from "../../utils/popover/providers/popover-toggle.service";
21
+ import * as i4 from "../../forms/checkbox/checkbox-wrapper";
22
+ import * as i5 from "./datagrid-column-toggle-button";
23
+ import * as i6 from "../../utils/popover/popover-anchor";
24
+ import * as i7 from "../../utils/popover/popover-open-close-button";
25
+ import * as i8 from "../../icon/icon";
26
+ import * as i9 from "../../utils/popover/popover-content";
27
+ import * as i10 from "../../utils/focus-trap/focus-trap.directive";
28
+ import * as i11 from "@angular/common";
29
+ import * as i12 from "../../utils/popover/popover-close-button";
30
+ import * as i13 from "./datagrid-items-trackby";
31
+ import * as i14 from "@angular/forms";
32
+ import * as i15 from "../../forms/checkbox/checkbox";
33
+ import * as i16 from "../../forms/common/label";
33
34
  /** @deprecated since 2.0, remove in 3.0 */
34
35
  export class ClrDatagridColumnToggle {
35
- constructor(commonStrings, columnsService, columnSwitchId, platformId, zone, popoverId) {
36
+ constructor(commonStrings, columnsService, columnSwitchId, platformId, zone, popoverId, popoverToggleService) {
36
37
  this.commonStrings = commonStrings;
37
38
  this.columnsService = columnsService;
38
39
  this.columnSwitchId = columnSwitchId;
39
40
  this.platformId = platformId;
40
41
  this.zone = zone;
41
42
  this.popoverId = popoverId;
43
+ this.popoverToggleService = popoverToggleService;
42
44
  // Smart Popover
43
45
  this.smartPosition = {
44
46
  axis: ClrAxis.VERTICAL,
@@ -46,6 +48,7 @@ export class ClrDatagridColumnToggle {
46
48
  anchor: ClrAlignment.START,
47
49
  content: ClrAlignment.START,
48
50
  };
51
+ this.subscription = popoverToggleService.openChange.subscribe(change => (this.openState = change));
49
52
  }
50
53
  get allColumnsVisible() {
51
54
  return this._allColumnsVisible;
@@ -53,6 +56,9 @@ export class ClrDatagridColumnToggle {
53
56
  set allColumnsVisible(value) {
54
57
  this._allColumnsVisible = value;
55
58
  }
59
+ ngOnDestroy() {
60
+ this.subscription.unsubscribe();
61
+ }
56
62
  get hideableColumnStates() {
57
63
  const hideables = this.columnsService.columns.filter(column => column.value.hideable);
58
64
  return hideables.map(column => column.value);
@@ -81,8 +87,8 @@ export class ClrDatagridColumnToggle {
81
87
  return index;
82
88
  }
83
89
  }
84
- ClrDatagridColumnToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggle, deps: [{ token: i1.ClrCommonStringsService }, { token: i2.ColumnsService }, { token: UNIQUE_ID }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
85
- ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle", host: { properties: { "class.column-switch-wrapper": "true", "class.active": "openState" } }, providers: [UNIQUE_ID_PROVIDER, ClrPopoverEventsService, ClrPopoverPositionService, ClrPopoverToggleService], queries: [{ propertyName: "customToggleTitle", first: true, predicate: ClrDatagridColumnToggleTitle, descendants: true }, { propertyName: "customToggleButton", first: true, predicate: ClrDatagridColumnToggleButton, descendants: true }], viewQueries: [{ propertyName: "allSelectedElement", first: true, predicate: ["allSelected"], descendants: true, read: ElementRef }], ngImport: i0, template: `
90
+ ClrDatagridColumnToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumnToggle, deps: [{ token: i1.ClrCommonStringsService }, { token: i2.ColumnsService }, { token: UNIQUE_ID }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: UNIQUE_ID }, { token: i3.ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
91
+ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle", host: { properties: { "class.column-switch-wrapper": "true", "class.active": "openState" } }, providers: [UNIQUE_ID_PROVIDER, ClrPopoverEventsService, ClrPopoverPositionService, ClrPopoverToggleService], queries: [{ propertyName: "customToggleTitle", first: true, predicate: ClrDatagridColumnToggleTitle, descendants: true }, { propertyName: "customToggleButton", first: true, predicate: ClrDatagridColumnToggleButton, descendants: true }], viewQueries: [{ propertyName: "allSelectedElement", first: true, predicate: ["allSelected"], descendants: true, read: ElementRef }], ngImport: i0, template: `
86
92
  <button
87
93
  role="button"
88
94
  type="button"
@@ -91,9 +97,10 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
91
97
  clrPopoverOpenCloseButton
92
98
  [attr.aria-controls]="popoverId"
93
99
  [attr.aria-owns]="popoverId"
94
- [attr.title]="commonStrings.keys.pickColumns"
100
+ [attr.aria-expanded]="openState"
95
101
  >
96
102
  <cds-icon shape="view-columns" aria-hidden="true" [attr.title]="commonStrings.keys.pickColumns"></cds-icon>
103
+ <span class="clr-sr-only">{{ commonStrings.keys.pickColumns }}</span>
97
104
  </button>
98
105
  <div
99
106
  class="column-switch"
@@ -105,16 +112,18 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
105
112
  >
106
113
  <div class="switch-header">
107
114
  <div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.keys.allColumnsSelected }}</div>
108
- <ng-container *ngIf="!customToggleTitle">{{ commonStrings.keys.showColumns }}</ng-container>
115
+ <ng-container *ngIf="!customToggleTitle">
116
+ <h2>{{ commonStrings.keys.showColumns }}</h2>
117
+ </ng-container>
109
118
  <ng-content select="clr-dg-column-toggle-title"></ng-content>
110
119
  <button
111
120
  class="btn btn-sm btn-link toggle-switch-close-button"
112
121
  clrPopoverCloseButton
113
122
  type="button"
114
123
  [attr.aria-label]="commonStrings.keys.close"
115
- [attr.title]="commonStrings.keys.close"
116
124
  >
117
125
  <cds-icon shape="window-close" aria-hidden="true" [attr.title]="commonStrings.keys.close"></cds-icon>
126
+ <span class="clr-sr-only">{{ commonStrings.keys.close }}</span>
118
127
  </button>
119
128
  </div>
120
129
  <ul class="switch-content list-unstyled">
@@ -140,8 +149,8 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
140
149
  </clr-dg-column-toggle-button>
141
150
  </div>
142
151
  </div>
143
- `, isInline: true, components: [{ type: i3.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: i4.ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }], directives: [{ type: i5.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i6.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: i7.CdsIconCustomTag, selector: "cds-icon" }, { type: i8.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: i9.FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { type: i13.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i14.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.ClrLabel, selector: "label", inputs: ["for"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
152
+ `, isInline: true, components: [{ type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: i5.ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }], directives: [{ type: i6.ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i7.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: i8.CdsIconCustomTag, selector: "cds-icon" }, { type: i9.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: i10.FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { type: i14.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i15.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i16.ClrLabel, selector: "label", inputs: ["for"] }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
145
154
  type: Component,
146
155
  args: [{
147
156
  selector: 'clr-dg-column-toggle',
@@ -154,9 +163,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
154
163
  clrPopoverOpenCloseButton
155
164
  [attr.aria-controls]="popoverId"
156
165
  [attr.aria-owns]="popoverId"
157
- [attr.title]="commonStrings.keys.pickColumns"
166
+ [attr.aria-expanded]="openState"
158
167
  >
159
168
  <cds-icon shape="view-columns" aria-hidden="true" [attr.title]="commonStrings.keys.pickColumns"></cds-icon>
169
+ <span class="clr-sr-only">{{ commonStrings.keys.pickColumns }}</span>
160
170
  </button>
161
171
  <div
162
172
  class="column-switch"
@@ -168,16 +178,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
168
178
  >
169
179
  <div class="switch-header">
170
180
  <div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.keys.allColumnsSelected }}</div>
171
- <ng-container *ngIf="!customToggleTitle">{{ commonStrings.keys.showColumns }}</ng-container>
181
+ <ng-container *ngIf="!customToggleTitle">
182
+ <h2>{{ commonStrings.keys.showColumns }}</h2>
183
+ </ng-container>
172
184
  <ng-content select="clr-dg-column-toggle-title"></ng-content>
173
185
  <button
174
186
  class="btn btn-sm btn-link toggle-switch-close-button"
175
187
  clrPopoverCloseButton
176
188
  type="button"
177
189
  [attr.aria-label]="commonStrings.keys.close"
178
- [attr.title]="commonStrings.keys.close"
179
190
  >
180
191
  <cds-icon shape="window-close" aria-hidden="true" [attr.title]="commonStrings.keys.close"></cds-icon>
192
+ <span class="clr-sr-only">{{ commonStrings.keys.close }}</span>
181
193
  </button>
182
194
  </div>
183
195
  <ul class="switch-content list-unstyled">
@@ -216,7 +228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
216
228
  }] }, { type: i0.NgZone }, { type: undefined, decorators: [{
217
229
  type: Inject,
218
230
  args: [UNIQUE_ID]
219
- }] }]; }, propDecorators: { customToggleTitle: [{
231
+ }] }, { type: i3.ClrPopoverToggleService }]; }, propDecorators: { customToggleTitle: [{
220
232
  type: ContentChild,
221
233
  args: [ClrDatagridColumnToggleTitle]
222
234
  }], customToggleButton: [{
@@ -226,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
226
238
  type: ViewChild,
227
239
  args: ['allSelected', { read: ElementRef }]
228
240
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVHLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUU5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUkvRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrRWhGLDJDQUEyQztBQUMzQyxNQUFNLE9BQU8sdUJBQXVCO0lBeUJsQyxZQUNTLGFBQXNDLEVBQ3JDLGNBQThCLEVBQ1osY0FBc0IsRUFDbkIsVUFBZSxFQUNwQyxJQUFZLEVBQ00sU0FBaUI7UUFMcEMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3JDLG1CQUFj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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMERUO29CQUNELElBQUksRUFBRSxFQUFFLCtCQUErQixFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUU7b0JBQ2hGLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixDQUFDO2lCQUM3Rzs7MEJBOEJJLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMsV0FBVzs7MEJBRWxCLE1BQU07MkJBQUMsU0FBUzs0Q0FuQnlCLGlCQUFpQjtzQkFBNUQsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBQ0csa0JBQWtCO3NCQUE5RCxZQUFZO3VCQUFDLDZCQUE2QjtnQkFFbkMsa0JBQWtCO3NCQUR6QixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBOZ1pvbmUsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVU5JUVVFX0lELCBVTklRVUVfSURfUFJPVklERVIgfSBmcm9tICcuLi8uLi91dGlscy9pZC1nZW5lcmF0b3IvaWQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsckF4aXMgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL2F4aXMuZW51bSc7XG5pbXBvcnQgeyBDbHJBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL2FsaWdubWVudC5lbnVtJztcbmltcG9ydCB7IENsclNpZGUgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL3NpZGUuZW51bSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItcG9zaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29sdW1uc1NlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9jb2x1bW5zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29sdW1uU3RhdGUgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sdW1uLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhZ3JpZENvbHVtbkNoYW5nZXMgfSBmcm9tICcuL2VudW1zL2NvbHVtbi1jaGFuZ2VzLmVudW0nO1xuaW1wb3J0IHsgQ2xyRGF0YWdyaWRDb2x1bW5Ub2dnbGVUaXRsZSB9IGZyb20gJy4vZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10aXRsZSc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZENvbHVtblRvZ2dsZUJ1dHRvbiB9IGZyb20gJy4vZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGctY29sdW1uLXRvZ2dsZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGluayBjb2x1bW4tdG9nZ2xlLS1hY3Rpb25cIlxuICAgICAgY2xyUG9wb3ZlckFuY2hvclxuICAgICAgY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvblxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJwb3BvdmVySWRcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cInBvcG92ZXJJZFwiXG4gICAgICBbYXR0ci50aXRsZV09XCJjb21tb25TdHJpbmdzLmtleXMucGlja0NvbHVtbnNcIlxuICAgID5cbiAgICAgIDxjZHMtaWNvbiBzaGFwZT1cInZpZXctY29sdW1uc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5waWNrQ29sdW1uc1wiPjwvY2RzLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjb2x1bW4tc3dpdGNoXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuc2hvd0NvbHVtbnNNZW51RGVzY3JpcHRpb25cIlxuICAgICAgW2lkXT1cInBvcG92ZXJJZFwiXG4gICAgICBjbHJGb2N1c1RyYXBcbiAgICAgICpjbHJQb3BvdmVyQ29udGVudD1cIm9wZW5TdGF0ZTsgYXQ6IHNtYXJ0UG9zaXRpb247IG91dHNpZGVDbGlja1RvQ2xvc2U6IHRydWU7IHNjcm9sbFRvQ2xvc2U6IHRydWVcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbHItc3Itb25seVwiIHRhYmluZGV4PVwiLTFcIiAjYWxsU2VsZWN0ZWQ+e3sgY29tbW9uU3RyaW5ncy5rZXlzLmFsbENvbHVtbnNTZWxlY3RlZCB9fTwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbVRvZ2dsZVRpdGxlXCI+e3sgY29tbW9uU3RyaW5ncy5rZXlzLnNob3dDb2x1bW5zIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1kZy1jb2x1bW4tdG9nZ2xlLXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saW5rIHRvZ2dsZS1zd2l0Y2gtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICBjbHJQb3BvdmVyQ2xvc2VCdXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cIndpbmRvdy1jbG9zZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZVwiPjwvY2RzLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8dWwgY2xhc3M9XCJzd2l0Y2gtY29udGVudCBsaXN0LXVuc3R5bGVkXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY29sdW1uU3RhdGUgb2YgaGlkZWFibGVDb2x1bW5TdGF0ZXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDxjbHItY2hlY2tib3gtd3JhcHBlcj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbHJDaGVja2JveFxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaGFzT25seU9uZVZpc2libGVDb2x1bW4gJiYgIWNvbHVtblN0YXRlLmhpZGRlblwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cIiFjb2x1bW5TdGF0ZS5oaWRkZW5cIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVDb2x1bW5TdGF0ZShjb2x1bW5TdGF0ZSwgISRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtblN0YXRlLnRpdGxlVGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtZm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICAgICAgPGNsci1kZy1jb2x1bW4tdG9nZ2xlLWJ1dHRvbiAqbmdJZj1cIiFjdXN0b21Ub2dnbGVCdXR0b25cIiAoY2xyQWxsU2VsZWN0ZWQpPVwiYWxsQ29sdW1uc1NlbGVjdGVkKClcIj5cbiAgICAgICAgICB7eyBjb21tb25TdHJpbmdzLmtleXMuc2VsZWN0QWxsIH19XG4gICAgICAgIDwvY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5jb2x1bW4tc3dpdGNoLXdyYXBwZXJdJzogJ3RydWUnLCAnW2NsYXNzLmFjdGl2ZV0nOiAnb3BlblN0YXRlJyB9LFxuICBwcm92aWRlcnM6IFtVTklRVUVfSURfUFJPVklERVIsIENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLCBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLCBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZV0sXG59KVxuLyoqIEBkZXByZWNhdGVkIHNpbmNlIDIuMCwgcmVtb3ZlIGluIDMuMCAqL1xuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkQ29sdW1uVG9nZ2xlIHtcbiAgcHJpdmF0ZSBfYWxsQ29sdW1uc1Zpc2libGU6IGJvb2xlYW47XG5cbiAgLy8gU21hcnQgUG9wb3ZlclxuICBwdWJsaWMgc21hcnRQb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uID0ge1xuICAgIGF4aXM6IENsckF4aXMuVkVSVElDQUwsXG4gICAgc2lkZTogQ2xyU2lkZS5CRUZPUkUsXG4gICAgYW5jaG9yOiBDbHJBbGlnbm1lbnQuU1RBUlQsXG4gICAgY29udGVudDogQ2xyQWxpZ25tZW50LlNUQVJULFxuICB9O1xuICBwdWJsaWMgb3BlblN0YXRlOiBib29sZWFuO1xuXG4gIEBDb250ZW50Q2hpbGQoQ2xyRGF0YWdyaWRDb2x1bW5Ub2dnbGVUaXRsZSkgY3VzdG9tVG9nZ2xlVGl0bGU6IENsckRhdGFncmlkQ29sdW1uVG9nZ2xlVGl0bGU7XG4gIEBDb250ZW50Q2hpbGQoQ2xyRGF0YWdyaWRDb2x1bW5Ub2dnbGVCdXR0b24pIGN1c3RvbVRvZ2dsZUJ1dHRvbjogQ2xyRGF0YWdyaWRDb2x1bW5Ub2dnbGVCdXR0b247XG4gIEBWaWV3Q2hpbGQoJ2FsbFNlbGVjdGVkJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgYWxsU2VsZWN0ZWRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgZ2V0IGFsbENvbHVtbnNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hbGxDb2x1bW5zVmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYWxsQ29sdW1uc1Zpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hbGxDb2x1bW5zVmlzaWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29sdW1uc1NlcnZpY2U6IENvbHVtbnNTZXJ2aWNlLFxuICAgIEBJbmplY3QoVU5JUVVFX0lEKSBwdWJsaWMgY29sdW1uU3dpdGNoSWQ6IHN0cmluZyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBASW5qZWN0KFVOSVFVRV9JRCkgcHVibGljIHBvcG92ZXJJZDogc3RyaW5nXG4gICkge31cblxuICBnZXQgaGlkZWFibGVDb2x1bW5TdGF0ZXMoKTogQ29sdW1uU3RhdGVbXSB7XG4gICAgY29uc3QgaGlkZWFibGVzID0gdGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnZhbHVlLmhpZGVhYmxlKTtcbiAgICByZXR1cm4gaGlkZWFibGVzLm1hcChjb2x1bW4gPT4gY29sdW1uLnZhbHVlKTtcbiAgfVxuXG4gIGdldCBoYXNPbmx5T25lVmlzaWJsZUNvbHVtbigpOiBib29sZWFuIHtcbiAgICBjb25zdCBuYk5vbkhpZGVhYmxlQ29sdW1ucyA9IHRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5sZW5ndGggLSB0aGlzLmhpZGVhYmxlQ29sdW1uU3RhdGVzLmxlbmd0aDtcbiAgICAvLyB0aGlzIHNob3VsZCBvbmx5IHJldHVybiB0cnVlIHdoZW4gdGhlcmUgaXMgbm8gbm9uLWhpZGVhYmxlIGNvbHVtbnMuXG4gICAgcmV0dXJuIChcbiAgICAgIG5iTm9uSGlkZWFibGVDb2x1bW5zID09PSAwICYmIHRoaXMuaGlkZWFibGVDb2x1bW5TdGF0ZXMuZmlsdGVyKGNvbHVtblN0YXRlID0+ICFjb2x1bW5TdGF0ZS5oaWRkZW4pLmxlbmd0aCA9PT0gMVxuICAgICk7XG4gIH1cblxuICB0b2dnbGVDb2x1bW5TdGF0ZShjb2x1bW5TdGF0ZTogQ29sdW1uU3RhdGUsIGV2ZW50OiBib29sZWFuKSB7XG4gICAgY29uc3QgY29sdW1uVG9Ub2dnbGUgPSB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4udmFsdWUgPT09IGNvbHVtblN0YXRlKVswXTtcbiAgICB0aGlzLmNvbHVtbnNTZXJ2aWNlLmVtaXRTdGF0ZUNoYW5nZShjb2x1bW5Ub1RvZ2dsZSwge1xuICAgICAgaGlkZGVuOiBldmVudCxcbiAgICAgIGNoYW5nZXM6IFtEYXRhZ3JpZENvbHVtbkNoYW5nZXMuSElEREVOXSxcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVN3aXRjaFBhbmVsKCkge1xuICAgIHRoaXMub3BlblN0YXRlID0gIXRoaXMub3BlblN0YXRlO1xuICB9XG5cbiAgYWxsQ29sdW1uc1NlbGVjdGVkKCkge1xuICAgIHRoaXMuYWxsU2VsZWN0ZWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8vIFdpdGhvdXQgdHJhY2tpbmcgdGhlIGNoZWNrYm94ZXMgZ2V0IHJlcmVuZGVyZWQgb24gbW9kZWwgdXBkYXRlLCB3aGljaCBsZWFkc1xuICAvLyB0byBsb3NzIG9mIGZvY3VzIGFmdGVyIGNoZWNrYm94IHRvZ2dsZS5cbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbn1cbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUU5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUkvRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0VoRiwyQ0FBMkM7QUFDM0MsTUFBTSxPQUFPLHVCQUF1QjtJQTBCbEMsWUFDUyxhQUFzQyxFQUNyQyxjQUE4QixFQUNaLGNBQXNCLEVBQ25CLFVBQWUsRUFDcEMsSUFBWSxFQUNNLFNBQWlCLEVBQ25DLG9CQUE2QztRQU45QyxrQkFBYSxHQUFiLGFBQWEsQ0FB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RSx1QkFBdUIsQ0FBQyx5RUFnQjlGLDRCQUE0QixxRkFDNUIsNkJBQTZCLDhJQUNULFVBQVUsNkJBakZsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZEVDsyRkFLVSx1QkFBdUI7a0JBcEVuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZEVDtvQkFDRCxJQUFJLEVBQUUsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFO29CQUNoRixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDN0c7OzBCQStCSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLFdBQVc7OzBCQUVsQixNQUFNOzJCQUFDLFNBQVM7a0ZBbkJ5QixpQkFBaUI7c0JBQTVELFlBQVk7dUJBQUMsNEJBQTRCO2dCQUNHLGtCQUFrQjtzQkFBOUQsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBRW5DLGtCQUFrQjtzQkFEekIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBOZ1pvbmUsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBVTklRVUVfSUQsIFVOSVFVRV9JRF9QUk9WSURFUiB9IGZyb20gJy4uLy4uL3V0aWxzL2lkLWdlbmVyYXRvci9pZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyQXhpcyB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYXhpcy5lbnVtJztcbmltcG9ydCB7IENsckFsaWdubWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvYWxpZ25tZW50LmVudW0nO1xuaW1wb3J0IHsgQ2xyU2lkZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvc2lkZS5lbnVtJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb2x1bW5zU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbHVtbnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb2x1bW5TdGF0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2x1bW4tc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFncmlkQ29sdW1uQ2hhbmdlcyB9IGZyb20gJy4vZW51bXMvY29sdW1uLWNoYW5nZXMuZW51bSc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZENvbHVtblRvZ2dsZVRpdGxlIH0gZnJvbSAnLi9kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLXRpdGxlJztcbmltcG9ydCB7IENsckRhdGFncmlkQ29sdW1uVG9nZ2xlQnV0dG9uIH0gZnJvbSAnLi9kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWJ1dHRvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWNvbHVtbi10b2dnbGUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpbmsgY29sdW1uLXRvZ2dsZS0tYWN0aW9uXCJcbiAgICAgIGNsclBvcG92ZXJBbmNob3JcbiAgICAgIGNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b25cbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwicG9wb3ZlcklkXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJwb3BvdmVySWRcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuU3RhdGVcIlxuICAgID5cbiAgICAgIDxjZHMtaWNvbiBzaGFwZT1cInZpZXctY29sdW1uc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5waWNrQ29sdW1uc1wiPjwvY2RzLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cImNsci1zci1vbmx5XCI+e3sgY29tbW9uU3RyaW5ncy5rZXlzLnBpY2tDb2x1bW5zIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY29sdW1uLXN3aXRjaFwiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLnNob3dDb2x1bW5zTWVudURlc2NyaXB0aW9uXCJcbiAgICAgIFtpZF09XCJwb3BvdmVySWRcIlxuICAgICAgY2xyRm9jdXNUcmFwXG4gICAgICAqY2xyUG9wb3ZlckNvbnRlbnQ9XCJvcGVuU3RhdGU7IGF0OiBzbWFydFBvc2l0aW9uOyBvdXRzaWRlQ2xpY2tUb0Nsb3NlOiB0cnVlOyBzY3JvbGxUb0Nsb3NlOiB0cnVlXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLXNyLW9ubHlcIiB0YWJpbmRleD1cIi0xXCIgI2FsbFNlbGVjdGVkPnt7IGNvbW1vblN0cmluZ3Mua2V5cy5hbGxDb2x1bW5zU2VsZWN0ZWQgfX08L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21Ub2dnbGVUaXRsZVwiPlxuICAgICAgICAgIDxoMj57eyBjb21tb25TdHJpbmdzLmtleXMuc2hvd0NvbHVtbnMgfX08L2gyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWRnLWNvbHVtbi10b2dnbGUtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpbmsgdG9nZ2xlLXN3aXRjaC1jbG9zZS1idXR0b25cIlxuICAgICAgICAgIGNsclBvcG92ZXJDbG9zZUJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjZHMtaWNvbiBzaGFwZT1cIndpbmRvdy1jbG9zZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFthdHRyLnRpdGxlXT1cImNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZVwiPjwvY2RzLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjbHItc3Itb25seVwiPnt7IGNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx1bCBjbGFzcz1cInN3aXRjaC1jb250ZW50IGxpc3QtdW5zdHlsZWRcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBjb2x1bW5TdGF0ZSBvZiBoaWRlYWJsZUNvbHVtblN0YXRlczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgPGNsci1jaGVja2JveC13cmFwcGVyPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsckNoZWNrYm94XG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJoYXNPbmx5T25lVmlzaWJsZUNvbHVtbiAmJiAhY29sdW1uU3RhdGUuaGlkZGVuXCJcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiIWNvbHVtblN0YXRlLmhpZGRlblwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZUNvbHVtblN0YXRlKGNvbHVtblN0YXRlLCAhJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uU3RhdGUudGl0bGVUZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvY2xyLWNoZWNrYm94LXdyYXBwZXI+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1mb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8Y2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uICpuZ0lmPVwiIWN1c3RvbVRvZ2dsZUJ1dHRvblwiIChjbHJBbGxTZWxlY3RlZCk9XCJhbGxDb2x1bW5zU2VsZWN0ZWQoKVwiPlxuICAgICAgICAgIHt7IGNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGwgfX1cbiAgICAgICAgPC9jbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgaG9zdDogeyAnW2NsYXNzLmNvbHVtbi1zd2l0Y2gtd3JhcHBlcl0nOiAndHJ1ZScsICdbY2xhc3MuYWN0aXZlXSc6ICdvcGVuU3RhdGUnIH0sXG4gIHByb3ZpZGVyczogW1VOSVFVRV9JRF9QUk9WSURFUiwgQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UsIENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsIENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlXSxcbn0pXG4vKiogQGRlcHJlY2F0ZWQgc2luY2UgMi4wLCByZW1vdmUgaW4gMy4wICovXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWRDb2x1bW5Ub2dnbGUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9hbGxDb2x1bW5zVmlzaWJsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAvLyBTbWFydCBQb3BvdmVyXG4gIHB1YmxpYyBzbWFydFBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24gPSB7XG4gICAgYXhpczogQ2xyQXhpcy5WRVJUSUNBTCxcbiAgICBzaWRlOiBDbHJTaWRlLkJFRk9SRSxcbiAgICBhbmNob3I6IENsckFsaWdubWVudC5TVEFSVCxcbiAgICBjb250ZW50OiBDbHJBbGlnbm1lbnQuU1RBUlQsXG4gIH07XG4gIHB1YmxpYyBvcGVuU3RhdGU6IGJvb2xlYW47XG5cbiAgQENvbnRlbnRDaGlsZChDbHJEYXRhZ3JpZENvbHVtblRvZ2dsZVRpdGxlKSBjdXN0b21Ub2dnbGVUaXRsZTogQ2xyRGF0YWdyaWRDb2x1bW5Ub2dnbGVUaXRsZTtcbiAgQENvbnRlbnRDaGlsZChDbHJEYXRhZ3JpZENvbHVtblRvZ2dsZUJ1dHRvbikgY3VzdG9tVG9nZ2xlQnV0dG9uOiBDbHJEYXRhZ3JpZENvbHVtblRvZ2dsZUJ1dHRvbjtcbiAgQFZpZXdDaGlsZCgnYWxsU2VsZWN0ZWQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBhbGxTZWxlY3RlZEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBnZXQgYWxsQ29sdW1uc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbENvbHVtbnNWaXNpYmxlO1xuICB9XG5cbiAgcHVibGljIHNldCBhbGxDb2x1bW5zVmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2FsbENvbHVtbnNWaXNpYmxlID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2x1bW5zU2VydmljZTogQ29sdW1uc1NlcnZpY2UsXG4gICAgQEluamVjdChVTklRVUVfSUQpIHB1YmxpYyBjb2x1bW5Td2l0Y2hJZDogc3RyaW5nLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIEBJbmplY3QoVU5JUVVFX0lEKSBwdWJsaWMgcG9wb3ZlcklkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBwb3BvdmVyVG9nZ2xlU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBwb3BvdmVyVG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShjaGFuZ2UgPT4gKHRoaXMub3BlblN0YXRlID0gY2hhbmdlKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IGhpZGVhYmxlQ29sdW1uU3RhdGVzKCk6IENvbHVtblN0YXRlW10ge1xuICAgIGNvbnN0IGhpZGVhYmxlcyA9IHRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi52YWx1ZS5oaWRlYWJsZSk7XG4gICAgcmV0dXJuIGhpZGVhYmxlcy5tYXAoY29sdW1uID0+IGNvbHVtbi52YWx1ZSk7XG4gIH1cblxuICBnZXQgaGFzT25seU9uZVZpc2libGVDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbmJOb25IaWRlYWJsZUNvbHVtbnMgPSB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMubGVuZ3RoIC0gdGhpcy5oaWRlYWJsZUNvbHVtblN0YXRlcy5sZW5ndGg7XG4gICAgLy8gdGhpcyBzaG91bGQgb25seSByZXR1cm4gdHJ1ZSB3aGVuIHRoZXJlIGlzIG5vIG5vbi1oaWRlYWJsZSBjb2x1bW5zLlxuICAgIHJldHVybiAoXG4gICAgICBuYk5vbkhpZGVhYmxlQ29sdW1ucyA9PT0gMCAmJiB0aGlzLmhpZGVhYmxlQ29sdW1uU3RhdGVzLmZpbHRlcihjb2x1bW5TdGF0ZSA9PiAhY29sdW1uU3RhdGUuaGlkZGVuKS5sZW5ndGggPT09IDFcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlQ29sdW1uU3RhdGUoY29sdW1uU3RhdGU6IENvbHVtblN0YXRlLCBldmVudDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvbHVtblRvVG9nZ2xlID0gdGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnZhbHVlID09PSBjb2x1bW5TdGF0ZSlbMF07XG4gICAgdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2UoY29sdW1uVG9Ub2dnbGUsIHtcbiAgICAgIGhpZGRlbjogZXZlbnQsXG4gICAgICBjaGFuZ2VzOiBbRGF0YWdyaWRDb2x1bW5DaGFuZ2VzLkhJRERFTl0sXG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGVTd2l0Y2hQYW5lbCgpIHtcbiAgICB0aGlzLm9wZW5TdGF0ZSA9ICF0aGlzLm9wZW5TdGF0ZTtcbiAgfVxuXG4gIGFsbENvbHVtbnNTZWxlY3RlZCgpIHtcbiAgICB0aGlzLmFsbFNlbGVjdGVkRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvLyBXaXRob3V0IHRyYWNraW5nIHRoZSBjaGVja2JveGVzIGdldCByZXJlbmRlcmVkIG9uIG1vZGVsIHVwZGF0ZSwgd2hpY2ggbGVhZHNcbiAgLy8gdG8gbG9zcyBvZiBmb2N1cyBhZnRlciBjaGVja2JveCB0b2dnbGUuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -72,6 +72,7 @@ export class ClrDatagridColumn extends DatagridFilterRegistrar {
72
72
  this.subscriptions.push(this.listenForDetailPaneChanges());
73
73
  }
74
74
  ngOnDestroy() {
75
+ super.ngOnDestroy();
75
76
  this.subscriptions.forEach(s => s.unsubscribe());
76
77
  }
77
78
  listenForDetailPaneChanges() {
@@ -257,6 +258,15 @@ export class ClrDatagridColumn extends DatagridFilterRegistrar {
257
258
  this.customFilter = true;
258
259
  }
259
260
  }
261
+ get filterStringPlaceholderValue() {
262
+ return this.filterStringPlaceholder || this.commonStrings.keys.filterItems;
263
+ }
264
+ get filterNumberMaxPlaceholderValue() {
265
+ return this.filterNumberMaxPlaceholder || this.commonStrings.keys.maxValue;
266
+ }
267
+ get filterNumberMinPlaceholderValue() {
268
+ return this.filterNumberMinPlaceholder || this.commonStrings.keys.minValue;
269
+ }
260
270
  set updateFilterValue(newValue) {
261
271
  if (this.filter) {
262
272
  if (this.filter instanceof DatagridStringFilterImpl) {
@@ -307,8 +317,8 @@ export class ClrDatagridColumn extends DatagridFilterRegistrar {
307
317
  return this.wrappedInjector.get(WrappedColumn, this.vcr).columnView;
308
318
  }
309
319
  }
310
- ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: i1.Sort }, { token: i2.FiltersProvider }, { token: i0.ViewContainerRef }, { token: i3.DetailService }, { token: i0.ChangeDetectorRef }, { token: i4.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
311
- ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sorted: ["clrDgSorted", "sorted"], sortOrder: ["clrDgSortOrder", "sortOrder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortedChange: "clrDgSortedChange", sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, providers: [ClrPopoverPositionService, ClrPopoverEventsService, ClrPopoverToggleService], queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
320
+ ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: i1.Sort }, { token: i2.FiltersProvider }, { token: i0.ViewContainerRef }, { token: i3.DetailService }, { token: i0.ChangeDetectorRef }, { token: i4.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
321
+ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sorted: ["clrDgSorted", "sorted"], sortOrder: ["clrDgSortOrder", "sortOrder"], filterStringPlaceholder: ["clrFilterStringPlaceholder", "filterStringPlaceholder"], filterNumberMaxPlaceholder: ["clrFilterNumberMaxPlaceholder", "filterNumberMaxPlaceholder"], filterNumberMinPlaceholder: ["clrFilterNumberMinPlaceholder", "filterNumberMinPlaceholder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortedChange: "clrDgSortedChange", sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, providers: [ClrPopoverPositionService, ClrPopoverEventsService, ClrPopoverToggleService], queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
312
322
  <div class="datagrid-column-flex">
313
323
  <button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
314
324
  <ng-container *ngTemplateOutlet="columnTitle"></ng-container>
@@ -325,12 +335,15 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
325
335
 
326
336
  <clr-dg-string-filter
327
337
  *ngIf="field && !customFilter && colType == 'string'"
338
+ [clrFilterPlaceholder]="filterStringPlaceholderValue"
328
339
  [clrDgStringFilter]="registered"
329
340
  [(clrFilterValue)]="filterValue"
330
341
  ></clr-dg-string-filter>
331
342
 
332
343
  <clr-dg-numeric-filter
333
344
  *ngIf="field && !customFilter && colType == 'number'"
345
+ [clrFilterMaxPlaceholder]="filterMaxPlaceholderValue"
346
+ [clrFilterMinPlaceholder]="filterMinPlaceholderValue"
334
347
  [clrDgNumericFilter]="registered"
335
348
  [(clrFilterValue)]="filterValue"
336
349
  ></clr-dg-numeric-filter>
@@ -345,8 +358,8 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
345
358
 
346
359
  <clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
347
360
  </div>
348
- `, isInline: true, components: [{ type: i5.DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: i6.DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: i7.ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.CdsIconCustomTag, selector: "cds-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumn, decorators: [{
361
+ `, isInline: true, components: [{ type: i5.DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrFilterPlaceholder", "clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: i6.DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrFilterMaxPlaceholder", "clrFilterMinPlaceholder", "clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: i7.ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.CdsIconCustomTag, selector: "cds-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumn, decorators: [{
350
363
  type: Component,
351
364
  args: [{
352
365
  selector: 'clr-dg-column',
@@ -367,12 +380,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
367
380
 
368
381
  <clr-dg-string-filter
369
382
  *ngIf="field && !customFilter && colType == 'string'"
383
+ [clrFilterPlaceholder]="filterStringPlaceholderValue"
370
384
  [clrDgStringFilter]="registered"
371
385
  [(clrFilterValue)]="filterValue"
372
386
  ></clr-dg-string-filter>
373
387
 
374
388
  <clr-dg-numeric-filter
375
389
  *ngIf="field && !customFilter && colType == 'number'"
390
+ [clrFilterMaxPlaceholder]="filterMaxPlaceholderValue"
391
+ [clrFilterMinPlaceholder]="filterMinPlaceholderValue"
376
392
  [clrDgNumericFilter]="registered"
377
393
  [(clrFilterValue)]="filterValue"
378
394
  ></clr-dg-numeric-filter>
@@ -420,6 +436,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
420
436
  }], projectedFilter: [{
421
437
  type: ContentChild,
422
438
  args: [CustomFilter]
439
+ }], filterStringPlaceholder: [{
440
+ type: Input,
441
+ args: ['clrFilterStringPlaceholder']
442
+ }], filterNumberMaxPlaceholder: [{
443
+ type: Input,
444
+ args: ['clrFilterNumberMaxPlaceholder']
445
+ }], filterNumberMinPlaceholder: [{
446
+ type: Input,
447
+ args: ['clrFilterNumberMinPlaceholder']
423
448
  }], updateFilterValue: [{
424
449
  type: Input,
425
450
  args: ['clrFilterValue']
@@ -427,4 +452,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
427
452
  type: Output,
428
453
  args: ['clrFilterValueChange']
429
454
  }] } });
430
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUVOLHVCQUF1QixHQUl4QixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFtRC9GLE1BQU0sT0FBTyxpQkFDWCxTQUFRLHVCQUF5RDtJQUdqRSxZ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LFlBQVksNEZBMVVoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDVDsyRkFTVSxpQkFBaUI7a0JBaEQ3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1Q7b0JBQ0QsU0FBUyxFQUFFLENBQUMseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7b0JBQ3hGLElBQUksRUFBRTt3QkFDSix5QkFBeUIsRUFBRSxNQUFNO3dCQUNqQyxrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixJQUFJLEVBQUUsY0FBYztxQkFDckI7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzBQQTJFSyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsY0FBYztnQkFlVixLQUFLO3NCQURmLEtBQUs7dUJBQUMsWUFBWTtnQkFzRFIsTUFBTTtzQkFEaEIsS0FBSzt1QkFBQyxhQUFhO2dCQXVDVCxNQUFNO3NCQURoQixLQUFLO3VCQUFDLGFBQWE7Z0JBYWdCLFlBQVk7c0JBQS9DLE1BQU07dUJBQUMsbUJBQW1CO2dCQWFoQixTQUFTO3NCQURuQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFzQ2dCLGVBQWU7c0JBQXJELE1BQU07dUJBQUMsc0JBQXNCO2dCQTRDbkIsZUFBZTtzQkFEekIsWUFBWTt1QkFBQyxZQUFZO2dCQVNmLGlCQUFpQjtzQkFEM0IsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBa0RTLGlCQUFpQjtzQkFBaEQsTUFBTTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBIb3N0V3JhcHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hvc3Qtd3JhcHBpbmcvaG9zdC13cmFwcGVyJztcbmltcG9ydCB7IERhdGFncmlkUHJvcGVydHlDb21wYXJhdG9yIH0gZnJvbSAnLi9idWlsdC1pbi9jb21wYXJhdG9ycy9kYXRhZ3JpZC1wcm9wZXJ0eS1jb21wYXJhdG9yJztcbmltcG9ydCB7IERhdGFncmlkUHJvcGVydHlTdHJpbmdGaWx0ZXIgfSBmcm9tICcuL2J1aWx0LWluL2ZpbHRlcnMvZGF0YWdyaWQtcHJvcGVydHktc3RyaW5nLWZpbHRlcic7XG5pbXBvcnQgeyBEYXRhZ3JpZFByb3BlcnR5TnVtZXJpY0ZpbHRlciB9IGZyb20gJy4vYnVpbHQtaW4vZmlsdGVycy9kYXRhZ3JpZC1wcm9wZXJ0eS1udW1lcmljLWZpbHRlcic7XG5pbXBvcnQgeyBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwgfSBmcm9tICcuL2J1aWx0LWluL2ZpbHRlcnMvZGF0YWdyaWQtc3RyaW5nLWZpbHRlci1pbXBsJztcbmltcG9ydCB7IERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwgfSBmcm9tICcuL2J1aWx0LWluL2ZpbHRlcnMvZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW1wbCc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZFNvcnRPcmRlciB9IGZyb20gJy4vZW51bXMvc29ydC1vcmRlci5lbnVtJztcbmltcG9ydCB7IENsckRhdGFncmlkQ29tcGFyYXRvckludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb21wYXJhdG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21GaWx0ZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9jdXN0b20tZmlsdGVyJztcbmltcG9ydCB7IEZpbHRlcnNQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2ZpbHRlcnMnO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4vcHJvdmlkZXJzL3NvcnQnO1xuaW1wb3J0IHsgRGF0YWdyaWRGaWx0ZXJSZWdpc3RyYXIgfSBmcm9tICcuL3V0aWxzL2RhdGFncmlkLWZpbHRlci1yZWdpc3RyYXInO1xuaW1wb3J0IHsgQ2xyRGF0YWdyaWRGaWx0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXcmFwcGVkQ29sdW1uIH0gZnJvbSAnLi93cmFwcGVkLWNvbHVtbic7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV0YWlsU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RldGFpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWNvbHVtbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRhdGFncmlkLWNvbHVtbi1mbGV4XCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGF0YWdyaWQtY29sdW1uLXRpdGxlXCIgKm5nSWY9XCJzb3J0YWJsZVwiIChjbGljayk9XCJzb3J0KClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5UaXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNvcnREaXJlY3Rpb25cIlxuICAgICAgICAgIHNoYXBlPVwiYXJyb3dcIlxuICAgICAgICAgIFthdHRyLmRpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwic29ydC1pY29uXCJcbiAgICAgICAgPjwvY2RzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDwhLS0gSSdtIHJlYWxseSBub3QgaGFwcHkgd2l0aCB0aGF0IHNlbGVjdCBzaW5jZSBpdCdzIG5vdCB2ZXJ5IHNjYWxhYmxlIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWRnLWZpbHRlciwgY2xyLWRnLXN0cmluZy1maWx0ZXIsIGNsci1kZy1udW1lcmljLWZpbHRlclwiPjwvbmctY29udGVudD5cblxuICAgICAgPGNsci1kZy1zdHJpbmctZmlsdGVyXG4gICAgICAgICpuZ0lmPVwiZmllbGQgJiYgIWN1c3RvbUZpbHRlciAmJiBjb2xUeXBlID09ICdzdHJpbmcnXCJcbiAgICAgICAgW2NsckRnU3RyaW5nRmlsdGVyXT1cInJlZ2lzdGVyZWRcIlxuICAgICAgICBbKGNsckZpbHRlclZhbHVlKV09XCJmaWx0ZXJWYWx1ZVwiXG4gICAgICA+PC9jbHItZGctc3RyaW5nLWZpbHRlcj5cblxuICAgICAgPGNsci1kZy1udW1lcmljLWZpbHRlclxuICAgICAgICAqbmdJZj1cImZpZWxkICYmICFjdXN0b21GaWx0ZXIgJiYgY29sVHlwZSA9PSAnbnVtYmVyJ1wiXG4gICAgICAgIFtjbHJEZ051bWVyaWNGaWx0ZXJdPVwicmVnaXN0ZXJlZFwiXG4gICAgICAgIFsoY2xyRmlsdGVyVmFsdWUpXT1cImZpbHRlclZhbHVlXCJcbiAgICAgID48L2Nsci1kZy1udW1lcmljLWZpbHRlcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5UaXRsZT5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGVcIiAqbmdJZj1cIiFzb3J0YWJsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uVGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPGNsci1kZy1jb2x1bW4tc2VwYXJhdG9yICpuZ0lmPVwic2hvd1NlcGFyYXRvclwiPjwvY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3I+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHByb3ZpZGVyczogW0NsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsIENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLCBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGFncmlkLWNvbHVtbl0nOiAndHJ1ZScsXG4gICAgJ1thdHRyLmFyaWEtc29ydF0nOiAnYXJpYVNvcnQnLFxuICAgIHJvbGU6ICdjb2x1bW5oZWFkZXInLFxuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWRDb2x1bW48VCA9IGFueT5cbiAgZXh0ZW5kcyBEYXRhZ3JpZEZpbHRlclJlZ2lzdHJhcjxULCBDbHJEYXRhZ3JpZEZpbHRlckludGVyZmFjZTxUPj5cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3NvcnQ6IFNvcnQ8VD4sXG4gICAgZmlsdGVyczogRmlsdGVyc1Byb3ZpZGVyPFQ+LFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZGV0YWlsU2VydmljZTogRGV0YWlsU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZmlsdGVycyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCkpO1xuICB9XG5cbiAgcHVibGljIHNob3dTZXBhcmF0b3IgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHNvcnQgc2VydmljZSBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JEZXRhaWxQYW5lQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxTZXJ2aWNlLnN0YXRlQ2hhbmdlLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG93U2VwYXJhdG9yICE9PSAhc3RhdGUpIHtcbiAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yID0gIXN0YXRlO1xuICAgICAgICAvLyBIYXZlIHRvIG1hbnVhbGx5IGNoYW5nZSBiZWNhdXNlIG9mIE9uUHVzaFxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydC5jaGFuZ2Uuc3Vic2NyaWJlKHNvcnQgPT4ge1xuICAgICAgLy8gTmVlZCB0byBtYW51YWxseSBtYXJrIHRoZSBjb21wb25lbnQgdG8gYmUgY2hlY2tlZFxuICAgICAgLy8gZm9yIGJvdGggYWN0aXZhdGluZyBhbmQgZGVhY3RpdmF0aW5nIHNvcnRpbmdcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAvLyBXZSdyZSBvbmx5IGxpc3RlbmluZyB0byBtYWtlIHN1cmUgd2UgZW1pdCBhbiBldmVudCB3aGVuIHRoZSBjb2x1bW4gZ29lcyBmcm9tIHNvcnRlZCB0byB1bnNvcnRlZFxuICAgICAgaWYgKHRoaXMuc29ydE9yZGVyICE9PSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5VTlNPUlRFRCAmJiBzb3J0LmNvbXBhcmF0b3IgIT09IHRoaXMuX3NvcnRCeSkge1xuICAgICAgICB0aGlzLl9zb3J0T3JkZXIgPSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5VTlNPUlRFRDtcbiAgICAgICAgdGhpcy5zb3J0T3JkZXJDaGFuZ2UuZW1pdCh0aGlzLl9zb3J0T3JkZXIpO1xuICAgICAgICAvLyByZW1vdmVzIHRoZSBzb3J0SWNvbiB3aGVuIGNvbHVtbiBiZWNvbWVzIHVuc29ydGVkXG4gICAgICAgIHRoaXMuc29ydEljb24gPSBudWxsO1xuICAgICAgICB0aGlzLl9zb3J0RGlyZWN0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIC8vIGRlcHJlY2F0ZWQ6IHRvIGJlIHJlbW92ZWQgLSBTVEFSVFxuICAgICAgaWYgKHRoaXMuc29ydGVkICYmIHNvcnQuY29tcGFyYXRvciAhPT0gdGhpcy5fc29ydEJ5KSB7XG4gICAgICAgIHRoaXMuX3NvcnRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNvcnRlZENoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIC8vIGRlcHJlY2F0ZWQ6IHRvIGJlIHJlbW92ZWQgLSBFTkRcbiAgICB9KTtcbiAgfVxuXG4gIC8qXG4gICAqIFdoYXQgdHlwZSBpcyB0aGlzIGNvbHVtbj8gIFRoaXMgZGVmYXVsdHMgdG8gU1RSSU5HLCBidXQgY2FuIGFsc28gYmVcbiAgICogc2V0IHRvIE5VTUJFUi4gIFVuc3VwcG9ydGVkIHR5cGVzIGRlZmF1bHQgdG8gU1RSSU5HLiBVc2VycyBjYW4gc2V0IGl0XG4gICAqIHZpYSB0aGUgW2NsckRnQ29sVHlwZV0gaW5wdXQgYnkgc2V0dGluZyBpdCB0byAnc3RyaW5nJyBvciAnbnVtYmVyJy5cbiAgICovXG5cbiAgcHJpdmF0ZSBfY29sVHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyA9ICdzdHJpbmcnO1xuXG4gIGdldCBjb2xUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xUeXBlO1xuICB9XG5cbiAgLy8gVE9ETzogV2UgbWlnaHQgd2FudCB0byBtYWtlIHRoaXMgYW4gZW51bSBpbiB0aGUgZnV0dXJlXG4gIEBJbnB1dCgnY2xyRGdDb2xUeXBlJylcbiAgc2V0IGNvbFR5cGUodmFsdWU6ICdzdHJpbmcnIHwgJ251bWJlcicpIHtcbiAgICB0aGlzLl9jb2xUeXBlID0gdmFsdWU7XG4gIH1cblxuICAvKlxuICAgKiBTaW1wbGUgb2JqZWN0IHByb3BlcnR5IHNob3J0Y3V0LCBhY3RpdmF0ZXMgYm90aCBzb3J0aW5nIGFuZCBmaWx0ZXJpbmdcbiAgICogYmFzZWQgb24gbmF0aXZlIGNvbXBhcmlzb24gb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvbiB0aGUgaXRlbXMuXG4gICAqL1xuICBwcml2YXRlIF9maWVsZDogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGZpZWxkKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRGdGaWVsZCcpXG4gIHB1YmxpYyBzZXQgZmllbGQoZmllbGQ6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9maWVsZCA9IGZpZWxkO1xuXG4gICAgICBpZiAoIXRoaXMuX3NvcnRCeSkge1xuICAgICAgICB0aGlzLl9zb3J0QnkgPSBuZXcgRGF0YWdyaWRQcm9wZXJ0eUNvbXBhcmF0b3IoZmllbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEZWZhdWx0RmlsdGVyKGZpZWxkOiBzdHJpbmcsIGNvbFR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicpIHtcbiAgICBpZiAoY29sVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuc2V0RmlsdGVyKG5ldyBEYXRhZ3JpZE51bWVyaWNGaWx0ZXJJbXBsKG5ldyBEYXRhZ3JpZFByb3BlcnR5TnVtZXJpY0ZpbHRlcihmaWVsZCkpKTtcbiAgICB9IGVsc2UgaWYgKGNvbFR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNldEZpbHRlcihuZXcgRGF0YWdyaWRTdHJpbmdGaWx0ZXJJbXBsKG5ldyBEYXRhZ3JpZFByb3BlcnR5U3RyaW5nRmlsdGVyKGZpZWxkKSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXIgJiYgdGhpcy5pbml0RmlsdGVyVmFsdWUpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyVmFsdWUgPSB0aGlzLmluaXRGaWx0ZXJWYWx1ZTtcbiAgICAgIC8vIFRoaXMgaW5pdEZpbHRlclZhbHVlIHNob3VsZCBiZSB1c2VkIG9ubHkgb25jZSBhZnRlciB0aGUgZmlsdGVyIHJlZ2lzdHJhdGlvblxuICAgICAgLy8gU28gZGVsZXRpbmcgdGhpcyBwcm9wZXJ0eSB2YWx1ZSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgdXNlZCBhZ2FpblxuICAgICAgLy8gaWYgdGhpcyBmaWVsZCBwcm9wZXJ0eSBpcyBzZXQgYWdhaW5cbiAgICAgIGRlbGV0ZSB0aGlzLmluaXRGaWx0ZXJWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5jb2xUeXBlICYmXG4gICAgICBjaGFuZ2VzLmNvbFR5cGUuY3VycmVudFZhbHVlICYmXG4gICAgICBjaGFuZ2VzLmNvbFR5cGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbFR5cGUucHJldmlvdXNWYWx1ZVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLmN1c3RvbUZpbHRlciAmJiAhdGhpcy5maWx0ZXIgJiYgdGhpcy5jb2xUeXBlICYmIHRoaXMuZmllbGQpIHtcbiAgICAgICAgdGhpcy5zZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCwgdGhpcy5jb2xUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuZmllbGQgJiYgY2hhbmdlcy5maWVsZC5jdXJyZW50VmFsdWUgJiYgY2hhbmdlcy5maWVsZC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZmllbGQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgaWYgKCF0aGlzLmN1c3RvbUZpbHRlciAmJiB0aGlzLmNvbFR5cGUpIHtcbiAgICAgICAgdGhpcy5zZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCwgdGhpcy5jb2xUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xyRGF0YWdyaWRDb21wYXJhdG9ySW50ZXJmYWNlIHRvIHVzZSB3aGVuIHNvcnRpbmcgdGhlIGNvbHVtblxuICAgKi9cblxuICBwcml2YXRlIF9zb3J0Qnk6IENsckRhdGFncmlkQ29tcGFyYXRvckludGVyZmFjZTxUPjtcblxuICBwdWJsaWMgZ2V0IHNvcnRCeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydEJ5O1xuICB9XG5cbiAgQElucHV0KCdjbHJEZ1NvcnRCeScpXG4gIHB1YmxpYyBzZXQgc29ydEJ5KGNvbXBhcmF0b3I6IENsckRhdGFncmlkQ29tcGFyYXRvckludGVyZmFjZTxUPiB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgY29tcGFyYXRvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX3NvcnRCeSA9IG5ldyBEYXRhZ3JpZFByb3BlcnR5Q29tcGFyYXRvcihjb21wYXJhdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgdGhpcy5fc29ydEJ5ID0gY29tcGFyYXRvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5fc29ydEJ5ID0gbmV3IERhdGFncmlkUHJvcGVydHlDb21wYXJhdG9yKHRoaXMuZmllbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zb3J0Qnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaXMgc29ydGFibGVcbiAgICovXG4gIHB1YmxpYyBnZXQgc29ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fc29ydEJ5O1xuICB9XG5cbiAgLy8gZGVwcmVjYXRlZDogdG8gYmUgcmVtb3ZlZCAtIFNUQVJUXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgc29ydGVkXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIHNvb24sIGluIGZhdm9yIG9mIHRoZSBzb3J0T3JkZXIgbWVjaGFuaXNtXG4gICAqL1xuICBwcml2YXRlIF9zb3J0ZWQgPSBmYWxzZTtcbiAgcHVibGljIGdldCBzb3J0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBzb29uLCBpbiBmYXZvciBvZiB0aGUgc29ydE9yZGVyIG1lY2hhbmlzbVxuICAgKi9cbiAgQElucHV0KCdjbHJEZ1NvcnRlZCcpXG4gIHB1YmxpYyBzZXQgc29ydGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLnNvcnRlZCkge1xuICAgICAgdGhpcy5fc29ydGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9zb3J0LmNsZWFyKCk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiAhdGhpcy5zb3J0ZWQpIHtcbiAgICAgIHRoaXMuc29ydCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBzb29uLCBpbiBmYXZvciBvZiB0aGUgc29ydE9yZGVyIG1lY2hhbmlzbVxuICAgKi9cbiAgQE91dHB1dCgnY2xyRGdTb3J0ZWRDaGFuZ2UnKSBwdWJsaWMgc29ydGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8vIGRlcHJlY2F0ZWQ6IHRvIGJlIHJlbW92ZWQgLSBFTkRcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGhvdyB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzb3J0ZWRcbiAgICovXG4gIHByaXZhdGUgX3NvcnRPcmRlcjogQ2xyRGF0YWdyaWRTb3J0T3JkZXIgPSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5VTlNPUlRFRDtcbiAgcHVibGljIGdldCBzb3J0T3JkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnRPcmRlcjtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRGdTb3J0T3JkZXInKVxuICBwdWJsaWMgc2V0IHNvcnRPcmRlcih2YWx1ZTogQ2xyRGF0YWdyaWRTb3J0T3JkZXIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG9ubHkgaWYgdGhlIGluY29taW5nIG9yZGVyIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IG9uZVxuICAgIGlmICh0aGlzLl9zb3J0T3JkZXIgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgLy8gdGhlIFVuc29ydGVkIGNhc2UgaGFwcGVucyB3aGVuIHRoZSBjdXJyZW50IHN0YXRlIGlzIGVpdGhlciBBc2Mgb3IgRGVzY1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgQ2xyRGF0YWdyaWRTb3J0T3JkZXIuVU5TT1JURUQ6XG4gICAgICAgIHRoaXMuX3NvcnQuY2xlYXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENsckRhdGFncmlkU29ydE9yZGVyLkFTQzpcbiAgICAgICAgdGhpcy5zb3J0KGZhbHNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENsckRhdGFncmlkU29ydE9yZGVyLkRFU0M6XG4gICAgICAgIHRoaXMuc29ydCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhcmlhU29ydCgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3NvcnRPcmRlcikge1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgQ2xyRGF0YWdyaWRTb3J0T3JkZXIuVU5TT1JURUQ6XG4gICAgICAgIHJldHVybiAnbm9uZSc7XG4gICAgICBjYXNlIENsckRhdGFncmlkU29ydE9yZGVyLkFTQzpcbiAgICAgICAgcmV0dXJuICdhc2NlbmRpbmcnO1xuICAgICAgY2FzZSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5ERVNDOlxuICAgICAgICByZXR1cm4gJ2Rlc2NlbmRpbmcnO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoJ2NsckRnU29ydE9yZGVyQ2hhbmdlJykgcHVibGljIHNvcnRPcmRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2xyRGF0YWdyaWRTb3J0T3JkZXI+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqXG4gICAqIFVzZSBgc29ydERpcmVjdGlvbmAgdG8gaW5kZW50aWZ5IHRoZSBzb3J0IGRpcmVjdGlvblxuICAgKi9cbiAgcHVibGljIHNvcnRJY29uOiBzdHJpbmcgfCBudWxsO1xuXG4gIHByaXZhdGUgX3NvcnREaXJlY3Rpb246ICd1cCcgfCAnZG93bicgfCBudWxsO1xuXG4gIHB1YmxpYyBnZXQgc29ydERpcmVjdGlvbigpOiAndXAnIHwgJ2Rvd24nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnREaXJlY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogU29ydHMgdGhlIGRhdGFncmlkIGJhc2VkIG9uIHRoaXMgY29sdW1uXG4gICAqL1xuICBwdWJsaWMgc29ydChyZXZlcnNlPzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5zb3J0YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3NvcnQudG9nZ2xlKHRoaXMuX3NvcnRCeSwgcmV2ZXJzZSk7XG5cbiAgICAvLyBzZXR0aW5nIHRoZSBwcml2YXRlIHZhcmlhYmxlIHRvIG5vdCByZXRyaWdnZXIgdGhlIHNldHRlciBsb2dpY1xuICAgIHRoaXMuX3NvcnRPcmRlciA9IHRoaXMuX3NvcnQucmV2ZXJzZSA/IENsckRhdGFncmlkU29ydE9yZGVyLkRFU0MgOiBDbHJEYXRhZ3JpZFNvcnRPcmRlci5BU0M7XG4gICAgLy8gU2V0cyB0aGUgY29ycmVjdCBpY29uIGZvciBjdXJyZW50IHNvcnQgb3JkZXJcbiAgICB0aGlzLl9zb3J0RGlyZWN0aW9uID0gdGhpcy5fc29ydE9yZGVyID09PSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5ERVNDID8gJ2Rvd24nIDogJ3VwJztcbiAgICB0aGlzLnNvcnRJY29uID0gdGhpcy5fc29ydE9yZGVyID09PSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5ERVNDID8gJ2Fycm93IGRvd24nIDogJ2Fycm93JzsgLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgIHRoaXMuc29ydE9yZGVyQ2hhbmdlLmVtaXQodGhpcy5fc29ydE9yZGVyKTtcblxuICAgIC8vIGRlcHJlY2F0ZWQ6IHRvIGJlIHJlbW92ZWQgLSBTVEFSVFxuICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7XG4gICAgdGhpcy5zb3J0ZWRDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAvLyBkZXByZWNhdGVkOiB0byBiZSByZW1vdmVkIC0gRU5EXG4gIH1cblxuICAvKipcbiAgICogQSBjdXN0b20gZmlsdGVyIGZvciB0aGlzIGNvbHVtbiB0aGF0IGNhbiBiZSBwcm92aWRlZCBpbiB0aGUgcHJvamVjdGVkIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyBjdXN0b21GaWx0ZXIgPSBmYWxzZTtcblxuICBAQ29udGVudENoaWxkKEN1c3RvbUZpbHRlcilcbiAgcHVibGljIHNldCBwcm9qZWN0ZWRGaWx0ZXIoY3VzdG9tOiBhbnkpIHtcbiAgICBpZiAoY3VzdG9tKSB7XG4gICAgICB0aGlzLmRlbGV0ZUZpbHRlcigpO1xuICAgICAgdGhpcy5jdXN0b21GaWx0ZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY2xyRmlsdGVyVmFsdWUnKVxuICBwdWJsaWMgc2V0IHVwZGF0ZUZpbHRlclZhbHVlKG5ld1ZhbHVlOiBzdHJpbmcgfCBbbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwpIHtcbiAgICAgICAgaWYgKCFuZXdWYWx1ZSB8fCB0eXBlb2YgbmV3VmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuZmlsdGVyLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXIudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlciBpbnN0YW5jZW9mIERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwpIHtcbiAgICAgICAgaWYgKCFuZXdWYWx1ZSB8fCAhKG5ld1ZhbHVlIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBbbnVsbCwgbnVsbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PT0gMiAmJiAobmV3VmFsdWVbMF0gIT09IHRoaXMuZmlsdGVyLnZhbHVlWzBdIHx8IG5ld1ZhbHVlWzFdICE9PSB0aGlzLmZpbHRlci52YWx1ZVsxXSkpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlci52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdEZpbHRlclZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBob2xkcyBmaWx0ZXIgdmFsdWUgdGVtcG9yYXJpbHkgd2hpbGUgdGhpcy5maWx0ZXIgcHJvcGVydHkgaXMgbm90IHlldCByZWdpc3RlcmVkXG4gIC8vIFdoZW4gdGhpcy5maWx0ZXIgaXMgcmVnaXN0ZXJlZCwgdGhpcyBwcm9wZXJ0eSB2YWx1ZSB3b3VsZCBiZSB1c2VkIHVwZGF0ZSB0aGlzLmZpbHRlci52YWx1ZVxuICAvL1xuICBwcml2YXRlIGluaXRGaWx0ZXJWYWx1ZTogc3RyaW5nIHwgW251bWJlciwgbnVtYmVyXTtcblxuICBwdWJsaWMgZ2V0IGZpbHRlclZhbHVlKCkge1xuICAgIGlmICh0aGlzLmZpbHRlciBpbnN0YW5jZW9mIERhdGFncmlkU3RyaW5nRmlsdGVySW1wbCB8fCB0aGlzLmZpbHRlciBpbnN0YW5jZW9mIERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlci52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQE5PVEUgdHlwZSBgYW55YCBoZXJlIGlzIHRvIGxldCB1cyBwYXNzIHRlbXBsYXRlU3RyaWN0TW9kZSwgYmVjYXVzZSBpbiBvdXIgY29kZSB3ZSB0cnkgdG8gaGFuZGxlXG4gICAqIHR3byB0eXBlcyBvZiBmaWx0ZXJzIFN0cmluZyBhbmQgTnVtYmVyIHdpdGggdGhlIHNhbWUgdmFyaWFibGUgYnV0IGJvdGggb2YgdGhlbSB3b3JrIHdpdGggZGlmZmVyZW50XG4gICAqIGZvcm1hdCB3ZSBnb3QgYW4gZXJyb3IgZm9yIGNhc3RpbmcuIFdlIGNvdWxkIG5vdCBjYXN0IGFueXRoaW5nIGluc2lkZSB0aGUgdGVtcGxhdGUgc28gdG8gbm90IG1lc3MgdGhlXG4gICAqIGNhc3RpbmcsIHRoZSBsYXN0IHR5cGUgaXMgc2V0IHRvIGBhbnlgXG4gICAqXG4gICAqIE9yaWduaWFsIHR5cGVzOiBzdHJpbmcgfCBbbnVtYmVyLCBudW1iZXJdXG4gICAqL1xuICBwdWJsaWMgc2V0IGZpbHRlclZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwgfHwgdGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBEYXRhZ3JpZE51bWVyaWNGaWx0ZXJJbXBsKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlclZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXIudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoJ2NsckZpbHRlclZhbHVlQ2hhbmdlJykgZmlsdGVyVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSB3cmFwcGVkSW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMud3JhcHBlZEluamVjdG9yID0gbmV3IEhvc3RXcmFwcGVyKFdyYXBwZWRDb2x1bW4sIHRoaXMudmNyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgX3ZpZXcoKSB7XG4gICAgcmV0dXJuIHRoaXMud3JhcHBlZEluamVjdG9yLmdldChXcmFwcGVkQ29sdW1uLCB0aGlzLnZjcikuY29sdW1uVmlldztcbiAgfVxufVxuIl19
455
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUVOLHVCQUF1QixHQUl4QixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7QUFzRC9GLE1BQU0sT0FBTyxpQkFDWCxTQUFRLHVCQUF5RDtJQUdqRSxZQUNVLEtBQWMsRUFDdEIsT0FBMkIsRUFDbkIsR0FBcUIsRUFDckIsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3JDLGFBQXNDO1FBRTdDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQVBQLFVBQUssR0FBTCxLQUFLLENBQVM7UUFFZCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQU94QyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUU1Qjs7V0FFRztRQUNLLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQXVDM0M7Ozs7V0FJRztRQUVLLGFBQVEsR0FBd0IsUUFBUSxDQUFDO1FBa0dqRCxvQ0FBb0M7UUFDcEM7Ozs7V0FJRztRQUNLLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFrQnhCOztXQUVHO1FBQ2lDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvRSxrQ0FBa0M7UUFFbEM7O1dBRUc7UUFDSyxlQUFVLEdBQXlCLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztRQTJDbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQXNDbEc7O1dBRUc7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQThFSSxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBNVZyRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQVNRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0RCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLDRDQUE0QztnQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hDLG9EQUFvRDtZQUNwRCwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLGtHQUFrRztZQUNsRyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssb0JBQW9CLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDeEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDM0Msb0RBQW9EO2dCQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDNUI7WUFDRCxvQ0FBb0M7WUFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQy9CO1lBQ0Qsa0NBQWtDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQseURBQXlEO0lBQ3pELElBQ0ksT0FBTyxDQUFDLEtBQTBCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFPRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQ1csS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFFcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWEsRUFBRSxPQUE0QjtRQUNwRSxJQUFJLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLElBQUksNkJBQTZCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pGO2FBQU0sSUFBSSxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzlDLDhFQUE4RTtZQUM5RSxzRUFBc0U7WUFDdEUsc0NBQXNDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxPQUFPLENBQUMsT0FBTztZQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUM1QixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDOUQ7WUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbkQ7U0FDRjtRQUNELElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUM3RyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbkQ7U0FDRjtJQUNILENBQUM7SUFRRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQ1csTUFBTSxDQUFDLFVBQXNEO1FBQ3RFLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRDthQUFNO1lBQ0wsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNEO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDckI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQVNELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLE1BQU0sQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQWFELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ1csU0FBUyxDQUFDLEtBQTJCO1FBQzlDLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELCtEQUErRDtRQUMvRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELFFBQVEsS0FBSyxFQUFFO1lBQ2IseUVBQXlFO1lBQ3pFLFFBQVE7WUFDUixLQUFLLG9CQUFvQixDQUFDLFFBQVE7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLG9CQUFvQixDQUFDLEdBQUc7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLG9CQUFvQixDQUFDLElBQUk7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLFFBQVE7WUFDUixLQUFLLG9CQUFvQixDQUFDLFFBQVE7Z0JBQ2hDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssb0JBQW9CLENBQUMsR0FBRztnQkFDM0IsT0FBTyxXQUFXLENBQUM7WUFDckIsS0FBSyxvQkFBb0IsQ0FBQyxJQUFJO2dCQUM1QixPQUFPLFlBQVksQ0FBQztTQUN2QjtJQUNILENBQUM7SUFhRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxPQUFpQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztRQUM1RiwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyx5QkFBeUI7UUFDakgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNDLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixrQ0FBa0M7SUFDcEMsQ0FBQztJQU9ELElBQ1csZUFBZSxDQUFDLE1BQVc7UUFDcEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBTUQsSUFBSSw0QkFBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzdFLENBQUM7SUFHRCxJQUFJLCtCQUErQjtRQUNqQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDN0UsQ0FBQztJQUdELElBQUksK0JBQStCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFDVyxpQkFBaUIsQ0FBQyxRQUFtQztRQUM5RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLFlBQVksd0JBQXdCLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO29CQUM3QyxRQUFRLEdBQUcsRUFBRSxDQUFDO2lCQUNmO2dCQUNELElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO29CQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7aUJBQzlCO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxZQUFZLHlCQUF5QixFQUFFO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVksS0FBSyxDQUFDLEVBQUU7b0JBQzdDLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDekI7Z0JBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDM0csSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2lCQUM5QjthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQU9ELElBQVcsV0FBVztRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLFlBQVksd0JBQXdCLElBQUksSUFBSSxDQUFDLE1BQU0sWUFBWSx5QkFBeUIsRUFBRTtZQUN2RyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsV0FBVyxDQUFDLFFBQWE7UUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxZQUFZLHdCQUF3QixJQUFJLElBQUksQ0FBQyxNQUFNLFlBQVkseUJBQXlCLEVBQUU7WUFDdkcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBTUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN0RSxDQUFDOzs4R0FuWFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMnpCQVJqQixDQUFDLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLHVFQXFTMUUsWUFBWSw0RkE5VWhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NUOzJGQVNVLGlCQUFpQjtrQkFuRDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztvQkFDeEYsSUFBSSxFQUFFO3dCQUNKLHlCQUF5QixFQUFFLE1BQU07d0JBQ2pDLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLElBQUksRUFBRSxjQUFjO3FCQUNyQjtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7MFBBNEVLLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxjQUFjO2dCQWVWLEtBQUs7c0JBRGYsS0FBSzt1QkFBQyxZQUFZO2dCQXNEUixNQUFNO3NCQURoQixLQUFLO3VCQUFDLGFBQWE7Z0JBdUNULE1BQU07c0JBRGhCLEtBQUs7dUJBQUMsYUFBYTtnQkFhZ0IsWUFBWTtzQkFBL0MsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBYWhCLFNBQVM7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQXNDZ0IsZUFBZTtzQkFBckQsTUFBTTt1QkFBQyxzQkFBc0I7Z0JBNENuQixlQUFlO3NCQUR6QixZQUFZO3VCQUFDLFlBQVk7Z0JBV2tCLHVCQUF1QjtzQkFBbEUsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBS1ksMEJBQTBCO3NCQUF4RSxLQUFLO3VCQUFDLCtCQUErQjtnQkFLUywwQkFBMEI7c0JBQXhFLEtBQUs7dUJBQUMsK0JBQStCO2dCQU0zQixpQkFBaUI7c0JBRDNCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQWtEUyxpQkFBaUI7c0JBQWhELE1BQU07dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBIb3N0V3JhcHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hvc3Qtd3JhcHBpbmcvaG9zdC13cmFwcGVyJztcbmltcG9ydCB7IERhdGFncmlkUHJvcGVydHlDb21wYXJhdG9yIH0gZnJvbSAnLi9idWlsdC1pbi9jb21wYXJhdG9ycy9kYXRhZ3JpZC1wcm9wZXJ0eS1jb21wYXJhdG9yJztcbmltcG9ydCB7IERhdGFncmlkUHJvcGVydHlTdHJpbmdGaWx0ZXIgfSBmcm9tICcuL2J1aWx0LWluL2ZpbHRlcnMvZGF0YWdyaWQtcHJvcGVydHktc3RyaW5nLWZpbHRlcic7XG5pbXBvcnQgeyBEYXRhZ3JpZFByb3BlcnR5TnVtZXJpY0ZpbHRlciB9IGZyb20gJy4vYnVpbHQtaW4vZmlsdGVycy9kYXRhZ3JpZC1wcm9wZXJ0eS1udW1lcmljLWZpbHRlcic7XG5pbXBvcnQgeyBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwgfSBmcm9tICcuL2J1aWx0LWluL2ZpbHRlcnMvZGF0YWdyaWQtc3RyaW5nLWZpbHRlci1pbXBsJztcbmltcG9ydCB7IERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwgfSBmcm9tICcuL2J1aWx0LWluL2ZpbHRlcnMvZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW1wbCc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZFNvcnRPcmRlciB9IGZyb20gJy4vZW51bXMvc29ydC1vcmRlci5lbnVtJztcbmltcG9ydCB7IENsckRhdGFncmlkQ29tcGFyYXRvckludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb21wYXJhdG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDdXN0b21GaWx0ZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9jdXN0b20tZmlsdGVyJztcbmltcG9ydCB7IEZpbHRlcnNQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2ZpbHRlcnMnO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4vcHJvdmlkZXJzL3NvcnQnO1xuaW1wb3J0IHsgRGF0YWdyaWRGaWx0ZXJSZWdpc3RyYXIgfSBmcm9tICcuL3V0aWxzL2RhdGFncmlkLWZpbHRlci1yZWdpc3RyYXInO1xuaW1wb3J0IHsgQ2xyRGF0YWdyaWRGaWx0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXcmFwcGVkQ29sdW1uIH0gZnJvbSAnLi93cmFwcGVkLWNvbHVtbic7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV0YWlsU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RldGFpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWNvbHVtbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRhdGFncmlkLWNvbHVtbi1mbGV4XCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGF0YWdyaWQtY29sdW1uLXRpdGxlXCIgKm5nSWY9XCJzb3J0YWJsZVwiIChjbGljayk9XCJzb3J0KClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5UaXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8Y2RzLWljb25cbiAgICAgICAgICAqbmdJZj1cInNvcnREaXJlY3Rpb25cIlxuICAgICAgICAgIHNoYXBlPVwiYXJyb3dcIlxuICAgICAgICAgIFthdHRyLmRpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwic29ydC1pY29uXCJcbiAgICAgICAgPjwvY2RzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDwhLS0gSSdtIHJlYWxseSBub3QgaGFwcHkgd2l0aCB0aGF0IHNlbGVjdCBzaW5jZSBpdCdzIG5vdCB2ZXJ5IHNjYWxhYmxlIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWRnLWZpbHRlciwgY2xyLWRnLXN0cmluZy1maWx0ZXIsIGNsci1kZy1udW1lcmljLWZpbHRlclwiPjwvbmctY29udGVudD5cblxuICAgICAgPGNsci1kZy1zdHJpbmctZmlsdGVyXG4gICAgICAgICpuZ0lmPVwiZmllbGQgJiYgIWN1c3RvbUZpbHRlciAmJiBjb2xUeXBlID09ICdzdHJpbmcnXCJcbiAgICAgICAgW2NsckZpbHRlclBsYWNlaG9sZGVyXT1cImZpbHRlclN0cmluZ1BsYWNlaG9sZGVyVmFsdWVcIlxuICAgICAgICBbY2xyRGdTdHJpbmdGaWx0ZXJdPVwicmVnaXN0ZXJlZFwiXG4gICAgICAgIFsoY2xyRmlsdGVyVmFsdWUpXT1cImZpbHRlclZhbHVlXCJcbiAgICAgID48L2Nsci1kZy1zdHJpbmctZmlsdGVyPlxuXG4gICAgICA8Y2xyLWRnLW51bWVyaWMtZmlsdGVyXG4gICAgICAgICpuZ0lmPVwiZmllbGQgJiYgIWN1c3RvbUZpbHRlciAmJiBjb2xUeXBlID09ICdudW1iZXInXCJcbiAgICAgICAgW2NsckZpbHRlck1heFBsYWNlaG9sZGVyXT1cImZpbHRlck1heFBsYWNlaG9sZGVyVmFsdWVcIlxuICAgICAgICBbY2xyRmlsdGVyTWluUGxhY2Vob2xkZXJdPVwiZmlsdGVyTWluUGxhY2Vob2xkZXJWYWx1ZVwiXG4gICAgICAgIFtjbHJEZ051bWVyaWNGaWx0ZXJdPVwicmVnaXN0ZXJlZFwiXG4gICAgICAgIFsoY2xyRmlsdGVyVmFsdWUpXT1cImZpbHRlclZhbHVlXCJcbiAgICAgID48L2Nsci1kZy1udW1lcmljLWZpbHRlcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNjb2x1bW5UaXRsZT5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGVcIiAqbmdJZj1cIiFzb3J0YWJsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uVGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPGNsci1kZy1jb2x1bW4tc2VwYXJhdG9yICpuZ0lmPVwic2hvd1NlcGFyYXRvclwiPjwvY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3I+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHByb3ZpZGVyczogW0NsclBvcG92ZXJQb3NpdGlvblNlcnZpY2UsIENsclBvcG92ZXJFdmVudHNTZXJ2aWNlLCBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGFncmlkLWNvbHVtbl0nOiAndHJ1ZScsXG4gICAgJ1thdHRyLmFyaWEtc29ydF0nOiAnYXJpYVNvcnQnLFxuICAgIHJvbGU6ICdjb2x1bW5oZWFkZXInLFxuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWRDb2x1bW48VCA9IGFueT5cbiAgZXh0ZW5kcyBEYXRhZ3JpZEZpbHRlclJlZ2lzdHJhcjxULCBDbHJEYXRhZ3JpZEZpbHRlckludGVyZmFjZTxUPj5cbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3NvcnQ6IFNvcnQ8VD4sXG4gICAgZmlsdGVyczogRmlsdGVyc1Byb3ZpZGVyPFQ+LFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZGV0YWlsU2VydmljZTogRGV0YWlsU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZmlsdGVycyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCkpO1xuICB9XG5cbiAgcHVibGljIHNob3dTZXBhcmF0b3IgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHNvcnQgc2VydmljZSBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLmRldGFpbFNlcnZpY2Uuc3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgIGlmICh0aGlzLnNob3dTZXBhcmF0b3IgIT09ICFzdGF0ZSkge1xuICAgICAgICB0aGlzLnNob3dTZXBhcmF0b3IgPSAhc3RhdGU7XG4gICAgICAgIC8vIEhhdmUgdG8gbWFudWFsbHkgY2hhbmdlIGJlY2F1c2Ugb2YgT25QdXNoXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvclNvcnRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLl9zb3J0LmNoYW5nZS5zdWJzY3JpYmUoc29ydCA9PiB7XG4gICAgICAvLyBOZWVkIHRvIG1hbnVhbGx5IG1hcmsgdGhlIGNvbXBvbmVudCB0byBiZSBjaGVja2VkXG4gICAgICAvLyBmb3IgYm90aCBhY3RpdmF0aW5nIGFuZCBkZWFjdGl2YXRpbmcgc29ydGluZ1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIC8vIFdlJ3JlIG9ubHkgbGlzdGVuaW5nIHRvIG1ha2Ugc3VyZSB3ZSBlbWl0IGFuIGV2ZW50IHdoZW4gdGhlIGNvbHVtbiBnb2VzIGZyb20gc29ydGVkIHRvIHVuc29ydGVkXG4gICAgICBpZiAodGhpcy5zb3J0T3JkZXIgIT09IENsckRhdGFncmlkU29ydE9yZGVyLlVOU09SVEVEICYmIHNvcnQuY29tcGFyYXRvciAhPT0gdGhpcy5fc29ydEJ5KSB7XG4gICAgICAgIHRoaXMuX3NvcnRPcmRlciA9IENsckRhdGFncmlkU29ydE9yZGVyLlVOU09SVEVEO1xuICAgICAgICB0aGlzLnNvcnRPcmRlckNoYW5nZS5lbWl0KHRoaXMuX3NvcnRPcmRlcik7XG4gICAgICAgIC8vIHJlbW92ZXMgdGhlIHNvcnRJY29uIHdoZW4gY29sdW1uIGJlY29tZXMgdW5zb3J0ZWRcbiAgICAgICAgdGhpcy5zb3J0SWNvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuX3NvcnREaXJlY3Rpb24gPSBudWxsO1xuICAgICAgfVxuICAgICAgLy8gZGVwcmVjYXRlZDogdG8gYmUgcmVtb3ZlZCAtIFNUQVJUXG4gICAgICBpZiAodGhpcy5zb3J0ZWQgJiYgc29ydC5jb21wYXJhdG9yICE9PSB0aGlzLl9zb3J0QnkpIHtcbiAgICAgICAgdGhpcy5fc29ydGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc29ydGVkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgfVxuICAgICAgLy8gZGVwcmVjYXRlZDogdG8gYmUgcmVtb3ZlZCAtIEVORFxuICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICogV2hhdCB0eXBlIGlzIHRoaXMgY29sdW1uPyAgVGhpcyBkZWZhdWx0cyB0byBTVFJJTkcsIGJ1dCBjYW4gYWxzbyBiZVxuICAgKiBzZXQgdG8gTlVNQkVSLiAgVW5zdXBwb3J0ZWQgdHlwZXMgZGVmYXVsdCB0byBTVFJJTkcuIFVzZXJzIGNhbiBzZXQgaXRcbiAgICogdmlhIHRoZSBbY2xyRGdDb2xUeXBlXSBpbnB1dCBieSBzZXR0aW5nIGl0IHRvICdzdHJpbmcnIG9yICdudW1iZXInLlxuICAgKi9cblxuICBwcml2YXRlIF9jb2xUeXBlOiAnc3RyaW5nJyB8ICdudW1iZXInID0gJ3N0cmluZyc7XG5cbiAgZ2V0IGNvbFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbFR5cGU7XG4gIH1cblxuICAvLyBUT0RPOiBXZSBtaWdodCB3YW50IHRvIG1ha2UgdGhpcyBhbiBlbnVtIGluIHRoZSBmdXR1cmVcbiAgQElucHV0KCdjbHJEZ0NvbFR5cGUnKVxuICBzZXQgY29sVHlwZSh2YWx1ZTogJ3N0cmluZycgfCAnbnVtYmVyJykge1xuICAgIHRoaXMuX2NvbFR5cGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qXG4gICAqIFNpbXBsZSBvYmplY3QgcHJvcGVydHkgc2hvcnRjdXQsIGFjdGl2YXRlcyBib3RoIHNvcnRpbmcgYW5kIGZpbHRlcmluZ1xuICAgKiBiYXNlZCBvbiBuYXRpdmUgY29tcGFyaXNvbiBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9uIHRoZSBpdGVtcy5cbiAgICovXG4gIHByaXZhdGUgX2ZpZWxkOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgZmllbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkO1xuICB9XG5cbiAgQElucHV0KCdjbHJEZ0ZpZWxkJylcbiAgcHVibGljIHNldCBmaWVsZChmaWVsZDogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2ZpZWxkID0gZmllbGQ7XG5cbiAgICAgIGlmICghdGhpcy5fc29ydEJ5KSB7XG4gICAgICAgIHRoaXMuX3NvcnRCeSA9IG5ldyBEYXRhZ3JpZFByb3BlcnR5Q29tcGFyYXRvcihmaWVsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cERlZmF1bHRGaWx0ZXIoZmllbGQ6IHN0cmluZywgY29sVHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJykge1xuICAgIGlmIChjb2xUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgdGhpcy5zZXRGaWx0ZXIobmV3IERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwobmV3IERhdGFncmlkUHJvcGVydHlOdW1lcmljRmlsdGVyKGZpZWxkKSkpO1xuICAgIH0gZWxzZSBpZiAoY29sVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2V0RmlsdGVyKG5ldyBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwobmV3IERhdGFncmlkUHJvcGVydHlTdHJpbmdGaWx0ZXIoZmllbGQpKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlciAmJiB0aGlzLmluaXRGaWx0ZXJWYWx1ZSkge1xuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJWYWx1ZSA9IHRoaXMuaW5pdEZpbHRlclZhbHVlO1xuICAgICAgLy8gVGhpcyBpbml0RmlsdGVyVmFsdWUgc2hvdWxkIGJlIHVzZWQgb25seSBvbmNlIGFmdGVyIHRoZSBmaWx0ZXIgcmVnaXN0cmF0aW9uXG4gICAgICAvLyBTbyBkZWxldGluZyB0aGlzIHByb3BlcnR5IHZhbHVlIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyB1c2VkIGFnYWluXG4gICAgICAvLyBpZiB0aGlzIGZpZWxkIHByb3BlcnR5IGlzIHNldCBhZ2FpblxuICAgICAgZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzLmNvbFR5cGUgJiZcbiAgICAgIGNoYW5nZXMuY29sVHlwZS5jdXJyZW50VmFsdWUgJiZcbiAgICAgIGNoYW5nZXMuY29sVHlwZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sVHlwZS5wcmV2aW91c1ZhbHVlXG4gICAgKSB7XG4gICAgICBpZiAoIXRoaXMuY3VzdG9tRmlsdGVyICYmICF0aGlzLmZpbHRlciAmJiB0aGlzLmNvbFR5cGUgJiYgdGhpcy5maWVsZCkge1xuICAgICAgICB0aGlzLnNldHVwRGVmYXVsdEZpbHRlcih0aGlzLmZpZWxkLCB0aGlzLmNvbFR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5maWVsZCAmJiBjaGFuZ2VzLmZpZWxkLmN1cnJlbnRWYWx1ZSAmJiBjaGFuZ2VzLmZpZWxkLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5maWVsZC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICBpZiAoIXRoaXMuY3VzdG9tRmlsdGVyICYmIHRoaXMuY29sVHlwZSkge1xuICAgICAgICB0aGlzLnNldHVwRGVmYXVsdEZpbHRlcih0aGlzLmZpZWxkLCB0aGlzLmNvbFR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbHJEYXRhZ3JpZENvbXBhcmF0b3JJbnRlcmZhY2UgdG8gdXNlIHdoZW4gc29ydGluZyB0aGUgY29sdW1uXG4gICAqL1xuXG4gIHByaXZhdGUgX3NvcnRCeTogQ2xyRGF0YWdyaWRDb21wYXJhdG9ySW50ZXJmYWNlPFQ+O1xuXG4gIHB1YmxpYyBnZXQgc29ydEJ5KCkge1xuICAgIHJldHVybiB0aGlzLl9zb3J0Qnk7XG4gIH1cblxuICBASW5wdXQoJ2NsckRnU29ydEJ5JylcbiAgcHVibGljIHNldCBzb3J0QnkoY29tcGFyYXRvcjogQ2xyRGF0YWdyaWRDb21wYXJhdG9ySW50ZXJmYWNlPFQ+IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBjb21wYXJhdG9yID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fc29ydEJ5ID0gbmV3IERhdGFncmlkUHJvcGVydHlDb21wYXJhdG9yKGNvbXBhcmF0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICB0aGlzLl9zb3J0QnkgPSBjb21wYXJhdG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQpIHtcbiAgICAgICAgICB0aGlzLl9zb3J0QnkgPSBuZXcgRGF0YWdyaWRQcm9wZXJ0eUNvbXBhcmF0b3IodGhpcy5maWVsZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuX3NvcnRCeTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBzb3J0YWJsZVxuICAgKi9cbiAgcHVibGljIGdldCBzb3J0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9zb3J0Qnk7XG4gIH1cblxuICAvLyBkZXByZWNhdGVkOiB0byBiZSByZW1vdmVkIC0gU1RBUlRcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzb3J0ZWRcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgc29vbiwgaW4gZmF2b3Igb2YgdGhlIHNvcnRPcmRlciBtZWNoYW5pc21cbiAgICovXG4gIHByaXZhdGUgX3NvcnRlZCA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IHNvcnRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIHNvb24sIGluIGZhdm9yIG9mIHRoZSBzb3J0T3JkZXIgbWVjaGFuaXNtXG4gICAqL1xuICBASW5wdXQoJ2NsckRnU29ydGVkJylcbiAgcHVibGljIHNldCBzb3J0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXZhbHVlICYmIHRoaXMuc29ydGVkKSB7XG4gICAgICB0aGlzLl9zb3J0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3NvcnQuY2xlYXIoKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmICF0aGlzLnNvcnRlZCkge1xuICAgICAgdGhpcy5zb3J0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIHNvb24sIGluIGZhdm9yIG9mIHRoZSBzb3J0T3JkZXIgbWVjaGFuaXNtXG4gICAqL1xuICBAT3V0cHV0KCdjbHJEZ1NvcnRlZENoYW5nZScpIHB1YmxpYyBzb3J0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLy8gZGVwcmVjYXRlZDogdG8gYmUgcmVtb3ZlZCAtIEVORFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaG93IHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IHNvcnRlZFxuICAgKi9cbiAgcHJpdmF0ZSBfc29ydE9yZGVyOiBDbHJEYXRhZ3JpZFNvcnRPcmRlciA9IENsckRhdGFncmlkU29ydE9yZGVyLlVOU09SVEVEO1xuICBwdWJsaWMgZ2V0IHNvcnRPcmRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydE9yZGVyO1xuICB9XG5cbiAgQElucHV0KCdjbHJEZ1NvcnRPcmRlcicpXG4gIHB1YmxpYyBzZXQgc29ydE9yZGVyKHZhbHVlOiBDbHJEYXRhZ3JpZFNvcnRPcmRlcikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gb25seSBpZiB0aGUgaW5jb21pbmcgb3JkZXIgaXMgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgb25lXG4gICAgaWYgKHRoaXMuX3NvcnRPcmRlciA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAvLyB0aGUgVW5zb3J0ZWQgY2FzZSBoYXBwZW5zIHdoZW4gdGhlIGN1cnJlbnQgc3RhdGUgaXMgZWl0aGVyIEFzYyBvciBEZXNjXG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5VTlNPUlRFRDpcbiAgICAgICAgdGhpcy5fc29ydC5jbGVhcigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2xyRGF0YWdyaWRTb3J0T3JkZXIuQVNDOlxuICAgICAgICB0aGlzLnNvcnQoZmFsc2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2xyRGF0YWdyaWRTb3J0T3JkZXIuREVTQzpcbiAgICAgICAgdGhpcy5zb3J0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFTb3J0KCkge1xuICAgIHN3aXRjaCAodGhpcy5fc29ydE9yZGVyKSB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBDbHJEYXRhZ3JpZFNvcnRPcmRlci5VTlNPUlRFRDpcbiAgICAgICAgcmV0dXJuICdub25lJztcbiAgICAgIGNhc2UgQ2xyRGF0YWdyaWRTb3J0T3JkZXIuQVNDOlxuICAgICAgICByZXR1cm4gJ2FzY2VuZGluZyc7XG4gICAgICBjYXNlIENsckRhdGFncmlkU29ydE9yZGVyLkRFU0M6XG4gICAgICAgIHJldHVybiAnZGVzY2VuZGluZyc7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgnY2xyRGdTb3J0T3JkZXJDaGFuZ2UnKSBwdWJsaWMgc29ydE9yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJEYXRhZ3JpZFNvcnRPcmRlcj4oKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICpcbiAgICogVXNlIGBzb3J0RGlyZWN0aW9uYCB0byBpbmRlbnRpZnkgdGhlIHNvcnQgZGlyZWN0aW9uXG4gICAqL1xuICBwdWJsaWMgc29ydEljb246IHN0cmluZyB8IG51bGw7XG5cbiAgcHJpdmF0ZSBfc29ydERpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyB8IG51bGw7XG5cbiAgcHVibGljIGdldCBzb3J0RGlyZWN0aW9uKCk6ICd1cCcgfCAnZG93bicgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydERpcmVjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0cyB0aGUgZGF0YWdyaWQgYmFzZWQgb24gdGhpcyBjb2x1bW5cbiAgICovXG4gIHB1YmxpYyBzb3J0KHJldmVyc2U/OiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLnNvcnRhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc29ydC50b2dnbGUodGhpcy5fc29ydEJ5LCByZXZlcnNlKTtcblxuICAgIC8vIHNldHRpbmcgdGhlIHByaXZhdGUgdmFyaWFibGUgdG8gbm90IHJldHJpZ2dlciB0aGUgc2V0dGVyIGxvZ2ljXG4gICAgdGhpcy5fc29ydE9yZGVyID0gdGhpcy5fc29ydC5yZXZlcnNlID8gQ2xyRGF0YWdyaWRTb3J0T3JkZXIuREVTQyA6IENsckRhdGFncmlkU29ydE9yZGVyLkFTQztcbiAgICAvLyBTZXRzIHRoZSBjb3JyZWN0IGljb24gZm9yIGN1cnJlbnQgc29ydCBvcmRlclxuICAgIHRoaXMuX3NvcnREaXJlY3Rpb24gPSB0aGlzLl9zb3J0T3JkZXIgPT09IENsckRhdGFncmlkU29ydE9yZGVyLkRFU0MgPyAnZG93bicgOiAndXAnO1xuICAgIHRoaXMuc29ydEljb24gPSB0aGlzLl9zb3J0T3JkZXIgPT09IENsckRhdGFncmlkU29ydE9yZGVyLkRFU0MgPyAnYXJyb3cgZG93bicgOiAnYXJyb3cnOyAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgdGhpcy5zb3J0T3JkZXJDaGFuZ2UuZW1pdCh0aGlzLl9zb3J0T3JkZXIpO1xuXG4gICAgLy8gZGVwcmVjYXRlZDogdG8gYmUgcmVtb3ZlZCAtIFNUQVJUXG4gICAgdGhpcy5fc29ydGVkID0gdHJ1ZTtcbiAgICB0aGlzLnNvcnRlZENoYW5nZS5lbWl0KHRydWUpO1xuICAgIC8vIGRlcHJlY2F0ZWQ6IHRvIGJlIHJlbW92ZWQgLSBFTkRcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBmaWx0ZXIgZm9yIHRoaXMgY29sdW1uIHRoYXQgY2FuIGJlIHByb3ZpZGVkIGluIHRoZSBwcm9qZWN0ZWQgY29udGVudFxuICAgKi9cbiAgcHVibGljIGN1c3RvbUZpbHRlciA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGQoQ3VzdG9tRmlsdGVyKVxuICBwdWJsaWMgc2V0IHByb2plY3RlZEZpbHRlcihjdXN0b206IGFueSkge1xuICAgIGlmIChjdXN0b20pIHtcbiAgICAgIHRoaXMuZGVsZXRlRmlsdGVyKCk7XG4gICAgICB0aGlzLmN1c3RvbUZpbHRlciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHAgd2l0aCBhY2Nlc3NpYmlsaXR5IGZvciBzY3JlZW4gcmVhZGVycyBieSBwcm92aWRpbmcgY3VzdG9tIHBsYWNlaG9sZGVyIHRleHQgaW5zaWRlIGludGVybmFsIGZpbHRlcnNcbiAgICovXG4gIEBJbnB1dCgnY2xyRmlsdGVyU3RyaW5nUGxhY2Vob2xkZXInKSBwdWJsaWMgZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgZ2V0IGZpbHRlclN0cmluZ1BsYWNlaG9sZGVyVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXIgfHwgdGhpcy5jb21tb25TdHJpbmdzLmtleXMuZmlsdGVySXRlbXM7XG4gIH1cblxuICBASW5wdXQoJ2NsckZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyJykgcHVibGljIGZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIGdldCBmaWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlclZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyIHx8IHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1heFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdjbHJGaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlcicpIHB1YmxpYyBmaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlcjogc3RyaW5nO1xuICBnZXQgZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXJWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlciB8fCB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5taW5WYWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRmlsdGVyVmFsdWUnKVxuICBwdWJsaWMgc2V0IHVwZGF0ZUZpbHRlclZhbHVlKG5ld1ZhbHVlOiBzdHJpbmcgfCBbbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwpIHtcbiAgICAgICAgaWYgKCFuZXdWYWx1ZSB8fCB0eXBlb2YgbmV3VmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuZmlsdGVyLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXIudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlciBpbnN0YW5jZW9mIERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwpIHtcbiAgICAgICAgaWYgKCFuZXdWYWx1ZSB8fCAhKG5ld1ZhbHVlIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBbbnVsbCwgbnVsbF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld1ZhbHVlLmxlbmd0aCA9PT0gMiAmJiAobmV3VmFsdWVbMF0gIT09IHRoaXMuZmlsdGVyLnZhbHVlWzBdIHx8IG5ld1ZhbHVlWzFdICE9PSB0aGlzLmZpbHRlci52YWx1ZVsxXSkpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlci52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdEZpbHRlclZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBob2xkcyBmaWx0ZXIgdmFsdWUgdGVtcG9yYXJpbHkgd2hpbGUgdGhpcy5maWx0ZXIgcHJvcGVydHkgaXMgbm90IHlldCByZWdpc3RlcmVkXG4gIC8vIFdoZW4gdGhpcy5maWx0ZXIgaXMgcmVnaXN0ZXJlZCwgdGhpcyBwcm9wZXJ0eSB2YWx1ZSB3b3VsZCBiZSB1c2VkIHVwZGF0ZSB0aGlzLmZpbHRlci52YWx1ZVxuICAvL1xuICBwcml2YXRlIGluaXRGaWx0ZXJWYWx1ZTogc3RyaW5nIHwgW251bWJlciwgbnVtYmVyXTtcblxuICBwdWJsaWMgZ2V0IGZpbHRlclZhbHVlKCkge1xuICAgIGlmICh0aGlzLmZpbHRlciBpbnN0YW5jZW9mIERhdGFncmlkU3RyaW5nRmlsdGVySW1wbCB8fCB0aGlzLmZpbHRlciBpbnN0YW5jZW9mIERhdGFncmlkTnVtZXJpY0ZpbHRlckltcGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlci52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQE5PVEUgdHlwZSBgYW55YCBoZXJlIGlzIHRvIGxldCB1cyBwYXNzIHRlbXBsYXRlU3RyaWN0TW9kZSwgYmVjYXVzZSBpbiBvdXIgY29kZSB3ZSB0cnkgdG8gaGFuZGxlXG4gICAqIHR3byB0eXBlcyBvZiBmaWx0ZXJzIFN0cmluZyBhbmQgTnVtYmVyIHdpdGggdGhlIHNhbWUgdmFyaWFibGUgYnV0IGJvdGggb2YgdGhlbSB3b3JrIHdpdGggZGlmZmVyZW50XG4gICAqIGZvcm1hdCB3ZSBnb3QgYW4gZXJyb3IgZm9yIGNhc3RpbmcuIFdlIGNvdWxkIG5vdCBjYXN0IGFueXRoaW5nIGluc2lkZSB0aGUgdGVtcGxhdGUgc28gdG8gbm90IG1lc3MgdGhlXG4gICAqIGNhc3RpbmcsIHRoZSBsYXN0IHR5cGUgaXMgc2V0IHRvIGBhbnlgXG4gICAqXG4gICAqIE9yaWduaWFsIHR5cGVzOiBzdHJpbmcgfCBbbnVtYmVyLCBudW1iZXJdXG4gICAqL1xuICBwdWJsaWMgc2V0IGZpbHRlclZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBEYXRhZ3JpZFN0cmluZ0ZpbHRlckltcGwgfHwgdGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBEYXRhZ3JpZE51bWVyaWNGaWx0ZXJJbXBsKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlclZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXIudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoJ2NsckZpbHRlclZhbHVlQ2hhbmdlJykgZmlsdGVyVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSB3cmFwcGVkSW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMud3JhcHBlZEluamVjdG9yID0gbmV3IEhvc3RXcmFwcGVyKFdyYXBwZWRDb2x1bW4sIHRoaXMudmNyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgX3ZpZXcoKSB7XG4gICAgcmV0dXJuIHRoaXMud3JhcHBlZEluamVjdG9yLmdldChXcmFwcGVkQ29sdW1uLCB0aGlzLnZjcikuY29sdW1uVmlldztcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
3
3
  * This software is released under MIT license.
4
4
  * The full license information can be found in LICENSE in the root directory of this project.
5
5
  */
@@ -7,13 +7,13 @@ import { Component } from '@angular/core';
7
7
  import * as i0 from "@angular/core";
8
8
  export class ClrDatagridDetailBody {
9
9
  }
10
- ClrDatagridDetailBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridDetailBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- ClrDatagridDetailBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatagridDetailBody, selector: "clr-dg-detail-body", host: { properties: { "class.datagrid-detail-body": "true" } }, ngImport: i0, template: `
10
+ ClrDatagridDetailBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridDetailBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ ClrDatagridDetailBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridDetailBody, selector: "clr-dg-detail-body", host: { properties: { "class.datagrid-detail-body": "true" } }, ngImport: i0, template: `
12
12
  <div class="clr-dg-detail-body-wrapper">
13
13
  <ng-content></ng-content>
14
14
  </div>
15
15
  `, isInline: true });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridDetailBody, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridDetailBody, decorators: [{
17
17
  type: Component,
18
18
  args: [{
19
19
  selector: 'clr-dg-detail-body',
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
27
27
  },
28
28
  }]
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL2RhdGFncmlkLWRldGFpbC1ib2R5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWExQyxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO3NHQUFyQixxQkFBcUIsMEhBVHRCOzs7O0dBSVQ7MkZBS1UscUJBQXFCO2tCQVhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELElBQUksRUFBRTt3QkFDSiw4QkFBOEIsRUFBRSxNQUFNO3FCQUN2QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGctZGV0YWlsLWJvZHknLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjbHItZGctZGV0YWlsLWJvZHktd3JhcHBlclwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kYXRhZ3JpZC1kZXRhaWwtYm9keV0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkRGV0YWlsQm9keSB7fVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL2RhdGFncmlkLWRldGFpbC1ib2R5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWExQyxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO3NHQUFyQixxQkFBcUIsMEhBVHRCOzs7O0dBSVQ7MkZBS1UscUJBQXFCO2tCQVhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELElBQUksRUFBRTt3QkFDSiw4QkFBOEIsRUFBRSxNQUFNO3FCQUN2QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1kZy1kZXRhaWwtYm9keScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNsci1kZy1kZXRhaWwtYm9keS13cmFwcGVyXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGFncmlkLWRldGFpbC1ib2R5XSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWREZXRhaWxCb2R5IHt9XG4iXX0=