@clr/angular 16.3.7 → 16.5.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 (511) hide show
  1. package/accordion/accordion-panel.d.ts +2 -0
  2. package/clarity.api.md +380 -134
  3. package/clr-angular.module.d.ts +7 -6
  4. package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +59 -0
  5. package/data/datagrid/datagrid.d.ts +7 -4
  6. package/data/datagrid/datagrid.module.d.ts +31 -30
  7. package/data/datagrid/index.d.ts +1 -0
  8. package/data/datagrid/interfaces/column-state.interface.d.ts +1 -0
  9. package/data/datagrid/providers/detail.service.d.ts +1 -0
  10. package/data/datagrid/render/cell-renderer.d.ts +3 -6
  11. package/data/datagrid/render/header-renderer.d.ts +2 -3
  12. package/data/datagrid/render/main-renderer.d.ts +5 -1
  13. package/data/datagrid/render/row-renderer.d.ts +4 -3
  14. package/data/datagrid/utils/key-navigation-grid.controller.d.ts +4 -1
  15. package/data/tree-view/recursive-children.d.ts +3 -0
  16. package/esm2020/accordion/accordion-content.mjs +3 -2
  17. package/esm2020/accordion/accordion-description.mjs +3 -2
  18. package/esm2020/accordion/accordion-panel.mjs +11 -4
  19. package/esm2020/accordion/accordion-title.mjs +3 -2
  20. package/esm2020/accordion/accordion.mjs +3 -2
  21. package/esm2020/accordion/accordion.module.mjs +3 -2
  22. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +3 -2
  23. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +3 -2
  24. package/esm2020/accordion/enums/accordion-status.enum.mjs +3 -2
  25. package/esm2020/accordion/enums/accordion-strategy.enum.mjs +3 -2
  26. package/esm2020/accordion/index.mjs +3 -2
  27. package/esm2020/accordion/models/accordion.model.mjs +3 -2
  28. package/esm2020/accordion/providers/accordion.service.mjs +3 -2
  29. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +3 -2
  30. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +3 -2
  31. package/esm2020/accordion/stepper/index.mjs +3 -2
  32. package/esm2020/accordion/stepper/models/stepper.model.mjs +3 -2
  33. package/esm2020/accordion/stepper/providers/stepper.service.mjs +3 -2
  34. package/esm2020/accordion/stepper/step-button.mjs +3 -2
  35. package/esm2020/accordion/stepper/stepper-panel.mjs +10 -5
  36. package/esm2020/accordion/stepper/stepper.mjs +3 -2
  37. package/esm2020/accordion/stepper/stepper.module.mjs +3 -2
  38. package/esm2020/accordion/utils/animation.mjs +3 -2
  39. package/esm2020/button/button-group/button-group.mjs +5 -4
  40. package/esm2020/button/button-group/button-group.module.mjs +3 -2
  41. package/esm2020/button/button-group/button.mjs +3 -2
  42. package/esm2020/button/button-group/index.mjs +3 -2
  43. package/esm2020/button/button-loading/index.mjs +3 -2
  44. package/esm2020/button/button-loading/loading-button.mjs +3 -2
  45. package/esm2020/button/button-loading/loading-button.module.mjs +3 -2
  46. package/esm2020/button/button.module.mjs +3 -2
  47. package/esm2020/button/index.mjs +3 -2
  48. package/esm2020/button/providers/button-group-focus-handler.service.mjs +3 -2
  49. package/esm2020/button/providers/button-group-focus.enum.mjs +3 -2
  50. package/esm2020/button/providers/button-in-group.service.mjs +3 -2
  51. package/esm2020/clr-angular.module.mjs +7 -2
  52. package/esm2020/data/data.module.mjs +3 -2
  53. package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +3 -2
  54. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +3 -2
  55. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +3 -2
  56. package/esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs +3 -2
  57. package/esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs +3 -2
  58. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +3 -2
  59. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +3 -2
  60. package/esm2020/data/datagrid/built-in/nested-property.mjs +3 -2
  61. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +3 -2
  62. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +3 -2
  63. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +3 -2
  64. package/esm2020/data/datagrid/datagrid-action-bar.mjs +3 -2
  65. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +3 -2
  66. package/esm2020/data/datagrid/datagrid-cell.mjs +3 -2
  67. package/esm2020/data/datagrid/datagrid-column-separator.mjs +3 -2
  68. package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +3 -2
  69. package/esm2020/data/datagrid/datagrid-column-toggle-trackby.mjs +3 -2
  70. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +3 -2
  71. package/esm2020/data/datagrid/datagrid-column.mjs +3 -2
  72. package/esm2020/data/datagrid/datagrid-detail-body.mjs +3 -2
  73. package/esm2020/data/datagrid/datagrid-detail-header.mjs +3 -2
  74. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +3 -2
  75. package/esm2020/data/datagrid/datagrid-detail.mjs +3 -2
  76. package/esm2020/data/datagrid/datagrid-filter.mjs +3 -2
  77. package/esm2020/data/datagrid/datagrid-footer.mjs +3 -2
  78. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +3 -2
  79. package/esm2020/data/datagrid/datagrid-if-detail.mjs +3 -2
  80. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +3 -2
  81. package/esm2020/data/datagrid/datagrid-items-trackby.mjs +3 -2
  82. package/esm2020/data/datagrid/datagrid-items.mjs +3 -2
  83. package/esm2020/data/datagrid/datagrid-page-size.mjs +3 -2
  84. package/esm2020/data/datagrid/datagrid-pagination.mjs +3 -2
  85. package/esm2020/data/datagrid/datagrid-placeholder.mjs +3 -2
  86. package/esm2020/data/datagrid/datagrid-row-detail.mjs +3 -2
  87. package/esm2020/data/datagrid/datagrid-row.mjs +5 -4
  88. package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +4 -3
  89. package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +225 -0
  90. package/esm2020/data/datagrid/datagrid.mjs +34 -11
  91. package/esm2020/data/datagrid/datagrid.module.mjs +7 -2
  92. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +3 -2
  93. package/esm2020/data/datagrid/enums/display-mode.enum.mjs +3 -2
  94. package/esm2020/data/datagrid/enums/render-step.enum.mjs +3 -2
  95. package/esm2020/data/datagrid/enums/selection-type.mjs +3 -2
  96. package/esm2020/data/datagrid/enums/sort-order.enum.mjs +3 -2
  97. package/esm2020/data/datagrid/index.mjs +4 -2
  98. package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +3 -2
  99. package/esm2020/data/datagrid/interfaces/comparator.interface.mjs +3 -2
  100. package/esm2020/data/datagrid/interfaces/filter.interface.mjs +3 -2
  101. package/esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs +3 -2
  102. package/esm2020/data/datagrid/interfaces/state.interface.mjs +3 -2
  103. package/esm2020/data/datagrid/interfaces/string-filter.interface.mjs +3 -2
  104. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +3 -2
  105. package/esm2020/data/datagrid/providers/column-state.provider.mjs +3 -2
  106. package/esm2020/data/datagrid/providers/columns.service.mjs +3 -2
  107. package/esm2020/data/datagrid/providers/custom-filter.mjs +3 -2
  108. package/esm2020/data/datagrid/providers/detail.service.mjs +8 -2
  109. package/esm2020/data/datagrid/providers/display-mode.service.mjs +3 -2
  110. package/esm2020/data/datagrid/providers/filters.mjs +3 -2
  111. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +3 -2
  112. package/esm2020/data/datagrid/providers/items.mjs +3 -2
  113. package/esm2020/data/datagrid/providers/page.mjs +3 -2
  114. package/esm2020/data/datagrid/providers/row-action-service.mjs +3 -2
  115. package/esm2020/data/datagrid/providers/selection.mjs +3 -2
  116. package/esm2020/data/datagrid/providers/sort.mjs +3 -2
  117. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +3 -2
  118. package/esm2020/data/datagrid/providers/state.provider.mjs +3 -2
  119. package/esm2020/data/datagrid/providers/table-size.service.mjs +3 -2
  120. package/esm2020/data/datagrid/render/cell-renderer.mjs +12 -34
  121. package/esm2020/data/datagrid/render/constants.mjs +3 -2
  122. package/esm2020/data/datagrid/render/header-renderer.mjs +27 -44
  123. package/esm2020/data/datagrid/render/main-renderer.mjs +56 -10
  124. package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +3 -2
  125. package/esm2020/data/datagrid/render/render-organizer.mjs +4 -3
  126. package/esm2020/data/datagrid/render/row-renderer.mjs +7 -6
  127. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +3 -2
  128. package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +18 -4
  129. package/esm2020/data/datagrid/wrapped-cell.mjs +3 -2
  130. package/esm2020/data/datagrid/wrapped-column.mjs +3 -2
  131. package/esm2020/data/datagrid/wrapped-row.mjs +3 -2
  132. package/esm2020/data/index.mjs +3 -2
  133. package/esm2020/data/stack-view/index.mjs +3 -2
  134. package/esm2020/data/stack-view/stack-block.mjs +3 -2
  135. package/esm2020/data/stack-view/stack-content-input.mjs +3 -2
  136. package/esm2020/data/stack-view/stack-header.mjs +3 -2
  137. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +3 -2
  138. package/esm2020/data/stack-view/stack-view.mjs +3 -2
  139. package/esm2020/data/stack-view/stack-view.module.mjs +3 -2
  140. package/esm2020/data/tree-view/index.mjs +3 -2
  141. package/esm2020/data/tree-view/models/async-array.mjs +3 -2
  142. package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +3 -2
  143. package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +3 -2
  144. package/esm2020/data/tree-view/models/selected-state.enum.mjs +3 -2
  145. package/esm2020/data/tree-view/models/tree-node.model.mjs +3 -2
  146. package/esm2020/data/tree-view/recursive-children.mjs +11 -4
  147. package/esm2020/data/tree-view/recursive-for-of.mjs +3 -2
  148. package/esm2020/data/tree-view/tree-features.service.mjs +3 -2
  149. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +3 -2
  150. package/esm2020/data/tree-view/tree-node-link.mjs +3 -2
  151. package/esm2020/data/tree-view/tree-node.mjs +5 -4
  152. package/esm2020/data/tree-view/tree-view.module.mjs +3 -2
  153. package/esm2020/data/tree-view/tree.mjs +3 -2
  154. package/esm2020/emphasis/alert/alert-item.mjs +3 -2
  155. package/esm2020/emphasis/alert/alert-text.mjs +3 -2
  156. package/esm2020/emphasis/alert/alert.mjs +5 -4
  157. package/esm2020/emphasis/alert/alert.module.mjs +3 -2
  158. package/esm2020/emphasis/alert/alerts-pager.mjs +5 -4
  159. package/esm2020/emphasis/alert/alerts.mjs +5 -4
  160. package/esm2020/emphasis/alert/index.mjs +3 -2
  161. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +3 -2
  162. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +3 -2
  163. package/esm2020/emphasis/alert/utils/alert-info-object.mjs +3 -2
  164. package/esm2020/emphasis/alert/utils/alert-types.mjs +3 -2
  165. package/esm2020/emphasis/emphasis.module.mjs +3 -2
  166. package/esm2020/emphasis/index.mjs +3 -2
  167. package/esm2020/forms/checkbox/checkbox-container.mjs +3 -2
  168. package/esm2020/forms/checkbox/checkbox-wrapper.mjs +3 -2
  169. package/esm2020/forms/checkbox/checkbox.mjs +3 -2
  170. package/esm2020/forms/checkbox/checkbox.module.mjs +3 -2
  171. package/esm2020/forms/checkbox/index.mjs +3 -2
  172. package/esm2020/forms/combobox/combobox-container.mjs +3 -2
  173. package/esm2020/forms/combobox/combobox.mjs +9 -5
  174. package/esm2020/forms/combobox/combobox.module.mjs +3 -2
  175. package/esm2020/forms/combobox/index.mjs +3 -2
  176. package/esm2020/forms/combobox/model/combobox.model.mjs +3 -2
  177. package/esm2020/forms/combobox/model/multi-select-combobox.model.mjs +3 -2
  178. package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +3 -2
  179. package/esm2020/forms/combobox/model/single-select-combobox.model.mjs +3 -2
  180. package/esm2020/forms/combobox/option-items.directive.mjs +3 -2
  181. package/esm2020/forms/combobox/option-selected.directive.mjs +3 -2
  182. package/esm2020/forms/combobox/option.mjs +3 -2
  183. package/esm2020/forms/combobox/options.mjs +8 -4
  184. package/esm2020/forms/combobox/providers/combobox-container.service.mjs +3 -2
  185. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +3 -2
  186. package/esm2020/forms/combobox/providers/option-selection.service.mjs +3 -2
  187. package/esm2020/forms/common/abstract-container.mjs +3 -2
  188. package/esm2020/forms/common/abstract-control.mjs +3 -2
  189. package/esm2020/forms/common/common.module.mjs +3 -2
  190. package/esm2020/forms/common/control-container.mjs +3 -2
  191. package/esm2020/forms/common/control.mjs +3 -2
  192. package/esm2020/forms/common/error.mjs +3 -2
  193. package/esm2020/forms/common/form.mjs +3 -2
  194. package/esm2020/forms/common/helper.mjs +3 -2
  195. package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +3 -2
  196. package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +3 -2
  197. package/esm2020/forms/common/if-control-state/if-error.mjs +3 -2
  198. package/esm2020/forms/common/if-control-state/if-success.mjs +3 -2
  199. package/esm2020/forms/common/index.mjs +3 -2
  200. package/esm2020/forms/common/label.mjs +3 -2
  201. package/esm2020/forms/common/layout.mjs +3 -2
  202. package/esm2020/forms/common/providers/container-id.service.mjs +3 -2
  203. package/esm2020/forms/common/providers/control-class.service.mjs +3 -2
  204. package/esm2020/forms/common/providers/control-id.service.mjs +3 -2
  205. package/esm2020/forms/common/providers/focus.service.mjs +3 -2
  206. package/esm2020/forms/common/providers/layout.service.mjs +3 -2
  207. package/esm2020/forms/common/providers/mark-control.service.mjs +3 -2
  208. package/esm2020/forms/common/providers/ng-control.service.mjs +3 -2
  209. package/esm2020/forms/common/success.mjs +3 -2
  210. package/esm2020/forms/common/wrapped-control.mjs +3 -2
  211. package/esm2020/forms/datalist/datalist-container.mjs +3 -2
  212. package/esm2020/forms/datalist/datalist-input.mjs +3 -2
  213. package/esm2020/forms/datalist/datalist.mjs +3 -2
  214. package/esm2020/forms/datalist/datalist.module.mjs +3 -2
  215. package/esm2020/forms/datalist/index.mjs +3 -2
  216. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +3 -2
  217. package/esm2020/forms/datepicker/calendar.mjs +3 -2
  218. package/esm2020/forms/datepicker/date-container.mjs +3 -2
  219. package/esm2020/forms/datepicker/date-input.mjs +3 -2
  220. package/esm2020/forms/datepicker/date-input.validator.mjs +3 -2
  221. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +5 -4
  222. package/esm2020/forms/datepicker/datepicker.module.mjs +3 -2
  223. package/esm2020/forms/datepicker/day.mjs +3 -2
  224. package/esm2020/forms/datepicker/daypicker.mjs +5 -4
  225. package/esm2020/forms/datepicker/index.mjs +3 -2
  226. package/esm2020/forms/datepicker/interfaces/date-range.interface.mjs +3 -2
  227. package/esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs +3 -2
  228. package/esm2020/forms/datepicker/model/calendar-view.model.mjs +3 -2
  229. package/esm2020/forms/datepicker/model/calendar.model.mjs +3 -2
  230. package/esm2020/forms/datepicker/model/day-view.model.mjs +3 -2
  231. package/esm2020/forms/datepicker/model/day.model.mjs +3 -2
  232. package/esm2020/forms/datepicker/model/year-range.model.mjs +3 -2
  233. package/esm2020/forms/datepicker/monthpicker.mjs +5 -3
  234. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +3 -2
  235. package/esm2020/forms/datepicker/providers/date-io.service.mjs +3 -2
  236. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +3 -2
  237. package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +3 -2
  238. package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +3 -2
  239. package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +3 -2
  240. package/esm2020/forms/datepicker/providers/view-manager.service.mjs +3 -2
  241. package/esm2020/forms/datepicker/utils/constants.mjs +3 -2
  242. package/esm2020/forms/datepicker/utils/date-utils.mjs +3 -2
  243. package/esm2020/forms/datepicker/yearpicker.mjs +5 -3
  244. package/esm2020/forms/file-input/file-input-container.mjs +157 -0
  245. package/esm2020/forms/file-input/file-input-validator.mjs +72 -0
  246. package/esm2020/forms/file-input/file-input-value-accessor.mjs +53 -0
  247. package/esm2020/forms/file-input/file-input.helpers.mjs +22 -0
  248. package/esm2020/forms/file-input/file-input.mjs +68 -0
  249. package/esm2020/forms/file-input/file-input.module.mjs +43 -0
  250. package/esm2020/forms/file-input/index.mjs +12 -0
  251. package/esm2020/forms/forms.module.mjs +7 -2
  252. package/esm2020/forms/index.mjs +4 -2
  253. package/esm2020/forms/input/index.mjs +3 -2
  254. package/esm2020/forms/input/input-container.mjs +3 -2
  255. package/esm2020/forms/input/input.mjs +3 -2
  256. package/esm2020/forms/input/input.module.mjs +3 -2
  257. package/esm2020/forms/password/index.mjs +3 -2
  258. package/esm2020/forms/password/password-container.mjs +3 -2
  259. package/esm2020/forms/password/password.mjs +3 -2
  260. package/esm2020/forms/password/password.module.mjs +3 -2
  261. package/esm2020/forms/radio/index.mjs +3 -2
  262. package/esm2020/forms/radio/radio-container.mjs +24 -5
  263. package/esm2020/forms/radio/radio-wrapper.mjs +3 -2
  264. package/esm2020/forms/radio/radio.mjs +3 -2
  265. package/esm2020/forms/radio/radio.module.mjs +3 -2
  266. package/esm2020/forms/range/index.mjs +3 -2
  267. package/esm2020/forms/range/range-container.mjs +3 -2
  268. package/esm2020/forms/range/range.mjs +3 -2
  269. package/esm2020/forms/range/range.module.mjs +3 -2
  270. package/esm2020/forms/select/index.mjs +3 -2
  271. package/esm2020/forms/select/select-container.mjs +3 -2
  272. package/esm2020/forms/select/select.mjs +3 -2
  273. package/esm2020/forms/select/select.module.mjs +3 -2
  274. package/esm2020/forms/textarea/index.mjs +3 -2
  275. package/esm2020/forms/textarea/textarea-container.mjs +3 -2
  276. package/esm2020/forms/textarea/textarea.mjs +3 -2
  277. package/esm2020/forms/textarea/textarea.module.mjs +3 -2
  278. package/esm2020/icon/icon.mjs +3 -2
  279. package/esm2020/icon/icon.module.mjs +3 -2
  280. package/esm2020/icon/index.mjs +3 -2
  281. package/esm2020/index.mjs +3 -2
  282. package/esm2020/layout/index.mjs +3 -2
  283. package/esm2020/layout/layout.module.mjs +3 -2
  284. package/esm2020/layout/main-container/index.mjs +3 -2
  285. package/esm2020/layout/main-container/main-container.mjs +3 -2
  286. package/esm2020/layout/main-container/main-container.module.mjs +3 -2
  287. package/esm2020/layout/nav/aria-current-link.mjs +3 -2
  288. package/esm2020/layout/nav/chocolate/index.mjs +3 -2
  289. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +3 -2
  290. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +3 -2
  291. package/esm2020/layout/nav/header.mjs +3 -2
  292. package/esm2020/layout/nav/index.mjs +3 -2
  293. package/esm2020/layout/nav/nav-level.mjs +3 -2
  294. package/esm2020/layout/nav/navigation.module.mjs +3 -2
  295. package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +3 -2
  296. package/esm2020/layout/nav/responsive-nav-codes.mjs +3 -2
  297. package/esm2020/layout/nav/responsive-nav-control-message.mjs +3 -2
  298. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +3 -2
  299. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +3 -2
  300. package/esm2020/layout/tabs/enums/tabs-layout.enum.mjs +3 -2
  301. package/esm2020/layout/tabs/index.mjs +3 -2
  302. package/esm2020/layout/tabs/providers/tabs.service.mjs +3 -2
  303. package/esm2020/layout/tabs/tab-content.mjs +4 -3
  304. package/esm2020/layout/tabs/tab-link.directive.mjs +3 -2
  305. package/esm2020/layout/tabs/tab-overflow-content.mjs +3 -2
  306. package/esm2020/layout/tabs/tab.mjs +3 -2
  307. package/esm2020/layout/tabs/tabs-id.provider.mjs +3 -2
  308. package/esm2020/layout/tabs/tabs.mjs +3 -2
  309. package/esm2020/layout/tabs/tabs.module.mjs +3 -2
  310. package/esm2020/layout/vertical-nav/index.mjs +3 -2
  311. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +3 -2
  312. package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +3 -2
  313. package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +3 -2
  314. package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +3 -2
  315. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +3 -2
  316. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +5 -4
  317. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +3 -2
  318. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +3 -2
  319. package/esm2020/layout/vertical-nav/vertical-nav.mjs +5 -4
  320. package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +3 -2
  321. package/esm2020/modal/index.mjs +5 -2
  322. package/esm2020/modal/modal-body.mjs +3 -2
  323. package/esm2020/modal/modal-configuration.service.mjs +20 -0
  324. package/esm2020/modal/modal-stack.service.mjs +3 -2
  325. package/esm2020/modal/modal.mjs +43 -18
  326. package/esm2020/modal/modal.module.mjs +6 -3
  327. package/esm2020/modal/side-panel.mjs +90 -0
  328. package/esm2020/modal/side-panel.module.mjs +28 -0
  329. package/esm2020/popover/common/abstract-popover.mjs +3 -2
  330. package/esm2020/popover/common/popover-host-anchor.token.mjs +3 -2
  331. package/esm2020/popover/common/popover-options.interface.mjs +3 -2
  332. package/esm2020/popover/common/popover.mjs +3 -2
  333. package/esm2020/popover/dropdown/dropdown-item.mjs +3 -2
  334. package/esm2020/popover/dropdown/dropdown-menu.mjs +3 -2
  335. package/esm2020/popover/dropdown/dropdown-trigger.mjs +3 -2
  336. package/esm2020/popover/dropdown/dropdown.mjs +3 -2
  337. package/esm2020/popover/dropdown/dropdown.module.mjs +3 -2
  338. package/esm2020/popover/dropdown/index.mjs +3 -2
  339. package/esm2020/popover/dropdown/menu-positions.mjs +3 -2
  340. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +3 -2
  341. package/esm2020/popover/dropdown/providers/dropdown.service.mjs +3 -2
  342. package/esm2020/popover/index.mjs +3 -2
  343. package/esm2020/popover/popover.module.mjs +3 -2
  344. package/esm2020/popover/signpost/index.mjs +3 -2
  345. package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +3 -2
  346. package/esm2020/popover/signpost/providers/signpost-id.service.mjs +3 -2
  347. package/esm2020/popover/signpost/signpost-content.mjs +3 -2
  348. package/esm2020/popover/signpost/signpost-positions.mjs +3 -2
  349. package/esm2020/popover/signpost/signpost-trigger.mjs +3 -2
  350. package/esm2020/popover/signpost/signpost.mjs +3 -2
  351. package/esm2020/popover/signpost/signpost.module.mjs +3 -2
  352. package/esm2020/popover/tooltip/index.mjs +3 -2
  353. package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +3 -2
  354. package/esm2020/popover/tooltip/providers/tooltip-mouse.service.mjs +3 -2
  355. package/esm2020/popover/tooltip/tooltip-content.mjs +3 -2
  356. package/esm2020/popover/tooltip/tooltip-trigger.mjs +3 -2
  357. package/esm2020/popover/tooltip/tooltip.mjs +3 -2
  358. package/esm2020/popover/tooltip/tooltip.module.mjs +3 -2
  359. package/esm2020/progress/progress-bars/index.mjs +3 -2
  360. package/esm2020/progress/progress-bars/progress-bar.mjs +3 -2
  361. package/esm2020/progress/progress-bars/progress-bar.module.mjs +3 -2
  362. package/esm2020/progress/spinner/index.mjs +3 -2
  363. package/esm2020/progress/spinner/spinner.mjs +3 -2
  364. package/esm2020/progress/spinner/spinner.module.mjs +3 -2
  365. package/esm2020/timeline/enums/timeline-layout.enum.mjs +3 -2
  366. package/esm2020/timeline/enums/timeline-step-state.enum.mjs +3 -2
  367. package/esm2020/timeline/index.mjs +3 -2
  368. package/esm2020/timeline/interface/icon-attribute.interface.mjs +3 -2
  369. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +3 -2
  370. package/esm2020/timeline/timeline-step-description.mjs +3 -2
  371. package/esm2020/timeline/timeline-step-header.mjs +3 -2
  372. package/esm2020/timeline/timeline-step-title.mjs +3 -2
  373. package/esm2020/timeline/timeline-step.mjs +3 -2
  374. package/esm2020/timeline/timeline.mjs +3 -2
  375. package/esm2020/timeline/timeline.module.mjs +3 -2
  376. package/esm2020/utils/animations/collapse/collapse.mjs +3 -2
  377. package/esm2020/utils/animations/collapse/index.mjs +3 -2
  378. package/esm2020/utils/animations/constants.mjs +3 -2
  379. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +19 -13
  380. package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +3 -2
  381. package/esm2020/utils/animations/expandable-animation/index.mjs +3 -2
  382. package/esm2020/utils/animations/fade/fade.mjs +3 -2
  383. package/esm2020/utils/animations/fade/index.mjs +3 -2
  384. package/esm2020/utils/animations/fade-slide/fade-slide.mjs +3 -2
  385. package/esm2020/utils/animations/fade-slide/index.mjs +3 -2
  386. package/esm2020/utils/animations/index.mjs +3 -2
  387. package/esm2020/utils/animations/slide/index.mjs +3 -2
  388. package/esm2020/utils/animations/slide/slide.mjs +3 -2
  389. package/esm2020/utils/assert/assert.helpers.mjs +3 -2
  390. package/esm2020/utils/breakpoints/breakpoints.mjs +3 -2
  391. package/esm2020/utils/cdk/cdk-drag.module.mjs +3 -2
  392. package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +3 -2
  393. package/esm2020/utils/chocolate/oompa-loompa.mjs +3 -2
  394. package/esm2020/utils/chocolate/willy-wonka.mjs +3 -2
  395. package/esm2020/utils/component/is-boolean-attribute-set.mjs +3 -2
  396. package/esm2020/utils/conditional/conditional.module.mjs +3 -2
  397. package/esm2020/utils/conditional/if-active.directive.mjs +3 -2
  398. package/esm2020/utils/conditional/if-active.service.mjs +3 -2
  399. package/esm2020/utils/conditional/if-expanded.directive.mjs +3 -2
  400. package/esm2020/utils/conditional/if-expanded.service.mjs +3 -2
  401. package/esm2020/utils/conditional/if-open.directive.mjs +3 -2
  402. package/esm2020/utils/conditional/index.mjs +3 -2
  403. package/esm2020/utils/destroy/destroy.service.mjs +3 -2
  404. package/esm2020/utils/destroy/index.mjs +3 -2
  405. package/esm2020/utils/dom-adapter/dom-adapter.mjs +15 -5
  406. package/esm2020/utils/enums/keys.enum.mjs +3 -2
  407. package/esm2020/utils/focus/arrow-key-direction.enum.mjs +3 -2
  408. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +3 -2
  409. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +3 -2
  410. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs +3 -2
  411. package/esm2020/utils/focus/focus-on-view-init/index.mjs +3 -2
  412. package/esm2020/utils/focus/focus-trap/index.mjs +3 -2
  413. package/esm2020/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.mjs +3 -2
  414. package/esm2020/utils/focus/focus.service.mjs +3 -2
  415. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +3 -2
  416. package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +3 -2
  417. package/esm2020/utils/focus/focusable-item/focusable-item.mjs +3 -2
  418. package/esm2020/utils/focus/focusable-item/linkers.mjs +3 -2
  419. package/esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs +3 -2
  420. package/esm2020/utils/focus/key-focus/index.mjs +3 -2
  421. package/esm2020/utils/focus/key-focus/interfaces.mjs +3 -2
  422. package/esm2020/utils/focus/key-focus/key-focus-item.mjs +3 -2
  423. package/esm2020/utils/focus/key-focus/key-focus.mjs +3 -2
  424. package/esm2020/utils/focus/key-focus/key-focus.module.mjs +3 -2
  425. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +3 -2
  426. package/esm2020/utils/focus/key-focus/util.mjs +3 -2
  427. package/esm2020/utils/focus/wrap-observable.mjs +3 -2
  428. package/esm2020/utils/forms/validation.mjs +3 -2
  429. package/esm2020/utils/host-wrapping/dynamic-wrapper.mjs +3 -2
  430. package/esm2020/utils/host-wrapping/empty-anchor.mjs +3 -2
  431. package/esm2020/utils/host-wrapping/host-wrapper.mjs +3 -2
  432. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +3 -2
  433. package/esm2020/utils/i18n/common-strings.default.mjs +11 -2
  434. package/esm2020/utils/i18n/common-strings.interface.mjs +3 -2
  435. package/esm2020/utils/i18n/common-strings.service.mjs +3 -2
  436. package/esm2020/utils/i18n/index.mjs +3 -2
  437. package/esm2020/utils/id-generator/id-generator.service.mjs +3 -2
  438. package/esm2020/utils/index.mjs +3 -2
  439. package/esm2020/utils/loading/index.mjs +3 -2
  440. package/esm2020/utils/loading/loading-listener.mjs +3 -2
  441. package/esm2020/utils/loading/loading.mjs +3 -2
  442. package/esm2020/utils/loading/loading.module.mjs +3 -2
  443. package/esm2020/utils/outside-click/index.mjs +3 -2
  444. package/esm2020/utils/outside-click/outside-click.mjs +3 -2
  445. package/esm2020/utils/outside-click/outside-click.module.mjs +3 -2
  446. package/esm2020/utils/popover/enums/alignment.enum.mjs +3 -2
  447. package/esm2020/utils/popover/enums/axis.enum.mjs +3 -2
  448. package/esm2020/utils/popover/enums/positions.enum.mjs +3 -2
  449. package/esm2020/utils/popover/enums/side.enum.mjs +3 -2
  450. package/esm2020/utils/popover/enums/viewport-violation.enum.mjs +3 -2
  451. package/esm2020/utils/popover/index.mjs +3 -2
  452. package/esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs +3 -2
  453. package/esm2020/utils/popover/interfaces/popover-position.interface.mjs +3 -2
  454. package/esm2020/utils/popover/interfaces/visibility-coords.interface.mjs +3 -2
  455. package/esm2020/utils/popover/popover-anchor.mjs +3 -2
  456. package/esm2020/utils/popover/popover-close-button.mjs +3 -2
  457. package/esm2020/utils/popover/popover-content.mjs +3 -2
  458. package/esm2020/utils/popover/popover-host.directive.mjs +3 -2
  459. package/esm2020/utils/popover/popover-open-close-button.mjs +3 -2
  460. package/esm2020/utils/popover/popover.module.mjs +3 -2
  461. package/esm2020/utils/popover/position-operators.mjs +3 -2
  462. package/esm2020/utils/popover/providers/popover-events.service.mjs +3 -2
  463. package/esm2020/utils/popover/providers/popover-position.service.mjs +3 -2
  464. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +3 -2
  465. package/esm2020/utils/popover/stop-escape-propagation.directive.mjs +3 -2
  466. package/esm2020/utils/scrolling/scrolling-service.mjs +3 -2
  467. package/esm2020/utils/template-ref/index.mjs +3 -2
  468. package/esm2020/utils/template-ref/template-ref-container.mjs +3 -2
  469. package/esm2020/utils/template-ref/template-ref.module.mjs +3 -2
  470. package/esm2020/wizard/heading-level.mjs +3 -2
  471. package/esm2020/wizard/index.mjs +3 -2
  472. package/esm2020/wizard/providers/button-hub.service.mjs +3 -2
  473. package/esm2020/wizard/providers/header-actions.service.mjs +3 -2
  474. package/esm2020/wizard/providers/page-collection.service.mjs +3 -2
  475. package/esm2020/wizard/providers/wizard-navigation.service.mjs +3 -2
  476. package/esm2020/wizard/wizard-button.mjs +3 -2
  477. package/esm2020/wizard/wizard-header-action.mjs +3 -2
  478. package/esm2020/wizard/wizard-page-buttons.mjs +3 -2
  479. package/esm2020/wizard/wizard-page-header-actions.mjs +3 -2
  480. package/esm2020/wizard/wizard-page-navtitle.mjs +3 -2
  481. package/esm2020/wizard/wizard-page-title.mjs +3 -2
  482. package/esm2020/wizard/wizard-page.mjs +3 -2
  483. package/esm2020/wizard/wizard-stepnav-item.mjs +3 -2
  484. package/esm2020/wizard/wizard-stepnav.mjs +3 -2
  485. package/esm2020/wizard/wizard-title.mjs +3 -2
  486. package/esm2020/wizard/wizard.mjs +5 -4
  487. package/esm2020/wizard/wizard.module.mjs +3 -2
  488. package/fesm2015/clr-angular.mjs +2040 -723
  489. package/fesm2015/clr-angular.mjs.map +1 -1
  490. package/fesm2020/clr-angular.mjs +2047 -735
  491. package/fesm2020/clr-angular.mjs.map +1 -1
  492. package/forms/combobox/options.d.ts +1 -0
  493. package/forms/file-input/file-input-container.d.ts +16 -0
  494. package/forms/file-input/file-input-validator.d.ts +12 -0
  495. package/forms/file-input/file-input-value-accessor.d.ts +15 -0
  496. package/forms/file-input/file-input.d.ts +21 -0
  497. package/forms/file-input/file-input.helpers.d.ts +3 -0
  498. package/forms/file-input/file-input.module.d.ts +14 -0
  499. package/forms/file-input/index.d.ts +5 -0
  500. package/forms/forms.module.d.ts +9 -8
  501. package/forms/index.d.ts +1 -0
  502. package/forms/radio/radio-container.d.ts +6 -2
  503. package/layout/tabs/tab-link.directive.d.ts +1 -1
  504. package/modal/index.d.ts +2 -0
  505. package/modal/modal-configuration.service.d.ts +7 -0
  506. package/modal/modal.d.ts +6 -1
  507. package/modal/side-panel.d.ts +26 -0
  508. package/modal/side-panel.module.d.ts +13 -0
  509. package/package.json +5 -5
  510. package/utils/animations/expandable-animation/expandable-animation.d.ts +5 -4
  511. package/utils/i18n/common-strings.interface.d.ts +6 -0
@@ -12,13 +12,14 @@ import * as i9 from "./forms/forms.module";
12
12
  import * as i10 from "./layout/layout.module";
13
13
  import * as i11 from "./popover/popover.module";
14
14
  import * as i12 from "./wizard/wizard.module";
15
- import * as i13 from "./accordion/stepper/stepper.module";
16
- import * as i14 from "./progress/spinner/spinner.module";
17
- import * as i15 from "./progress/progress-bars/progress-bar.module";
18
- import * as i16 from "./utils/popover/popover.module";
19
- import * as i17 from "./timeline/timeline.module";
15
+ import * as i13 from "./modal/side-panel.module";
16
+ import * as i14 from "./accordion/stepper/stepper.module";
17
+ import * as i15 from "./progress/spinner/spinner.module";
18
+ import * as i16 from "./progress/progress-bars/progress-bar.module";
19
+ import * as i17 from "./utils/popover/popover.module";
20
+ import * as i18 from "./timeline/timeline.module";
20
21
  export declare class ClarityModule {
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ClarityModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<ClarityModule, never, never, [typeof i1.ClrEmphasisModule, typeof i2.ClrDataModule, typeof i3.ClrIconModule, typeof i4.ClrModalModule, typeof i5.ClrLoadingModule, typeof i6.ClrConditionalModule, typeof i7.ClrFocusOnViewInitModule, typeof i8.ClrButtonModule, typeof i9.ClrFormsModule, typeof i10.ClrLayoutModule, typeof i11.ClrPopoverModule, typeof i12.ClrWizardModule, typeof i13.ClrStepperModule, typeof i14.ClrSpinnerModule, typeof i15.ClrProgressBarModule, typeof i16.ClrPopoverModuleNext, typeof i17.ClrTimelineModule]>;
23
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ClarityModule, never, never, [typeof i1.ClrEmphasisModule, typeof i2.ClrDataModule, typeof i3.ClrIconModule, typeof i4.ClrModalModule, typeof i5.ClrLoadingModule, typeof i6.ClrConditionalModule, typeof i7.ClrFocusOnViewInitModule, typeof i8.ClrButtonModule, typeof i9.ClrFormsModule, typeof i10.ClrLayoutModule, typeof i11.ClrPopoverModule, typeof i12.ClrWizardModule, typeof i13.ClrSidePanelModule, typeof i14.ClrStepperModule, typeof i15.ClrSpinnerModule, typeof i16.ClrProgressBarModule, typeof i17.ClrPopoverModuleNext, typeof i18.ClrTimelineModule]>;
23
24
  static ɵinj: i0.ɵɵInjectorDeclaration<ClarityModule>;
24
25
  }
@@ -0,0 +1,59 @@
1
+ import { Directionality } from '@angular/cdk/bidi';
2
+ import { ListRange } from '@angular/cdk/collections';
3
+ import { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualForOfContext, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';
4
+ import { AfterViewInit, ChangeDetectorRef, DoCheck, EnvironmentInjector, EventEmitter, IterableDiffers, NgZone, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
5
+ import { ClrDatagrid } from './datagrid';
6
+ import { Items } from './providers/items';
7
+ import * as i0 from "@angular/core";
8
+ declare type CdkVirtualForInputKey = 'cdkVirtualForOf' | 'cdkVirtualForTrackBy' | 'cdkVirtualForTemplate' | 'cdkVirtualForTemplateCacheSize';
9
+ declare type CdkVirtualForInputs<T> = Partial<Pick<CdkVirtualForOf<T>, CdkVirtualForInputKey>>;
10
+ declare type CdkFixedSizeVirtualScrollInputs = Pick<CdkFixedSizeVirtualScroll, 'itemSize' | 'minBufferPx' | 'maxBufferPx'>;
11
+ export declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewInit, DoCheck, OnDestroy {
12
+ private readonly changeDetectorRef;
13
+ private iterableDiffers;
14
+ private items;
15
+ private readonly ngZone;
16
+ private readonly templateRef;
17
+ private readonly viewContainerRef;
18
+ private readonly directionality;
19
+ private readonly scrollDispatcher;
20
+ private readonly viewportRuler;
21
+ private readonly datagrid;
22
+ private readonly injector;
23
+ renderedRangeChange: EventEmitter<ListRange>;
24
+ private _cdkFixedSizeVirtualScrollInputs;
25
+ private readonly datagridElementRef;
26
+ private gridRoleElement;
27
+ private readonly virtualScrollStrategy;
28
+ private virtualScrollViewport;
29
+ private cdkVirtualFor;
30
+ private subscriptions;
31
+ private mutationChanges;
32
+ private cdkVirtualForInputs;
33
+ constructor(changeDetectorRef: ChangeDetectorRef, iterableDiffers: IterableDiffers, items: Items<T>, ngZone: NgZone, templateRef: TemplateRef<CdkVirtualForOfContext<T>>, viewContainerRef: ViewContainerRef, directionality: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, datagrid: ClrDatagrid, injector: EnvironmentInjector);
34
+ get cdkVirtualForOf(): CdkVirtualForInputs<T>['cdkVirtualForOf'];
35
+ set cdkVirtualForOf(value: CdkVirtualForInputs<T>['cdkVirtualForOf']);
36
+ get cdkVirtualForTrackBy(): CdkVirtualForInputs<T>['cdkVirtualForTrackBy'];
37
+ set cdkVirtualForTrackBy(value: CdkVirtualForInputs<T>['cdkVirtualForTrackBy']);
38
+ get cdkVirtualForTemplate(): CdkVirtualForInputs<T>['cdkVirtualForTemplate'];
39
+ set cdkVirtualForTemplate(value: CdkVirtualForInputs<T>['cdkVirtualForTemplate']);
40
+ get cdkVirtualForTemplateCacheSize(): CdkVirtualForInputs<T>['cdkVirtualForTemplateCacheSize'];
41
+ set cdkVirtualForTemplateCacheSize(value: CdkVirtualForInputs<T>['cdkVirtualForTemplateCacheSize']);
42
+ get itemSize(): CdkFixedSizeVirtualScrollInputs['itemSize'];
43
+ set itemSize(value: CdkFixedSizeVirtualScrollInputs['itemSize']);
44
+ get minBufferPx(): CdkFixedSizeVirtualScrollInputs['minBufferPx'];
45
+ set minBufferPx(value: CdkFixedSizeVirtualScrollInputs['minBufferPx']);
46
+ get maxBufferPx(): CdkFixedSizeVirtualScrollInputs['maxBufferPx'];
47
+ set maxBufferPx(value: CdkFixedSizeVirtualScrollInputs['maxBufferPx']);
48
+ ngAfterViewInit(): void;
49
+ ngDoCheck(): void;
50
+ ngOnDestroy(): void;
51
+ private updateCdkVirtualForInputs;
52
+ private updateFixedSizeVirtualScrollInputs;
53
+ private updateAriaRowCount;
54
+ private updateAriaRowIndexes;
55
+ private createVirtualScrollViewportForDatagrid;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridVirtualScrollDirective<any>, [null, null, { skipSelf: true; }, null, null, null, null, null, null, null, null]>;
57
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDatagridVirtualScrollDirective<any>, "[ClrVirtualScroll]", never, { "cdkVirtualForOf": "clrVirtualRowsOf"; "cdkVirtualForTrackBy": "clrVirtualRowsTrackBy"; "cdkVirtualForTemplate": "clrVirtualRowsTemplate"; "cdkVirtualForTemplateCacheSize": "clrVirtualRowsTemplateCacheSize"; "itemSize": "clrVirtualRowsItemSize"; "minBufferPx": "clrVirtualRowsMinBufferPx"; "maxBufferPx": "clrVirtualRowsMaxBufferPx"; }, { "renderedRangeChange": "renderedRangeChange"; }, never, never, false, never>;
58
+ }
59
+ export {};
@@ -29,12 +29,13 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
29
29
  private renderer;
30
30
  detailService: DetailService;
31
31
  private document;
32
- private el;
32
+ el: ElementRef<HTMLElement>;
33
33
  private page;
34
34
  commonStrings: ClrCommonStringsService;
35
35
  private columnsService;
36
- private keyNavigation;
36
+ keyNavigation: KeyNavigationGridController;
37
37
  private zone;
38
+ loadingMoreItems: boolean;
38
39
  clrDgSingleSelectionAriaLabel: string;
39
40
  clrDgSingleActionableAriaLabel: string;
40
41
  clrDetailExpandableAriaLabel: string;
@@ -63,6 +64,7 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
63
64
  * displayed, typically for selection.
64
65
  */
65
66
  rows: QueryList<ClrDatagridRow<T>>;
67
+ datagrid: ElementRef;
66
68
  datagridTable: ElementRef;
67
69
  scrollableColumns: ViewContainerRef;
68
70
  _projectedDisplayColumns: ViewContainerRef;
@@ -70,12 +72,13 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
70
72
  _displayedRows: ViewContainerRef;
71
73
  _calculationRows: ViewContainerRef;
72
74
  selectAllId: string;
75
+ hasVirtualScroller: boolean;
73
76
  SELECTION_TYPE: typeof SelectionType;
74
77
  /**
75
78
  * Subscriptions to all the services and queries changes
76
79
  */
77
80
  private _subscriptions;
78
- constructor(organizer: DatagridRenderOrganizer, items: Items<T>, expandableRows: ExpandableRowsCount, selection: Selection<T>, rowActionService: RowActionService, stateProvider: StateProvider<T>, displayMode: DisplayModeService, renderer: Renderer2, detailService: DetailService, document: any, el: ElementRef, page: Page, commonStrings: ClrCommonStringsService, columnsService: ColumnsService, keyNavigation: KeyNavigationGridController, zone: NgZone);
81
+ constructor(organizer: DatagridRenderOrganizer, items: Items<T>, expandableRows: ExpandableRowsCount, selection: Selection<T>, rowActionService: RowActionService, stateProvider: StateProvider<T>, displayMode: DisplayModeService, renderer: Renderer2, detailService: DetailService, document: any, el: ElementRef<HTMLElement>, page: Page, commonStrings: ClrCommonStringsService, columnsService: ColumnsService, keyNavigation: KeyNavigationGridController, zone: NgZone);
79
82
  /**
80
83
  * Freezes the datagrid while data is loading
81
84
  */
@@ -114,5 +117,5 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
114
117
  */
115
118
  dataChanged(): void;
116
119
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagrid<any>, never>;
117
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "clrDgSingleSelectionAriaLabel": "clrDgSingleSelectionAriaLabel"; "clrDgSingleActionableAriaLabel": "clrDgSingleActionableAriaLabel"; "clrDetailExpandableAriaLabel": "clrDetailExpandableAriaLabel"; "clrDgDisablePageFocus": "clrDgDisablePageFocus"; "loading": "clrDgLoading"; "selected": "clrDgSelected"; "singleSelected": "clrDgSingleSelected"; "clrDgPreserveSelection": "clrDgPreserveSelection"; "rowSelectionMode": "clrDgRowSelection"; "trackBy": "clrDgItemsTrackBy"; }, { "selectedChanged": "clrDgSelectedChange"; "singleSelectedChanged": "clrDgSingleSelectedChange"; "refresh": "clrDgRefresh"; }, ["iterator", "placeholder", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
120
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "loadingMoreItems": "clrLoadingMoreItems"; "clrDgSingleSelectionAriaLabel": "clrDgSingleSelectionAriaLabel"; "clrDgSingleActionableAriaLabel": "clrDgSingleActionableAriaLabel"; "clrDetailExpandableAriaLabel": "clrDetailExpandableAriaLabel"; "clrDgDisablePageFocus": "clrDgDisablePageFocus"; "loading": "clrDgLoading"; "selected": "clrDgSelected"; "singleSelected": "clrDgSingleSelected"; "clrDgPreserveSelection": "clrDgPreserveSelection"; "rowSelectionMode": "clrDgRowSelection"; "trackBy": "clrDgItemsTrackBy"; }, { "selectedChanged": "clrDgSelectedChange"; "singleSelectedChanged": "clrDgSingleSelectedChange"; "refresh": "clrDgRefresh"; }, ["iterator", "placeholder", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
118
121
  }
@@ -20,39 +20,40 @@ import * as i17 from "./datagrid-placeholder";
20
20
  import * as i18 from "./datagrid-row";
21
21
  import * as i19 from "./datagrid-row-detail";
22
22
  import * as i20 from "./datagrid-selection-cell.directive";
23
- import * as i21 from "./datagrid-if-detail";
24
- import * as i22 from "./datagrid-detail-registerer";
25
- import * as i23 from "./wrapped-cell";
26
- import * as i24 from "./wrapped-column";
27
- import * as i25 from "./wrapped-row";
28
- import * as i26 from "./render/cell-renderer";
29
- import * as i27 from "./render/header-renderer";
30
- import * as i28 from "./render/main-renderer";
31
- import * as i29 from "./render/row-renderer";
32
- import * as i30 from "./chocolate/actionable-oompa-loompa";
33
- import * as i31 from "./chocolate/datagrid-willy-wonka";
34
- import * as i32 from "./chocolate/expandable-oompa-loompa";
35
- import * as i33 from "./built-in/filters/datagrid-numeric-filter";
36
- import * as i34 from "./built-in/filters/datagrid-string-filter";
37
- import * as i35 from "./datagrid-column-toggle";
38
- import * as i36 from "./datagrid-column-toggle-button";
39
- import * as i37 from "@angular/common";
40
- import * as i38 from "../../utils/cdk/cdk-drag.module";
41
- import * as i39 from "../../utils/cdk/cdk-trap-focus.module";
42
- import * as i40 from "../../icon/icon.module";
43
- import * as i41 from "../../forms/forms.module";
44
- import * as i42 from "@angular/forms";
45
- import * as i43 from "../../utils/loading/loading.module";
46
- import * as i44 from "../../utils/conditional/conditional.module";
47
- import * as i45 from "../../utils/outside-click/outside-click.module";
48
- import * as i46 from "../../utils/animations/expandable-animation/expandable-animation.module";
49
- import * as i47 from "../../progress/spinner/spinner.module";
50
- import * as i48 from "../../utils/popover/popover.module";
51
- import * as i49 from "../../utils/focus/key-focus/key-focus.module";
23
+ import * as i21 from "./datagrid-virtual-scroll.directive";
24
+ import * as i22 from "./datagrid-if-detail";
25
+ import * as i23 from "./datagrid-detail-registerer";
26
+ import * as i24 from "./wrapped-cell";
27
+ import * as i25 from "./wrapped-column";
28
+ import * as i26 from "./wrapped-row";
29
+ import * as i27 from "./render/cell-renderer";
30
+ import * as i28 from "./render/header-renderer";
31
+ import * as i29 from "./render/main-renderer";
32
+ import * as i30 from "./render/row-renderer";
33
+ import * as i31 from "./chocolate/actionable-oompa-loompa";
34
+ import * as i32 from "./chocolate/datagrid-willy-wonka";
35
+ import * as i33 from "./chocolate/expandable-oompa-loompa";
36
+ import * as i34 from "./built-in/filters/datagrid-numeric-filter";
37
+ import * as i35 from "./built-in/filters/datagrid-string-filter";
38
+ import * as i36 from "./datagrid-column-toggle";
39
+ import * as i37 from "./datagrid-column-toggle-button";
40
+ import * as i38 from "@angular/common";
41
+ import * as i39 from "../../utils/cdk/cdk-drag.module";
42
+ import * as i40 from "../../utils/cdk/cdk-trap-focus.module";
43
+ import * as i41 from "../../icon/icon.module";
44
+ import * as i42 from "../../forms/forms.module";
45
+ import * as i43 from "@angular/forms";
46
+ import * as i44 from "../../utils/loading/loading.module";
47
+ import * as i45 from "../../utils/conditional/conditional.module";
48
+ import * as i46 from "../../utils/outside-click/outside-click.module";
49
+ import * as i47 from "../../utils/animations/expandable-animation/expandable-animation.module";
50
+ import * as i48 from "../../progress/spinner/spinner.module";
51
+ import * as i49 from "../../utils/popover/popover.module";
52
+ import * as i50 from "../../utils/focus/key-focus/key-focus.module";
52
53
  export declare const CLR_DATAGRID_DIRECTIVES: Type<any>[];
53
54
  export declare class ClrDatagridModule {
54
55
  constructor();
55
56
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridModule, never>;
56
- static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDatagridModule, [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridItemsTrackBy, typeof i15.ClrDatagridPageSize, typeof i16.ClrDatagridPagination, typeof i17.ClrDatagridPlaceholder, typeof i18.ClrDatagridRow, typeof i19.ClrDatagridRowDetail, typeof i20.ClrDatagridSelectionCellDirective, typeof i21.ClrIfDetail, typeof i22.DatagridDetailRegisterer, typeof i23.WrappedCell, typeof i24.WrappedColumn, typeof i25.WrappedRow, typeof i26.DatagridCellRenderer, typeof i27.DatagridHeaderRenderer, typeof i28.DatagridMainRenderer, typeof i29.DatagridRowRenderer, typeof i30.ActionableOompaLoompa, typeof i31.DatagridWillyWonka, typeof i32.ExpandableOompaLoompa, typeof i33.DatagridNumericFilter, typeof i34.DatagridStringFilter, typeof i35.ClrDatagridColumnToggle, typeof i36.ClrDatagridColumnToggleButton], [typeof i37.CommonModule, typeof i38.CdkDragModule, typeof i39.CdkTrapFocusModule, typeof i40.ClrIconModule, typeof i41.ClrFormsModule, typeof i42.FormsModule, typeof i43.ClrLoadingModule, typeof i44.ClrConditionalModule, typeof i45.ClrOutsideClickModule, typeof i46.ClrExpandableAnimationModule, typeof i47.ClrSpinnerModule, typeof i48.ClrPopoverModuleNext, typeof i49.ClrKeyFocusModule], [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridItemsTrackBy, typeof i15.ClrDatagridPageSize, typeof i16.ClrDatagridPagination, typeof i17.ClrDatagridPlaceholder, typeof i18.ClrDatagridRow, typeof i19.ClrDatagridRowDetail, typeof i20.ClrDatagridSelectionCellDirective, typeof i21.ClrIfDetail, typeof i22.DatagridDetailRegisterer, typeof i23.WrappedCell, typeof i24.WrappedColumn, typeof i25.WrappedRow, typeof i26.DatagridCellRenderer, typeof i27.DatagridHeaderRenderer, typeof i28.DatagridMainRenderer, typeof i29.DatagridRowRenderer, typeof i30.ActionableOompaLoompa, typeof i31.DatagridWillyWonka, typeof i32.ExpandableOompaLoompa, typeof i33.DatagridNumericFilter, typeof i34.DatagridStringFilter]>;
57
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDatagridModule, [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridItemsTrackBy, typeof i15.ClrDatagridPageSize, typeof i16.ClrDatagridPagination, typeof i17.ClrDatagridPlaceholder, typeof i18.ClrDatagridRow, typeof i19.ClrDatagridRowDetail, typeof i20.ClrDatagridSelectionCellDirective, typeof i21.ClrDatagridVirtualScrollDirective, typeof i22.ClrIfDetail, typeof i23.DatagridDetailRegisterer, typeof i24.WrappedCell, typeof i25.WrappedColumn, typeof i26.WrappedRow, typeof i27.DatagridCellRenderer, typeof i28.DatagridHeaderRenderer, typeof i29.DatagridMainRenderer, typeof i30.DatagridRowRenderer, typeof i31.ActionableOompaLoompa, typeof i32.DatagridWillyWonka, typeof i33.ExpandableOompaLoompa, typeof i34.DatagridNumericFilter, typeof i35.DatagridStringFilter, typeof i36.ClrDatagridColumnToggle, typeof i37.ClrDatagridColumnToggleButton], [typeof i38.CommonModule, typeof i39.CdkDragModule, typeof i40.CdkTrapFocusModule, typeof i41.ClrIconModule, typeof i42.ClrFormsModule, typeof i43.FormsModule, typeof i44.ClrLoadingModule, typeof i45.ClrConditionalModule, typeof i46.ClrOutsideClickModule, typeof i47.ClrExpandableAnimationModule, typeof i48.ClrSpinnerModule, typeof i49.ClrPopoverModuleNext, typeof i50.ClrKeyFocusModule], [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridItemsTrackBy, typeof i15.ClrDatagridPageSize, typeof i16.ClrDatagridPagination, typeof i17.ClrDatagridPlaceholder, typeof i18.ClrDatagridRow, typeof i19.ClrDatagridRowDetail, typeof i20.ClrDatagridSelectionCellDirective, typeof i21.ClrDatagridVirtualScrollDirective, typeof i22.ClrIfDetail, typeof i23.DatagridDetailRegisterer, typeof i24.WrappedCell, typeof i25.WrappedColumn, typeof i26.WrappedRow, typeof i27.DatagridCellRenderer, typeof i28.DatagridHeaderRenderer, typeof i29.DatagridMainRenderer, typeof i30.DatagridRowRenderer, typeof i31.ActionableOompaLoompa, typeof i32.DatagridWillyWonka, typeof i33.ExpandableOompaLoompa, typeof i34.DatagridNumericFilter, typeof i35.DatagridStringFilter]>;
57
58
  static ɵinj: i0.ɵɵInjectorDeclaration<ClrDatagridModule>;
58
59
  }
@@ -34,6 +34,7 @@ export * from './built-in/comparators/datagrid-property-comparator';
34
34
  export * from './datagrid.module';
35
35
  export { ClrDatagridItemsTrackByFunction } from './providers/items';
36
36
  export { ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective } from './datagrid-selection-cell.directive';
37
+ export { ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective } from './datagrid-virtual-scroll.directive';
37
38
  export { DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer } from './datagrid-detail-registerer';
38
39
  export { WrappedCell as ÇlrWrappedCell } from './wrapped-cell';
39
40
  export { WrappedColumn as ÇlrWrappedColumn } from './wrapped-column';
@@ -1,6 +1,7 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { DatagridColumnChanges } from '../enums/column-changes.enum';
3
3
  export interface ColumnState {
4
+ columnIndex?: number;
4
5
  changes?: DatagridColumnChanges[];
5
6
  width?: number;
6
7
  strictWidth?: number;
@@ -17,6 +17,7 @@ export declare class DetailService {
17
17
  get isOpen(): boolean;
18
18
  open(item: any, button?: HTMLButtonElement): void;
19
19
  close(): void;
20
+ returnFocus(): void;
20
21
  toggle(item: any, button?: HTMLButtonElement): void;
21
22
  isRowOpen(item: any): boolean;
22
23
  static ɵfac: i0.ɵɵFactoryDeclaration<DetailService, never>;
@@ -1,21 +1,18 @@
1
1
  import { ElementRef, OnDestroy, Renderer2 } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
2
  import { ColumnState } from '../interfaces/column-state.interface';
4
3
  import { DatagridRenderOrganizer } from './render-organizer';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class DatagridCellRenderer implements OnDestroy {
7
6
  private el;
8
7
  private renderer;
9
- private runAllChanges;
10
8
  private stateSubscription;
11
9
  private subscriptions;
12
10
  constructor(el: ElementRef, renderer: Renderer2, organizer: DatagridRenderOrganizer);
13
- set columnState(columnState: BehaviorSubject<ColumnState>);
14
11
  ngOnDestroy(): void;
15
- private stateChanges;
12
+ resetState(state: ColumnState): void;
13
+ setWidth(state: ColumnState): void;
14
+ setHidden(state: ColumnState): void;
16
15
  private clearWidth;
17
- private setWidth;
18
- private setHidden;
19
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DatagridCellRenderer, never>;
20
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridCellRenderer, "clr-dg-cell", never, {}, {}, never, never, false, never>;
21
18
  }
@@ -25,12 +25,11 @@ export declare class DatagridHeaderRenderer implements OnDestroy {
25
25
  ngOnDestroy(): void;
26
26
  getColumnWidthState(): Partial<ColumnState>;
27
27
  setColumnState(index: number): void;
28
- private stateChanges;
28
+ setWidth(state: ColumnState): void;
29
+ setHidden(state: ColumnState): void;
29
30
  private clearWidth;
30
31
  private detectStrictWidth;
31
32
  private computeWidth;
32
- private setWidth;
33
- private setHidden;
34
33
  static ɵfac: i0.ɵɵFactoryDeclaration<DatagridHeaderRenderer, never>;
35
34
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridHeaderRenderer, "clr-dg-column", never, {}, { "resizeEmitter": "clrDgColumnResize"; }, never, never, false, never>;
36
35
  }
@@ -5,6 +5,7 @@ import { DetailService } from '../providers/detail.service';
5
5
  import { Items } from '../providers/items';
6
6
  import { Page } from '../providers/page';
7
7
  import { TableSizeService } from '../providers/table-size.service';
8
+ import { KeyNavigationGridController } from '../utils/key-navigation-grid.controller';
8
9
  import { NoopDomAdapter } from './noop-dom-adapter';
9
10
  import { DatagridRenderOrganizer } from './render-organizer';
10
11
  import * as i0 from "@angular/core";
@@ -20,6 +21,7 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
20
21
  private tableSizeService;
21
22
  private columnsService;
22
23
  private ngZone;
24
+ private keyNavigation;
23
25
  private headers;
24
26
  private rows;
25
27
  private _heightSet;
@@ -31,7 +33,7 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
31
33
  * 2) When rows are lazily loaded for the first time
32
34
  */
33
35
  private columnsSizesStable;
34
- constructor(organizer: DatagridRenderOrganizer, items: Items, page: Page, domAdapter: DomAdapter, el: ElementRef, renderer: Renderer2, detailService: DetailService, tableSizeService: TableSizeService, columnsService: ColumnsService, ngZone: NgZone);
36
+ constructor(organizer: DatagridRenderOrganizer, items: Items, page: Page, domAdapter: DomAdapter, el: ElementRef, renderer: Renderer2, detailService: DetailService, tableSizeService: TableSizeService, columnsService: ColumnsService, ngZone: NgZone, keyNavigation: KeyNavigationGridController);
35
37
  ngAfterContentInit(): void;
36
38
  ngAfterViewInit(): void;
37
39
  ngAfterViewChecked(): void;
@@ -55,6 +57,8 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
55
57
  * Makes each header compute its width.
56
58
  */
57
59
  private computeHeadersWidth;
60
+ private columnStateChanged;
61
+ private listenForColumnChanges;
58
62
  /**
59
63
  * Triggers a whole re-rendring cycle to set column sizes, if needed.
60
64
  */
@@ -1,14 +1,15 @@
1
- import { AfterContentInit, OnDestroy } from '@angular/core';
1
+ import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
2
2
  import { ColumnsService } from '../providers/columns.service';
3
+ import { DatagridCellRenderer } from './cell-renderer';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class DatagridRowRenderer implements AfterContentInit, OnDestroy {
5
6
  private columnsService;
6
- private cells;
7
+ cells: QueryList<DatagridCellRenderer>;
7
8
  private subscriptions;
8
9
  constructor(columnsService: ColumnsService);
9
10
  ngAfterContentInit(): void;
10
11
  ngOnDestroy(): void;
11
- setColumnState(): void;
12
+ setCellsState(): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<DatagridRowRenderer, never>;
13
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridRowRenderer, "clr-dg-row, clr-dg-row-detail", never, {}, {}, ["cells"], never, false, never>;
14
15
  }
@@ -12,6 +12,7 @@ export declare class KeyNavigationGridController implements OnDestroy {
12
12
  private config;
13
13
  private listenersAdded;
14
14
  private destroy$;
15
+ private _activeCell;
15
16
  constructor(zone: NgZone);
16
17
  private get grid();
17
18
  private get rows();
@@ -20,7 +21,9 @@ export declare class KeyNavigationGridController implements OnDestroy {
20
21
  addListeners(): void;
21
22
  initializeKeyGrid(host: HTMLElement): void;
22
23
  resetKeyGrid(): void;
23
- private setActiveCell;
24
+ removeActiveCell(): void;
25
+ getActiveCell(): HTMLElement;
26
+ setActiveCell(activeCell: HTMLElement): void;
24
27
  private getNextItemCoordinate;
25
28
  static ɵfac: i0.ɵɵFactoryDeclaration<KeyNavigationGridController, never>;
26
29
  static ɵprov: i0.ɵɵInjectableDeclaration<KeyNavigationGridController>;
@@ -10,10 +10,13 @@ export declare class RecursiveChildren<T> {
10
10
  parent: TreeNodeModel<T>;
11
11
  children: TreeNodeModel<T>[];
12
12
  subscription: Subscription;
13
+ role: string;
13
14
  constructor(featuresService: TreeFeaturesService<T>, expandService: IfExpandService);
15
+ ngAfterContentInit(): void;
14
16
  shouldRender(): boolean;
15
17
  getContext(node: TreeNodeModel<T>): ClrRecursiveForOfContext<T>;
16
18
  ngOnDestroy(): void;
19
+ private setAriaRoles;
17
20
  static ɵfac: i0.ɵɵFactoryDeclaration<RecursiveChildren<any>, [null, { optional: true; }]>;
18
21
  static ɵcmp: i0.ɵɵComponentDeclaration<RecursiveChildren<any>, "clr-recursive-children", never, { "parent": "parent"; "children": "children"; }, {}, never, never, false, never>;
19
22
  }
@@ -1,5 +1,6 @@
1
1
  /*
2
- * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
3
4
  * This software is released under MIT license.
4
5
  * The full license information can be found in LICENSE in the root directory of this project.
5
6
  */
@@ -17,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
17
18
  changeDetection: ChangeDetectionStrategy.OnPush,
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9hY2NvcmRpb24vYWNjb3JkaW9uLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25FLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7b0dBQW5CLG1CQUFtQiwrRUFIcEIsMkJBQTJCOzJGQUcxQixtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztvQkFDbkQsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1hY2NvcmRpb24tY29udGVudCwgY2xyLXN0ZXAtY29udGVudCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJBY2NvcmRpb25Db250ZW50IHt9XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9hY2NvcmRpb24vYWNjb3JkaW9uLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRSxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO29HQUFuQixtQkFBbUIsK0VBSHBCLDJCQUEyQjsyRkFHMUIsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5Q0FBeUM7b0JBQ25ELFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItYWNjb3JkaW9uLWNvbnRlbnQsIGNsci1zdGVwLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQWNjb3JkaW9uQ29udGVudCB7fVxuIl19
@@ -1,5 +1,6 @@
1
1
  /*
2
- * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
3
4
  * This software is released under MIT license.
4
5
  * The full license information can be found in LICENSE in the root directory of this project.
5
6
  */
@@ -18,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
18
19
  changeDetection: ChangeDetectionStrategy.OnPush,
19
20
  }]
20
21
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWRlc2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi1kZXNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRbkUsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDRKQUp4QiwyQkFBMkI7MkZBSTFCLHVCQUF1QjtrQkFObkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaURBQWlEO29CQUMzRCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxJQUFJLEVBQUUsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLEVBQUU7b0JBQ3JELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uLCBjbHItc3RlcC1kZXNjcmlwdGlvbicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5jbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uXSc6ICd0cnVlJyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQWNjb3JkaW9uRGVzY3JpcHRpb24ge31cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWRlc2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi1kZXNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUW5FLE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7d0dBQXZCLHVCQUF1Qiw0SkFKeEIsMkJBQTJCOzJGQUkxQix1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlEQUFpRDtvQkFDM0QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsSUFBSSxFQUFFLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxFQUFFO29CQUNyRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbiwgY2xyLXN0ZXAtZGVzY3JpcHRpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBob3N0OiB7ICdbY2xhc3MuY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbl0nOiAndHJ1ZScgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENsckFjY29yZGlvbkRlc2NyaXB0aW9uIHt9XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  /*
2
- * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
3
4
  * This software is released under MIT license.
4
5
  * The full license information can be found in LICENSE in the root directory of this project.
5
6
  */
@@ -81,6 +82,12 @@ export class ClrAccordionPanel {
81
82
  getAccordionHeaderId(id) {
82
83
  return `clr-accordion-header-${id}`;
83
84
  }
85
+ stepCompleteText(panelNumber) {
86
+ return this.commonStrings.parse(this.commonStrings.keys.stepComplete, { STEP: panelNumber.toString() });
87
+ }
88
+ stepErrorText(panelNumber) {
89
+ return this.commonStrings.parse(this.commonStrings.keys.stepError, { STEP: panelNumber.toString() });
90
+ }
84
91
  emitPanelChange(panel) {
85
92
  if (panel.index !== this._panelIndex) {
86
93
  this._panelIndex = panel.index;
@@ -108,10 +115,10 @@ export class ClrAccordionPanel {
108
115
  }
109
116
  }
110
117
  ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: i1.ClrCommonStringsService }, { token: i2.AccordionService }, { token: i3.IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
111
- ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true", "class.clr-accordion-panel-disabled": "this.disabled" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
+ ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true", "class.clr-accordion-panel-disabled": "this.disabled" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n <div class=\"clr-sr-only\" role=\"status\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\"> {{ stepErrorText(panelNumber)}} </ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">\n {{ stepCompleteText(panelNumber)}}\n </ng-container>\n </div>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
112
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
113
120
  type: Component,
114
- args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
121
+ args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n <div class=\"clr-sr-only\" role=\"status\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\"> {{ stepErrorText(panelNumber)}} </ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">\n {{ stepCompleteText(panelNumber)}}\n </ng-container>\n </div>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
115
122
  }], ctorParameters: function () { return [{ type: i1.ClrCommonStringsService }, { type: i2.AccordionService }, { type: i3.IfExpandService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
116
123
  type: Input,
117
124
  args: ['clrAccordionPanelDisabled']
@@ -128,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
128
135
  type: ContentChildren,
129
136
  args: [ClrAccordionDescription]
130
137
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi1wYW5lbC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2FjY29yZGlvbi9hY2NvcmRpb24tcGFuZWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBVW5ELE1BQU0sT0FBTyxpQkFBaUI7SUF3QjVCLFlBQ1MsYUFBc0MsRUFDckMsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLEdBQXNCO1FBSHZCLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTNCaEM7O1dBRUc7UUFDb0YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUN4Rzs7V0FFRztRQUM2QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xEOztXQUVHO1FBQ29DLG9CQUFlLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFJbkcsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFM0MsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFHWCxRQUFHLEdBQUcsZUFBZSxFQUFFLENBQUM7SUFRN0IsQ0FBQztJQUVKLElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDekcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUN0RyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNEJBQTRCLENBQUMsS0FBMEI7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBMEI7UUFDN0MsT0FBTyx1QkFBdUIsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDL0YsQ0FBQztJQUVELHFCQUFxQixDQUFDLEVBQVU7UUFDOUIsT0FBTyx5QkFBeUIsRUFBRSxHQUFHLENBQUM7SUFDeEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEVBQVU7UUFDN0IsT0FBTyx3QkFBd0IsRUFBRSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUEwQjtRQUNoRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDL0IsNEdBQTRHO1lBQzVHLDJHQUEyRztZQUMzRyx5RUFBeUU7WUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUMxQjtRQUVELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0Qzs7Ozs7Ozs7ZUFRRztZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztTQUM3QjtRQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QztJQUNILENBQUM7OzhHQTlHVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxVkFGakIsQ0FBQyxlQUFlLENBQUMsK0RBZ0JYLHVCQUF1QixrREN0RDFDLHV3RUFrREEsNlZEYmMsY0FBYzsyRkFHZixpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UscUJBQXFCLFFBRXpCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxFQUFFLG1CQUM5Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLGNBQWMsYUFDZixDQUFDLGVBQWUsQ0FBQzsyTUFNMkQsUUFBUTtzQkFBOUYsS0FBSzt1QkFBQywyQkFBMkI7O3NCQUFHLFdBQVc7dUJBQUMsb0NBQW9DO2dCQUlyRCxTQUFTO3NCQUF4QyxLQUFLO3VCQUFDLHVCQUF1QjtnQkFJUyxlQUFlO3NCQUFyRCxNQUFNO3VCQUFDLDZCQUE2QjtnQkFFSyxvQkFBb0I7c0JBQTdELGVBQWU7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSWZFeHBhbmRTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvY29uZGl0aW9uYWwvaWYtZXhwYW5kZWQuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyB1bmlxdWVJZEZhY3RvcnkgfSBmcm9tICcuLi91dGlscy9pZC1nZW5lcmF0b3IvaWQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQWNjb3JkaW9uRGVzY3JpcHRpb24gfSBmcm9tICcuL2FjY29yZGlvbi1kZXNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY2NvcmRpb25TdGF0dXMgfSBmcm9tICcuL2VudW1zL2FjY29yZGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBBY2NvcmRpb25QYW5lbE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYWNjb3JkaW9uLm1vZGVsJztcbmltcG9ydCB7IEFjY29yZGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9hY2NvcmRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBwYW5lbEFuaW1hdGlvbiB9IGZyb20gJy4vdXRpbHMvYW5pbWF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWFjY29yZGlvbi1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24tcGFuZWwuaHRtbCcsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5jbHItYWNjb3JkaW9uLXBhbmVsXSc6ICd0cnVlJyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogcGFuZWxBbmltYXRpb24sXG4gIHByb3ZpZGVyczogW0lmRXhwYW5kU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckFjY29yZGlvblBhbmVsIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcGFuZWwgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBASW5wdXQoJ2NsckFjY29yZGlvblBhbmVsRGlzYWJsZWQnKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmNsci1hY2NvcmRpb24tcGFuZWwtZGlzYWJsZWQnKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcGFuZWwgaXMgb3Blbi5cbiAgICovXG4gIEBJbnB1dCgnY2xyQWNjb3JkaW9uUGFuZWxPcGVuJykgcGFuZWxPcGVuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgcGFuZWwgaXMgb3BlbmVkIG9yIGNsb3NlZC4gVGhlIGJvb2xlYW4gZW1pdHRlZCBpbmRpY2F0ZXMgdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAqL1xuICBAT3V0cHV0KCdjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UnKSBwYW5lbE9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKENsckFjY29yZGlvbkRlc2NyaXB0aW9uKSBhY2NvcmRpb25EZXNjcmlwdGlvbjogUXVlcnlMaXN0PENsckFjY29yZGlvbkRlc2NyaXB0aW9uPjtcblxuICByZWFkb25seSBBY2NvcmRpb25TdGF0dXMgPSBBY2NvcmRpb25TdGF0dXM7XG5cbiAgaXNBY2NvcmRpb24gPSB0cnVlO1xuICBwYW5lbDogT2JzZXJ2YWJsZTxBY2NvcmRpb25QYW5lbE1vZGVsPjtcblxuICBwcml2YXRlIF9pZCA9IHVuaXF1ZUlkRmFjdG9yeSgpO1xuICBwcml2YXRlIF9wYW5lbEluZGV4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNjb3JkaW9uU2VydmljZTogQWNjb3JkaW9uU2VydmljZSxcbiAgICBwcml2YXRlIGlmRXhwYW5kU2VydmljZTogSWZFeHBhbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBwYW5lbE51bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxJbmRleCArIDE7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhbmVsID0gdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmdldFBhbmVsQ2hhbmdlcyh0aGlzLmlkKS5waXBlKHRhcChwYW5lbCA9PiB0aGlzLmVtaXRQYW5lbENoYW5nZShwYW5lbCkpKTtcbiAgICB0aGlzLmFjY29yZGlvblNlcnZpY2UuYWRkUGFuZWwodGhpcy5pZCwgdGhpcy5wYW5lbE9wZW4pO1xuICAgIHRoaXMuYWNjb3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkLCB0aGlzLnBhbmVsT3Blbik7XG4gICAgdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmRpc2FibGVQYW5lbCh0aGlzLmlkLCB0aGlzLmRpc2FibGVkKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5wYW5lbCAmJiBjaGFuZ2VzLnBhbmVsT3BlbiAmJiBjaGFuZ2VzLnBhbmVsT3Blbi5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMucGFuZWxPcGVuLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIHRoaXMuYWNjb3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkLCBjaGFuZ2VzLnBhbmVsT3Blbi5jdXJyZW50VmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhbmVsICYmIGNoYW5nZXMuZGlzYWJsZWQgJiYgY2hhbmdlcy5kaXNhYmxlZC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZGlzYWJsZWQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmRpc2FibGVQYW5lbCh0aGlzLmlkLCBjaGFuZ2VzLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhpcyBwYW5lbCBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIHRvZ2dsZVBhbmVsKCkge1xuICAgIHRoaXMuYWNjb3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkKTtcbiAgfVxuXG4gIGNvbGxhcHNlUGFuZWxPbkFuaW1hdGlvbkRvbmUocGFuZWw6IEFjY29yZGlvblBhbmVsTW9kZWwpIHtcbiAgICBpZiAoIXBhbmVsLm9wZW4pIHtcbiAgICAgIHRoaXMuaWZFeHBhbmRTZXJ2aWNlLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0UGFuZWxTdGF0ZUNsYXNzZXMocGFuZWw6IEFjY29yZGlvblBhbmVsTW9kZWwpIHtcbiAgICByZXR1cm4gYGNsci1hY2NvcmRpb24tcGFuZWwtJHtwYW5lbC5zdGF0dXN9ICR7cGFuZWwub3BlbiA/ICdjbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4nIDogJyd9YDtcbiAgfVxuXG4gIGdldEFjY29yZGlvbkNvbnRlbnRJZChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGBjbHItYWNjb3JkaW9uLWNvbnRlbnQtJHtpZH0nYDtcbiAgfVxuXG4gIGdldEFjY29yZGlvbkhlYWRlcklkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYGNsci1hY2NvcmRpb24taGVhZGVyLSR7aWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFBhbmVsQ2hhbmdlKHBhbmVsOiBBY2NvcmRpb25QYW5lbE1vZGVsKSB7XG4gICAgaWYgKHBhbmVsLmluZGV4ICE9PSB0aGlzLl9wYW5lbEluZGV4KSB7XG4gICAgICB0aGlzLl9wYW5lbEluZGV4ID0gcGFuZWwuaW5kZXg7XG4gICAgICAvLyBUaGUgd2hvbGUgY2hhaW4gb2YgdXBkYXRlcyBsZWFkaW5nIHRvIHRoaXMgbGluZSBzdGFydHMgaW4gYSBuZ0FmdGVyVmlld0luaXQgc3Vic2NyaXB0aW9uIGluIGFjY29yZGlvbi50cyxcbiAgICAgIC8vIGxpc3RlbmluZyBmb3IgRE9NIGNoYW5nZXMuIEl0IHNlZW1zIHRvIG9ubHkgZmFpbHMgaW4gdGVzdHMsIGJ1dCBhcyB0aGlzIGlzIG5vdCBhIGZyZXF1ZW50bHkgY2FsbGVkIGNvZGUsXG4gICAgICAvLyBJIHByZWZlciB0byBzdGF5IG9uIHRoZSBzYWZlIHNpZGUgYW5kIGluaXRpYXRlIGEgZGV0ZWN0aW9uIGN5Y2xlIGhlcmUuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaWYgKHBhbmVsLm9wZW4gIT09IHRoaXMucGFuZWxPcGVuKSB7XG4gICAgICB0aGlzLnBhbmVsT3BlbkNoYW5nZS5lbWl0KHBhbmVsLm9wZW4pO1xuICAgICAgLyoqXG4gICAgICAgKiBATm90ZTogdGhpcyBsaW5lIGJlbG93IGlzIG5lZWRlZCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gdXNlIGFub3RoZXIgdmFsdWUgdG8gdHJhY2tcbiAgICAgICAqIGZvciBjaGFuZ2VzIG9mIHRoZSBwYW5lbC4gQmVjYXVzZSB3ZSB1c2UgQmVoYXZpb3JTdWJqZWN0IHRoaXMgZW1pdCBldmVudCBpcyB0cmlnZ2VyIG9uXG4gICAgICAgKiBpbml0ICh0aGF0IGlzIG5vdCBuZWVkZWQgLSB0aGVyZSBpcyBubyBjaGFuZ2Ugb2YgdGhlIG9yaWdpbmFsIHZhbHVlKSAtIGluIHNvbWUgY2FzZXMgdGhpc1xuICAgICAgICogbGVhZCB0byBkdXBsaWNhdGUgZXZlbnRzLlxuICAgICAgICpcbiAgICAgICAqIFRvIHByZXZlbnQgdGhpcyB3ZSB0cnkgdG8gZW1pdCBvbmx5IHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQgYW5kIGtlZXAgdGhlIHZhbHVlIGluIHN5bmNcbiAgICAgICAqIGV2ZW4gdGhhdCBpcyB1c2VkIG9ubHkgaW50byB0aGUgSW5pdGlhbCBMaWZlY3ljbGUgKG5nT25Jbml0KS5cbiAgICAgICAqL1xuICAgICAgdGhpcy5wYW5lbE9wZW4gPSBwYW5lbC5vcGVuO1xuICAgIH1cblxuICAgIGlmIChwYW5lbC5vcGVuKSB7XG4gICAgICB0aGlzLmlmRXhwYW5kU2VydmljZS5leHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicGFuZWwgfCBhc3luYzsgbGV0IHBhbmVsXCI+XG4gIDxkaXYgW25nQ2xhc3NdPVwiZ2V0UGFuZWxTdGF0ZUNsYXNzZXMocGFuZWwpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNsci1hY2NvcmRpb24taGVhZGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCJcbiAgICAgICAgW2lkXT1cImdldEFjY29yZGlvbkhlYWRlcklkKHBhbmVsLnRlbXBsYXRlSWQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzQWNjb3JkaW9uICYmIHBhbmVsLmRpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCIhaXNBY2NvcmRpb24gJiYgcGFuZWwuZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImdldEFjY29yZGlvbkNvbnRlbnRJZChwYW5lbC50ZW1wbGF0ZUlkKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwicGFuZWwub3BlblwiXG4gICAgICAgIFtjbGFzcy5jbHItYWNjb3JkaW9uLWhlYWRlci1oYXMtZGVzY3JpcHRpb25dPVwiKGFjY29yZGlvbkRlc2NyaXB0aW9uLmNoYW5nZXMgfCBhc3luYyk/Lmxlbmd0aCB8fCBhY2NvcmRpb25EZXNjcmlwdGlvbi5sZW5ndGhcIlxuICAgICAgICAjaGVhZGVyQnV0dG9uXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLXNyLW9ubHlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFuZWwuc3RhdHVzID09PSBBY2NvcmRpb25TdGF0dXMuRXJyb3JcIj57e2NvbW1vblN0cmluZ3Mua2V5cy5kYW5nZXJ9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYW5lbC5zdGF0dXMgPT09IEFjY29yZGlvblN0YXR1cy5Db21wbGV0ZVwiPnt7Y29tbW9uU3RyaW5ncy5rZXlzLnN1Y2Nlc3N9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLWFjY29yZGlvbi1zdGF0dXNcIj5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cInJpZ2h0XCIgY2xhc3M9XCJjbHItYWNjb3JkaW9uLWFuZ2xlXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsci1hY2NvcmRpb24tbnVtYmVyXCI+e3twYW5lbE51bWJlcn19Ljwvc3Bhbj5cbiAgICAgICAgICA8Y2RzLWljb24gc3RhdHVzPVwiZGFuZ2VyXCIgc2hhcGU9XCJleGNsYW1hdGlvbi1jaXJjbGVcIiBjbGFzcz1cImNsci1hY2NvcmRpb24tZXJyb3ItaWNvblwiPjwvY2RzLWljb24+XG4gICAgICAgICAgPGNkcy1pY29uIHN0YXR1cz1cInN1Y2Nlc3NcIiBzaGFwZT1cImNoZWNrLWNpcmNsZVwiIGNsYXNzPVwiY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1pY29uXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItYWNjb3JkaW9uLXRpdGxlLCBjbHItc3RlcC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbiwgY2xyLXN0ZXAtZGVzY3JpcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBAc2tpcEluaXRpYWxSZW5kZXJcbiAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgY2xhc3M9XCJjbHItYWNjb3JkaW9uLWNvbnRlbnQtcmVnaW9uXCJcbiAgICAgIFtpZF09XCJnZXRBY2NvcmRpb25Db250ZW50SWQocGFuZWwudGVtcGxhdGVJZClcIlxuICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXBhbmVsLm9wZW5cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImdldEFjY29yZGlvbkhlYWRlcklkKHBhbmVsLnRlbXBsYXRlSWQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwicGFuZWwub3BlblwiXG4gICAgICAgIEB0b2dnbGVcbiAgICAgICAgKEB0b2dnbGUuZG9uZSk9XCJjb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKHBhbmVsKVwiXG4gICAgICAgIGNsYXNzPVwiY2xyLWFjY29yZGlvbi1jb250ZW50XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsci1hY2NvcmRpb24taW5uZXItY29udGVudFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi1wYW5lbC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2FjY29yZGlvbi9hY2NvcmRpb24tcGFuZWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVVuRCxNQUFNLE9BQU8saUJBQWlCO0lBd0I1QixZQUNTLGFBQXNDLEVBQ3JDLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxHQUFzQjtRQUh2QixrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFDckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzQmhDOztXQUVHO1FBQ29GLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEc7O1dBRUc7UUFDNkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsRDs7V0FFRztRQUNvQyxvQkFBZSxH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ZSxDQUFDOzJNQU0yRCxRQUFRO3NCQUE5RixLQUFLO3VCQUFDLDJCQUEyQjs7c0JBQUcsV0FBVzt1QkFBQyxvQ0FBb0M7Z0JBSXJELFNBQVM7c0JBQXhDLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUlTLGVBQWU7c0JBQXJELE1BQU07dUJBQUMsNkJBQTZCO2dCQUVLLG9CQUFvQjtzQkFBN0QsZUFBZTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJZkV4cGFuZFNlcnZpY2UgfSBmcm9tICcuLi91dGlscy9jb25kaXRpb25hbC9pZi1leHBhbmRlZC5zZXJ2aWNlJztcbmltcG9ydCB7IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvaTE4bi9jb21tb24tc3RyaW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXF1ZUlkRmFjdG9yeSB9IGZyb20gJy4uL3V0aWxzL2lkLWdlbmVyYXRvci9pZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJBY2NvcmRpb25EZXNjcmlwdGlvbiB9IGZyb20gJy4vYWNjb3JkaW9uLWRlc2NyaXB0aW9uJztcbmltcG9ydCB7IEFjY29yZGlvblN0YXR1cyB9IGZyb20gJy4vZW51bXMvYWNjb3JkaW9uLXN0YXR1cy5lbnVtJztcbmltcG9ydCB7IEFjY29yZGlvblBhbmVsTW9kZWwgfSBmcm9tICcuL21vZGVscy9hY2NvcmRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQWNjb3JkaW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2FjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHBhbmVsQW5pbWF0aW9uIH0gZnJvbSAnLi91dGlscy9hbmltYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItYWNjb3JkaW9uLXBhbmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1wYW5lbC5odG1sJyxcbiAgaG9zdDogeyAnW2NsYXNzLmNsci1hY2NvcmRpb24tcGFuZWxdJzogJ3RydWUnIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBwYW5lbEFuaW1hdGlvbixcbiAgcHJvdmlkZXJzOiBbSWZFeHBhbmRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQWNjb3JkaW9uUGFuZWwgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwYW5lbCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBJbnB1dCgnY2xyQWNjb3JkaW9uUGFuZWxEaXNhYmxlZCcpIEBIb3N0QmluZGluZygnY2xhc3MuY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZCcpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwYW5lbCBpcyBvcGVuLlxuICAgKi9cbiAgQElucHV0KCdjbHJBY2NvcmRpb25QYW5lbE9wZW4nKSBwYW5lbE9wZW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBwYW5lbCBpcyBvcGVuZWQgb3IgY2xvc2VkLiBUaGUgYm9vbGVhbiBlbWl0dGVkIGluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoJ2NsckFjY29yZGlvblBhbmVsT3BlbkNoYW5nZScpIHBhbmVsT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2xyQWNjb3JkaW9uRGVzY3JpcHRpb24pIGFjY29yZGlvbkRlc2NyaXB0aW9uOiBRdWVyeUxpc3Q8Q2xyQWNjb3JkaW9uRGVzY3JpcHRpb24+O1xuXG4gIHJlYWRvbmx5IEFjY29yZGlvblN0YXR1cyA9IEFjY29yZGlvblN0YXR1cztcblxuICBpc0FjY29yZGlvbiA9IHRydWU7XG4gIHBhbmVsOiBPYnNlcnZhYmxlPEFjY29yZGlvblBhbmVsTW9kZWw+O1xuXG4gIHByaXZhdGUgX2lkID0gdW5pcXVlSWRGYWN0b3J5KCk7XG4gIHByaXZhdGUgX3BhbmVsSW5kZXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2NvcmRpb25TZXJ2aWNlOiBBY2NvcmRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgaWZFeHBhbmRTZXJ2aWNlOiBJZkV4cGFuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pZCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHBhbmVsTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wYW5lbEluZGV4ICsgMTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucGFuZWwgPSB0aGlzLmFjY29yZGlvblNlcnZpY2UuZ2V0UGFuZWxDaGFuZ2VzKHRoaXMuaWQpLnBpcGUodGFwKHBhbmVsID0+IHRoaXMuZW1pdFBhbmVsQ2hhbmdlKHBhbmVsKSkpO1xuICAgIHRoaXMuYWNjb3JkaW9uU2VydmljZS5hZGRQYW5lbCh0aGlzLmlkLCB0aGlzLnBhbmVsT3Blbik7XG4gICAgdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQsIHRoaXMucGFuZWxPcGVuKTtcbiAgICB0aGlzLmFjY29yZGlvblNlcnZpY2UuZGlzYWJsZVBhbmVsKHRoaXMuaWQsIHRoaXMuZGlzYWJsZWQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLnBhbmVsICYmIGNoYW5nZXMucGFuZWxPcGVuICYmIGNoYW5nZXMucGFuZWxPcGVuLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5wYW5lbE9wZW4ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQsIGNoYW5nZXMucGFuZWxPcGVuLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFuZWwgJiYgY2hhbmdlcy5kaXNhYmxlZCAmJiBjaGFuZ2VzLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5kaXNhYmxlZC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLmFjY29yZGlvblNlcnZpY2UuZGlzYWJsZVBhbmVsKHRoaXMuaWQsIGNoYW5nZXMuZGlzYWJsZWQuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGlzIHBhbmVsIG9wZW4gb3IgY2xvc2VkLlxuICAgKi9cbiAgdG9nZ2xlUGFuZWwoKSB7XG4gICAgdGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQpO1xuICB9XG5cbiAgY29sbGFwc2VQYW5lbE9uQW5pbWF0aW9uRG9uZShwYW5lbDogQWNjb3JkaW9uUGFuZWxNb2RlbCkge1xuICAgIGlmICghcGFuZWwub3Blbikge1xuICAgICAgdGhpcy5pZkV4cGFuZFNlcnZpY2UuZXhwYW5kZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXRQYW5lbFN0YXRlQ2xhc3NlcyhwYW5lbDogQWNjb3JkaW9uUGFuZWxNb2RlbCkge1xuICAgIHJldHVybiBgY2xyLWFjY29yZGlvbi1wYW5lbC0ke3BhbmVsLnN0YXR1c30gJHtwYW5lbC5vcGVuID8gJ2Nsci1hY2NvcmRpb24tcGFuZWwtb3BlbicgOiAnJ31gO1xuICB9XG5cbiAgZ2V0QWNjb3JkaW9uQ29udGVudElkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYGNsci1hY2NvcmRpb24tY29udGVudC0ke2lkfSdgO1xuICB9XG5cbiAgZ2V0QWNjb3JkaW9uSGVhZGVySWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgY2xyLWFjY29yZGlvbi1oZWFkZXItJHtpZH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0ZXBDb21wbGV0ZVRleHQocGFuZWxOdW1iZXI6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuc3RlcENvbXBsZXRlLCB7IFNURVA6IHBhbmVsTnVtYmVyLnRvU3RyaW5nKCkgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RlcEVycm9yVGV4dChwYW5lbE51bWJlcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zdGVwRXJyb3IsIHsgU1RFUDogcGFuZWxOdW1iZXIudG9TdHJpbmcoKSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFBhbmVsQ2hhbmdlKHBhbmVsOiBBY2NvcmRpb25QYW5lbE1vZGVsKSB7XG4gICAgaWYgKHBhbmVsLmluZGV4ICE9PSB0aGlzLl9wYW5lbEluZGV4KSB7XG4gICAgICB0aGlzLl9wYW5lbEluZGV4ID0gcGFuZWwuaW5kZXg7XG4gICAgICAvLyBUaGUgd2hvbGUgY2hhaW4gb2YgdXBkYXRlcyBsZWFkaW5nIHRvIHRoaXMgbGluZSBzdGFydHMgaW4gYSBuZ0FmdGVyVmlld0luaXQgc3Vic2NyaXB0aW9uIGluIGFjY29yZGlvbi50cyxcbiAgICAgIC8vIGxpc3RlbmluZyBmb3IgRE9NIGNoYW5nZXMuIEl0IHNlZW1zIHRvIG9ubHkgZmFpbHMgaW4gdGVzdHMsIGJ1dCBhcyB0aGlzIGlzIG5vdCBhIGZyZXF1ZW50bHkgY2FsbGVkIGNvZGUsXG4gICAgICAvLyBJIHByZWZlciB0byBzdGF5IG9uIHRoZSBzYWZlIHNpZGUgYW5kIGluaXRpYXRlIGEgZGV0ZWN0aW9uIGN5Y2xlIGhlcmUuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaWYgKHBhbmVsLm9wZW4gIT09IHRoaXMucGFuZWxPcGVuKSB7XG4gICAgICB0aGlzLnBhbmVsT3BlbkNoYW5nZS5lbWl0KHBhbmVsLm9wZW4pO1xuICAgICAgLyoqXG4gICAgICAgKiBATm90ZTogdGhpcyBsaW5lIGJlbG93IGlzIG5lZWRlZCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gdXNlIGFub3RoZXIgdmFsdWUgdG8gdHJhY2tcbiAgICAgICAqIGZvciBjaGFuZ2VzIG9mIHRoZSBwYW5lbC4gQmVjYXVzZSB3ZSB1c2UgQmVoYXZpb3JTdWJqZWN0IHRoaXMgZW1pdCBldmVudCBpcyB0cmlnZ2VyIG9uXG4gICAgICAgKiBpbml0ICh0aGF0IGlzIG5vdCBuZWVkZWQgLSB0aGVyZSBpcyBubyBjaGFuZ2Ugb2YgdGhlIG9yaWdpbmFsIHZhbHVlKSAtIGluIHNvbWUgY2FzZXMgdGhpc1xuICAgICAgICogbGVhZCB0byBkdXBsaWNhdGUgZXZlbnRzLlxuICAgICAgICpcbiAgICAgICAqIFRvIHByZXZlbnQgdGhpcyB3ZSB0cnkgdG8gZW1pdCBvbmx5IHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQgYW5kIGtlZXAgdGhlIHZhbHVlIGluIHN5bmNcbiAgICAgICAqIGV2ZW4gdGhhdCBpcyB1c2VkIG9ubHkgaW50byB0aGUgSW5pdGlhbCBMaWZlY3ljbGUgKG5nT25Jbml0KS5cbiAgICAgICAqL1xuICAgICAgdGhpcy5wYW5lbE9wZW4gPSBwYW5lbC5vcGVuO1xuICAgIH1cblxuICAgIGlmIChwYW5lbC5vcGVuKSB7XG4gICAgICB0aGlzLmlmRXhwYW5kU2VydmljZS5leHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicGFuZWwgfCBhc3luYzsgbGV0IHBhbmVsXCI+XG4gIDxkaXYgW25nQ2xhc3NdPVwiZ2V0UGFuZWxTdGF0ZUNsYXNzZXMocGFuZWwpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNsci1hY2NvcmRpb24taGVhZGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCJcbiAgICAgICAgW2lkXT1cImdldEFjY29yZGlvbkhlYWRlcklkKHBhbmVsLnRlbXBsYXRlSWQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzQWNjb3JkaW9uICYmIHBhbmVsLmRpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCIhaXNBY2NvcmRpb24gJiYgcGFuZWwuZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImdldEFjY29yZGlvbkNvbnRlbnRJZChwYW5lbC50ZW1wbGF0ZUlkKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwicGFuZWwub3BlblwiXG4gICAgICAgIFtjbGFzcy5jbHItYWNjb3JkaW9uLWhlYWRlci1oYXMtZGVzY3JpcHRpb25dPVwiKGFjY29yZGlvbkRlc2NyaXB0aW9uLmNoYW5nZXMgfCBhc3luYyk/Lmxlbmd0aCB8fCBhY2NvcmRpb25EZXNjcmlwdGlvbi5sZW5ndGhcIlxuICAgICAgICAjaGVhZGVyQnV0dG9uXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLWFjY29yZGlvbi1zdGF0dXNcIj5cbiAgICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cInJpZ2h0XCIgY2xhc3M9XCJjbHItYWNjb3JkaW9uLWFuZ2xlXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsci1hY2NvcmRpb24tbnVtYmVyXCI+e3twYW5lbE51bWJlcn19Ljwvc3Bhbj5cbiAgICAgICAgICA8Y2RzLWljb24gc3RhdHVzPVwiZGFuZ2VyXCIgc2hhcGU9XCJleGNsYW1hdGlvbi1jaXJjbGVcIiBjbGFzcz1cImNsci1hY2NvcmRpb24tZXJyb3ItaWNvblwiPjwvY2RzLWljb24+XG4gICAgICAgICAgPGNkcy1pY29uIHN0YXR1cz1cInN1Y2Nlc3NcIiBzaGFwZT1cImNoZWNrLWNpcmNsZVwiIGNsYXNzPVwiY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1pY29uXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItYWNjb3JkaW9uLXRpdGxlLCBjbHItc3RlcC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbiwgY2xyLXN0ZXAtZGVzY3JpcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjbHItc3Itb25seVwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhbmVsLnN0YXR1cyA9PT0gQWNjb3JkaW9uU3RhdHVzLkVycm9yXCI+IHt7IHN0ZXBFcnJvclRleHQocGFuZWxOdW1iZXIpfX0gPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYW5lbC5zdGF0dXMgPT09IEFjY29yZGlvblN0YXR1cy5Db21wbGV0ZVwiPlxuICAgICAgICAgIHt7IHN0ZXBDb21wbGV0ZVRleHQocGFuZWxOdW1iZXIpfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBAc2tpcEluaXRpYWxSZW5kZXJcbiAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgY2xhc3M9XCJjbHItYWNjb3JkaW9uLWNvbnRlbnQtcmVnaW9uXCJcbiAgICAgIFtpZF09XCJnZXRBY2NvcmRpb25Db250ZW50SWQocGFuZWwudGVtcGxhdGVJZClcIlxuICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXBhbmVsLm9wZW5cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImdldEFjY29yZGlvbkhlYWRlcklkKHBhbmVsLnRlbXBsYXRlSWQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwicGFuZWwub3BlblwiXG4gICAgICAgIEB0b2dnbGVcbiAgICAgICAgKEB0b2dnbGUuZG9uZSk9XCJjb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKHBhbmVsKVwiXG4gICAgICAgIGNsYXNzPVwiY2xyLWFjY29yZGlvbi1jb250ZW50XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNsci1hY2NvcmRpb24taW5uZXItY29udGVudFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  /*
2
- * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
2
+ * Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
3
4
  * This software is released under MIT license.
4
5
  * The full license information can be found in LICENSE in the root directory of this project.
5
6
  */
@@ -18,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
18
19
  changeDetection: ChangeDetectionStrategy.OnPush,
19
20
  }]
20
21
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXRpdGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi10aXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRbkUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjtrR0FBakIsaUJBQWlCLDBJQUpsQiwyQkFBMkI7MkZBSTFCLGlCQUFpQjtrQkFON0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxJQUFJLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLEVBQUU7b0JBQy9DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItYWNjb3JkaW9uLXRpdGxlLCBjbHItc3RlcC10aXRsZScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5jbHItYWNjb3JkaW9uLXRpdGxlXSc6ICd0cnVlJyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyQWNjb3JkaW9uVGl0bGUge31cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXRpdGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvYWNjb3JkaW9uL2FjY29yZGlvbi10aXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUW5FLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7a0dBQWpCLGlCQUFpQiwwSUFKbEIsMkJBQTJCOzJGQUkxQixpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsSUFBSSxFQUFFLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxFQUFFO29CQUMvQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWFjY29yZGlvbi10aXRsZSwgY2xyLXN0ZXAtdGl0bGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBob3N0OiB7ICdbY2xhc3MuY2xyLWFjY29yZGlvbi10aXRsZV0nOiAndHJ1ZScgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENsckFjY29yZGlvblRpdGxlIHt9XG4iXX0=