@clr/angular 12.0.8 → 13.0.0-next.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 (1132) hide show
  1. package/accordion/accordion-content.d.ts +3 -0
  2. package/accordion/accordion-description.d.ts +3 -0
  3. package/accordion/accordion-panel.d.ts +3 -0
  4. package/accordion/accordion-title.d.ts +3 -0
  5. package/accordion/accordion.d.ts +3 -0
  6. package/accordion/accordion.module.d.ts +13 -0
  7. package/accordion/chocolate/accordion-oompa-loompa.d.ts +3 -0
  8. package/accordion/chocolate/accordion-willy-wonka.d.ts +3 -0
  9. package/accordion/providers/accordion.service.d.ts +3 -0
  10. package/accordion/stepper/chocolate/stepper-oompa-loompa.d.ts +3 -0
  11. package/accordion/stepper/chocolate/stepper-willy-wonka.d.ts +3 -0
  12. package/accordion/stepper/providers/stepper.service.d.ts +3 -0
  13. package/accordion/stepper/step-button.d.ts +3 -0
  14. package/accordion/stepper/stepper-panel.d.ts +3 -0
  15. package/accordion/stepper/stepper.d.ts +3 -0
  16. package/accordion/stepper/stepper.module.d.ts +12 -0
  17. package/button/button-group/button-group.d.ts +3 -0
  18. package/button/button-group/button-group.module.d.ts +9 -0
  19. package/button/button-group/button.d.ts +3 -0
  20. package/button/button-loading/loading-button.d.ts +3 -0
  21. package/button/button-loading/loading-button.module.d.ts +6 -0
  22. package/button/button.module.d.ts +6 -0
  23. package/button/providers/button-in-group.service.d.ts +3 -0
  24. package/clr-angular.d.ts +1 -105
  25. package/clr-angular.module.d.ts +23 -0
  26. package/data/data.module.d.ts +7 -0
  27. package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +3 -0
  28. package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +3 -0
  29. package/data/datagrid/chocolate/actionable-oompa-loompa.d.ts +3 -0
  30. package/data/datagrid/chocolate/datagrid-willy-wonka.d.ts +3 -0
  31. package/data/datagrid/chocolate/expandable-oompa-loompa.d.ts +3 -0
  32. package/data/datagrid/datagrid-action-bar.d.ts +3 -0
  33. package/data/datagrid/datagrid-action-overflow.d.ts +3 -0
  34. package/data/datagrid/datagrid-cell.d.ts +3 -0
  35. package/data/datagrid/datagrid-column-separator.d.ts +3 -0
  36. package/data/datagrid/datagrid-column-toggle-button.d.ts +3 -0
  37. package/data/datagrid/datagrid-column-toggle-title.d.ts +3 -0
  38. package/data/datagrid/datagrid-column-toggle.d.ts +3 -0
  39. package/data/datagrid/datagrid-column.d.ts +3 -0
  40. package/data/datagrid/datagrid-detail-body.d.ts +3 -0
  41. package/data/datagrid/datagrid-detail-header.d.ts +3 -0
  42. package/data/datagrid/datagrid-detail-registerer.d.ts +3 -0
  43. package/data/datagrid/datagrid-detail.d.ts +3 -0
  44. package/data/datagrid/datagrid-filter.d.ts +3 -0
  45. package/data/datagrid/datagrid-footer.d.ts +3 -0
  46. package/data/datagrid/datagrid-hideable-column.d.ts +3 -0
  47. package/data/datagrid/datagrid-if-detail.d.ts +3 -0
  48. package/data/datagrid/datagrid-if-expanded.service.d.ts +3 -0
  49. package/data/datagrid/datagrid-items-trackby.d.ts +3 -0
  50. package/data/datagrid/datagrid-items.d.ts +3 -0
  51. package/data/datagrid/datagrid-page-size.d.ts +3 -0
  52. package/data/datagrid/datagrid-pagination.d.ts +3 -0
  53. package/data/datagrid/datagrid-placeholder.d.ts +3 -0
  54. package/data/datagrid/datagrid-row-detail.d.ts +3 -0
  55. package/data/datagrid/datagrid-row.d.ts +3 -0
  56. package/data/datagrid/datagrid.d.ts +3 -0
  57. package/data/datagrid/datagrid.module.d.ts +53 -0
  58. package/data/datagrid/providers/column-resizer.service.d.ts +3 -0
  59. package/data/datagrid/providers/columns.service.d.ts +3 -0
  60. package/data/datagrid/providers/detail.service.d.ts +3 -0
  61. package/data/datagrid/providers/display-mode.service.d.ts +3 -0
  62. package/data/datagrid/providers/filters.d.ts +3 -0
  63. package/data/datagrid/providers/global-expandable-rows.d.ts +3 -0
  64. package/data/datagrid/providers/items.d.ts +3 -0
  65. package/data/datagrid/providers/page.d.ts +3 -0
  66. package/data/datagrid/providers/row-action-service.d.ts +3 -0
  67. package/data/datagrid/providers/selection.d.ts +3 -0
  68. package/data/datagrid/providers/sort.d.ts +3 -0
  69. package/data/datagrid/providers/state-debouncer.provider.d.ts +3 -0
  70. package/data/datagrid/providers/state.provider.d.ts +3 -0
  71. package/data/datagrid/providers/table-size.service.d.ts +3 -0
  72. package/data/datagrid/render/cell-renderer.d.ts +3 -0
  73. package/data/datagrid/render/header-renderer.d.ts +3 -0
  74. package/data/datagrid/render/main-renderer.d.ts +3 -0
  75. package/data/datagrid/render/noop-dom-adapter.d.ts +4 -1
  76. package/data/datagrid/render/render-organizer.d.ts +3 -0
  77. package/data/datagrid/render/row-renderer.d.ts +3 -0
  78. package/data/datagrid/utils/datagrid-filter-registrar.d.ts +3 -0
  79. package/data/datagrid/wrapped-cell.d.ts +3 -0
  80. package/data/datagrid/wrapped-column.d.ts +3 -0
  81. package/data/datagrid/wrapped-row.d.ts +3 -0
  82. package/data/stack-view/stack-block.d.ts +3 -0
  83. package/data/stack-view/stack-content-input.d.ts +3 -0
  84. package/data/stack-view/stack-header.d.ts +3 -0
  85. package/data/stack-view/stack-input.d.ts +3 -6
  86. package/data/stack-view/stack-select.d.ts +3 -5
  87. package/data/stack-view/stack-view-custom-tags.d.ts +3 -0
  88. package/data/stack-view/stack-view.d.ts +3 -0
  89. package/data/stack-view/stack-view.module.d.ts +15 -0
  90. package/data/tree-view/recursive-children.d.ts +3 -0
  91. package/data/tree-view/recursive-for-of.d.ts +3 -0
  92. package/data/tree-view/tree-features.service.d.ts +3 -0
  93. package/data/tree-view/tree-focus-manager.service.d.ts +3 -0
  94. package/data/tree-view/tree-node-link.d.ts +3 -0
  95. package/data/tree-view/tree-node.d.ts +3 -0
  96. package/data/tree-view/tree-view.module.d.ts +12 -0
  97. package/data/tree-view/tree.d.ts +3 -0
  98. package/emphasis/alert/alert-item.d.ts +3 -0
  99. package/emphasis/alert/alert-text.d.ts +3 -0
  100. package/emphasis/alert/alert.d.ts +3 -0
  101. package/emphasis/alert/alert.module.d.ts +12 -0
  102. package/emphasis/alert/alerts-pager.d.ts +3 -0
  103. package/emphasis/alert/alerts.d.ts +3 -0
  104. package/emphasis/alert/providers/icon-and-types.service.d.ts +3 -0
  105. package/emphasis/alert/providers/multi-alert.service.d.ts +3 -0
  106. package/emphasis/emphasis.module.d.ts +5 -0
  107. package/esm2020/accordion/accordion-content.mjs +20 -0
  108. package/esm2020/accordion/accordion-description.mjs +21 -0
  109. package/esm2020/accordion/accordion-panel.mjs +108 -0
  110. package/esm2020/accordion/accordion-title.mjs +21 -0
  111. package/esm2020/accordion/accordion.mjs +61 -0
  112. package/esm2020/accordion/accordion.module.mjs +55 -0
  113. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +31 -0
  114. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +17 -0
  115. package/{esm2015/accordion/enums/accordion-status.enum.js → esm2020/accordion/enums/accordion-status.enum.mjs} +0 -0
  116. package/{esm2015/accordion/enums/accordion-strategy.enum.js → esm2020/accordion/enums/accordion-strategy.enum.mjs} +0 -0
  117. package/{esm2015/accordion/index.js → esm2020/accordion/index.mjs} +0 -0
  118. package/{esm2015/accordion/models/accordion.model.js → esm2020/accordion/models/accordion.model.mjs} +0 -0
  119. package/esm2020/accordion/providers/accordion.service.mjs +47 -0
  120. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +31 -0
  121. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +17 -0
  122. package/{esm2015/accordion/stepper/index.js → esm2020/accordion/stepper/index.mjs} +0 -0
  123. package/{esm2015/accordion/stepper/models/stepper.model.js → esm2020/accordion/stepper/models/stepper.model.mjs} +0 -0
  124. package/esm2020/accordion/stepper/providers/stepper.service.mjs +55 -0
  125. package/esm2020/accordion/stepper/step-button.mjs +51 -0
  126. package/esm2020/accordion/stepper/stepper-panel.mjs +89 -0
  127. package/esm2020/accordion/stepper/stepper.mjs +93 -0
  128. package/esm2020/accordion/stepper/stepper.module.mjs +30 -0
  129. package/{esm2015/accordion/utils/animation.js → esm2020/accordion/utils/animation.mjs} +0 -0
  130. package/esm2020/button/button-group/button-group.mjs +140 -0
  131. package/esm2020/button/button-group/button-group.module.mjs +27 -0
  132. package/{esm2015/button/button-group/button.js → esm2020/button/button-group/button.mjs} +57 -24
  133. package/{esm2015/button/button-group/index.js → esm2020/button/button-group/index.mjs} +0 -0
  134. package/{esm2015/button/button-loading/index.js → esm2020/button/button-loading/index.mjs} +0 -0
  135. package/esm2020/button/button-loading/loading-button.mjs +150 -0
  136. package/esm2020/button/button-loading/loading-button.module.mjs +24 -0
  137. package/esm2020/button/button.module.mjs +25 -0
  138. package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
  139. package/esm2020/button/providers/button-in-group.service.mjs +25 -0
  140. package/esm2020/clr-angular.mjs +5 -0
  141. package/esm2020/clr-angular.module.mjs +96 -0
  142. package/esm2020/data/data.module.mjs +20 -0
  143. package/{esm2015/data/datagrid/built-in/comparators/datagrid-property-comparator.js → esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs} +0 -0
  144. package/{esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.js → esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs} +0 -0
  145. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +200 -0
  146. package/{esm2015/data/datagrid/built-in/filters/datagrid-property-numeric-filter.js → esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs} +0 -0
  147. package/{esm2015/data/datagrid/built-in/filters/datagrid-property-string-filter.js → esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs} +0 -0
  148. package/{esm2015/data/datagrid/built-in/filters/datagrid-string-filter-impl.js → esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs} +0 -0
  149. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +131 -0
  150. package/{esm2015/data/datagrid/built-in/nested-property.js → esm2020/data/datagrid/built-in/nested-property.mjs} +0 -0
  151. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +31 -0
  152. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +17 -0
  153. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +31 -0
  154. package/esm2020/data/datagrid/datagrid-action-bar.mjs +20 -0
  155. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +161 -0
  156. package/esm2020/data/datagrid/datagrid-cell.mjs +39 -0
  157. package/esm2020/data/datagrid/datagrid-column-separator.mjs +172 -0
  158. package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +63 -0
  159. package/esm2020/data/datagrid/datagrid-column-toggle-title.mjs +20 -0
  160. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +229 -0
  161. package/esm2020/data/datagrid/datagrid-column.mjs +430 -0
  162. package/esm2020/data/datagrid/datagrid-detail-body.mjs +30 -0
  163. package/esm2020/data/datagrid/datagrid-detail-header.mjs +61 -0
  164. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +34 -0
  165. package/esm2020/data/datagrid/datagrid-detail.mjs +70 -0
  166. package/esm2020/data/datagrid/datagrid-filter.mjs +182 -0
  167. package/esm2020/data/datagrid/datagrid-footer.mjs +79 -0
  168. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +104 -0
  169. package/esm2020/data/datagrid/datagrid-if-detail.mjs +63 -0
  170. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +54 -0
  171. package/esm2020/data/datagrid/datagrid-items-trackby.mjs +32 -0
  172. package/esm2020/data/datagrid/datagrid-items.mjs +63 -0
  173. package/esm2020/data/datagrid/datagrid-page-size.mjs +47 -0
  174. package/esm2020/data/datagrid/datagrid-pagination.mjs +362 -0
  175. package/esm2020/data/datagrid/datagrid-placeholder.mjs +41 -0
  176. package/esm2020/data/datagrid/datagrid-row-detail.mjs +90 -0
  177. package/esm2020/data/datagrid/datagrid-row.mjs +241 -0
  178. package/esm2020/data/datagrid/datagrid.mjs +349 -0
  179. package/esm2020/data/datagrid/datagrid.module.mjs +237 -0
  180. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +14 -0
  181. package/{esm2015/data/datagrid/enums/display-mode.enum.js → esm2020/data/datagrid/enums/display-mode.enum.mjs} +0 -0
  182. package/{esm2015/data/datagrid/enums/render-step.enum.js → esm2020/data/datagrid/enums/render-step.enum.mjs} +0 -0
  183. package/{esm2015/data/datagrid/enums/selection-type.js → esm2020/data/datagrid/enums/selection-type.mjs} +0 -0
  184. package/{esm2015/data/datagrid/enums/sort-order.enum.js → esm2020/data/datagrid/enums/sort-order.enum.mjs} +0 -0
  185. package/{esm2015/data/datagrid/index.js → esm2020/data/datagrid/index.mjs} +0 -0
  186. package/{esm2015/data/datagrid/interfaces/column-state.interface.js → esm2020/data/datagrid/interfaces/column-state.interface.mjs} +0 -0
  187. package/{esm2015/data/datagrid/interfaces/comparator.interface.js → esm2020/data/datagrid/interfaces/comparator.interface.mjs} +0 -0
  188. package/{esm2015/data/datagrid/interfaces/filter.interface.js → esm2020/data/datagrid/interfaces/filter.interface.mjs} +0 -0
  189. package/{esm2015/data/datagrid/interfaces/numeric-filter.interface.js → esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs} +0 -0
  190. package/{esm2015/data/datagrid/interfaces/state.interface.js → esm2020/data/datagrid/interfaces/state.interface.mjs} +0 -0
  191. package/{esm2015/data/datagrid/interfaces/string-filter.interface.js → esm2020/data/datagrid/interfaces/string-filter.interface.mjs} +0 -0
  192. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +57 -0
  193. package/{esm2015/data/datagrid/providers/column-state.provider.js → esm2020/data/datagrid/providers/column-state.provider.mjs} +0 -0
  194. package/esm2020/data/datagrid/providers/columns.service.mjs +53 -0
  195. package/{esm2015/data/datagrid/providers/custom-filter.js → esm2020/data/datagrid/providers/custom-filter.mjs} +0 -0
  196. package/esm2020/data/datagrid/providers/detail.service.mjs +61 -0
  197. package/esm2020/data/datagrid/providers/display-mode.service.mjs +35 -0
  198. package/esm2020/data/datagrid/providers/filters.mjs +111 -0
  199. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +33 -0
  200. package/esm2020/data/datagrid/providers/items.mjs +173 -0
  201. package/esm2020/data/datagrid/providers/page.mjs +155 -0
  202. package/esm2020/data/datagrid/providers/row-action-service.mjs +30 -0
  203. package/esm2020/data/datagrid/providers/selection.mjs +374 -0
  204. package/esm2020/data/datagrid/providers/sort.mjs +85 -0
  205. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +42 -0
  206. package/esm2020/data/datagrid/providers/state.provider.mjs +74 -0
  207. package/esm2020/data/datagrid/providers/table-size.service.mjs +44 -0
  208. package/esm2020/data/datagrid/render/cell-renderer.mjs +81 -0
  209. package/{esm2015/data/datagrid/render/constants.js → esm2020/data/datagrid/render/constants.mjs} +0 -0
  210. package/esm2020/data/datagrid/render/header-renderer.mjs +132 -0
  211. package/esm2020/data/datagrid/render/main-renderer.mjs +198 -0
  212. package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +54 -0
  213. package/esm2020/data/datagrid/render/render-organizer.mjs +38 -0
  214. package/esm2020/data/datagrid/render/row-renderer.mjs +58 -0
  215. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +42 -0
  216. package/esm2020/data/datagrid/wrapped-cell.mjs +39 -0
  217. package/esm2020/data/datagrid/wrapped-column.mjs +40 -0
  218. package/esm2020/data/datagrid/wrapped-row.mjs +40 -0
  219. package/{esm2015/data/index.js → esm2020/data/index.mjs} +0 -0
  220. package/{esm2015/data/stack-view/index.js → esm2020/data/stack-view/index.mjs} +0 -0
  221. package/esm2020/data/stack-view/stack-block.mjs +214 -0
  222. package/esm2020/data/stack-view/stack-content-input.mjs +29 -0
  223. package/{esm2015/data/stack-view/stack-control.js → esm2020/data/stack-view/stack-control.mjs} +0 -0
  224. package/esm2020/data/stack-view/stack-header.mjs +68 -0
  225. package/{esm2015/data/stack-view/stack-input.js → esm2020/data/stack-view/stack-input.mjs} +20 -14
  226. package/esm2020/data/stack-view/stack-select.mjs +48 -0
  227. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +16 -0
  228. package/esm2020/data/stack-view/stack-view.mjs +57 -0
  229. package/esm2020/data/stack-view/stack-view.module.mjs +69 -0
  230. package/{esm2015/data/tree-view/index.js → esm2020/data/tree-view/index.mjs} +0 -0
  231. package/{esm2015/data/tree-view/models/async-array.js → esm2020/data/tree-view/models/async-array.mjs} +0 -0
  232. package/{esm2015/data/tree-view/models/declarative-tree-node.model.js → esm2020/data/tree-view/models/declarative-tree-node.model.mjs} +0 -0
  233. package/{esm2015/data/tree-view/models/recursive-tree-node.model.js → esm2020/data/tree-view/models/recursive-tree-node.model.mjs} +0 -0
  234. package/{esm2015/data/tree-view/models/selected-state.enum.js → esm2020/data/tree-view/models/selected-state.enum.mjs} +0 -0
  235. package/{esm2015/data/tree-view/models/tree-node.model.js → esm2020/data/tree-view/models/tree-node.model.mjs} +0 -0
  236. package/esm2020/data/tree-view/recursive-children.mjs +81 -0
  237. package/esm2020/data/tree-view/recursive-for-of.mjs +54 -0
  238. package/esm2020/data/tree-view/tree-features.service.mjs +37 -0
  239. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +121 -0
  240. package/esm2020/data/tree-view/tree-node-link.mjs +26 -0
  241. package/esm2020/data/tree-view/tree-node.mjs +279 -0
  242. package/esm2020/data/tree-view/tree-view.module.mjs +34 -0
  243. package/esm2020/data/tree-view/tree.mjs +91 -0
  244. package/esm2020/emphasis/alert/alert-item.mjs +43 -0
  245. package/esm2020/emphasis/alert/alert-text.mjs +22 -0
  246. package/esm2020/emphasis/alert/alert.mjs +107 -0
  247. package/esm2020/emphasis/alert/alert.module.mjs +34 -0
  248. package/esm2020/emphasis/alert/alerts-pager.mjs +72 -0
  249. package/esm2020/emphasis/alert/alerts.mjs +100 -0
  250. package/{esm2015/emphasis/alert/index.js → esm2020/emphasis/alert/index.mjs} +0 -0
  251. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +74 -0
  252. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +79 -0
  253. package/{esm2015/emphasis/alert/utils/alert-info-object.js → esm2020/emphasis/alert/utils/alert-info-object.mjs} +0 -0
  254. package/{esm2015/emphasis/alert/utils/alert-types.js → esm2020/emphasis/alert/utils/alert-types.mjs} +0 -0
  255. package/esm2020/emphasis/emphasis.module.mjs +18 -0
  256. package/{esm2015/emphasis/index.js → esm2020/emphasis/index.mjs} +0 -0
  257. package/esm2020/forms/checkbox/checkbox-container.mjs +127 -0
  258. package/esm2020/forms/checkbox/checkbox-wrapper.mjs +68 -0
  259. package/esm2020/forms/checkbox/checkbox.mjs +43 -0
  260. package/esm2020/forms/checkbox/checkbox.module.mjs +33 -0
  261. package/{esm2015/forms/checkbox/index.js → esm2020/forms/checkbox/index.mjs} +0 -0
  262. package/esm2020/forms/combobox/combobox-container.mjs +109 -0
  263. package/esm2020/forms/combobox/combobox.mjs +363 -0
  264. package/esm2020/forms/combobox/combobox.module.mjs +81 -0
  265. package/{esm2015/forms/combobox/index.js → esm2020/forms/combobox/index.mjs} +0 -0
  266. package/{esm2015/forms/combobox/model/combobox.model.js → esm2020/forms/combobox/model/combobox.model.mjs} +0 -0
  267. package/{esm2015/forms/combobox/model/multi-select-combobox.model.js → esm2020/forms/combobox/model/multi-select-combobox.model.mjs} +0 -0
  268. package/{esm2015/forms/combobox/model/pseudo-focus.model.js → esm2020/forms/combobox/model/pseudo-focus.model.mjs} +0 -0
  269. package/{esm2015/forms/combobox/model/single-select-combobox.model.js → esm2020/forms/combobox/model/single-select-combobox.model.mjs} +0 -0
  270. package/esm2020/forms/combobox/option-items.directive.mjs +97 -0
  271. package/esm2020/forms/combobox/option-selected.directive.mjs +22 -0
  272. package/esm2020/forms/combobox/option.mjs +102 -0
  273. package/esm2020/forms/combobox/options.mjs +152 -0
  274. package/esm2020/forms/combobox/providers/combobox-container.service.mjs +18 -0
  275. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +215 -0
  276. package/esm2020/forms/combobox/providers/option-selection.service.mjs +81 -0
  277. package/esm2020/forms/common/abstract-container.mjs +119 -0
  278. package/esm2020/forms/common/abstract-control.mjs +50 -0
  279. package/esm2020/forms/common/common.module.mjs +78 -0
  280. package/esm2020/forms/common/control-container.mjs +83 -0
  281. package/esm2020/forms/common/control.mjs +27 -0
  282. package/esm2020/forms/common/error.mjs +36 -0
  283. package/esm2020/forms/common/form.mjs +53 -0
  284. package/esm2020/forms/common/helper.mjs +36 -0
  285. package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +44 -0
  286. package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +56 -0
  287. package/esm2020/forms/common/if-control-state/if-error.mjs +68 -0
  288. package/esm2020/forms/common/if-control-state/if-success.mjs +45 -0
  289. package/{esm2015/forms/common/index.js → esm2020/forms/common/index.mjs} +0 -0
  290. package/esm2020/forms/common/label.mjs +67 -0
  291. package/esm2020/forms/common/layout.mjs +31 -0
  292. package/esm2020/forms/common/providers/container-id.service.mjs +33 -0
  293. package/esm2020/forms/common/providers/control-class.service.mjs +52 -0
  294. package/esm2020/forms/common/providers/control-id.service.mjs +31 -0
  295. package/esm2020/forms/common/providers/focus.service.mjs +25 -0
  296. package/esm2020/forms/common/providers/layout.service.mjs +57 -0
  297. package/esm2020/forms/common/providers/mark-control.service.mjs +25 -0
  298. package/esm2020/forms/common/providers/ng-control.service.mjs +33 -0
  299. package/esm2020/forms/common/success.mjs +36 -0
  300. package/esm2020/forms/common/wrapped-control.mjs +156 -0
  301. package/esm2020/forms/datalist/datalist-container.mjs +122 -0
  302. package/esm2020/forms/datalist/datalist-input.mjs +62 -0
  303. package/esm2020/forms/datalist/datalist.mjs +48 -0
  304. package/esm2020/forms/datalist/datalist.module.mjs +31 -0
  305. package/{esm2015/forms/datalist/index.js → esm2020/forms/datalist/index.mjs} +0 -0
  306. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +31 -0
  307. package/esm2020/forms/datepicker/calendar.mjs +118 -0
  308. package/esm2020/forms/datepicker/date-container.mjs +249 -0
  309. package/esm2020/forms/datepicker/date-input.mjs +290 -0
  310. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +46 -0
  311. package/esm2020/forms/datepicker/datepicker.module.mjs +87 -0
  312. package/esm2020/forms/datepicker/day.mjs +86 -0
  313. package/esm2020/forms/datepicker/daypicker.mjs +80 -0
  314. package/{esm2015/forms/datepicker/index.js → esm2020/forms/datepicker/index.mjs} +0 -0
  315. package/{esm2015/forms/datepicker/interfaces/date-range.interface.js → esm2020/forms/datepicker/interfaces/date-range.interface.mjs} +0 -0
  316. package/{esm2015/forms/datepicker/interfaces/day-of-week.interface.js → esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs} +0 -0
  317. package/{esm2015/forms/datepicker/model/calendar-view.model.js → esm2020/forms/datepicker/model/calendar-view.model.mjs} +0 -0
  318. package/{esm2015/forms/datepicker/model/calendar.model.js → esm2020/forms/datepicker/model/calendar.model.mjs} +0 -0
  319. package/{esm2015/forms/datepicker/model/day-view.model.js → esm2020/forms/datepicker/model/day-view.model.mjs} +0 -0
  320. package/{esm2015/forms/datepicker/model/day.model.js → esm2020/forms/datepicker/model/day.model.mjs} +0 -0
  321. package/{esm2015/forms/datepicker/model/year-range.model.js → esm2020/forms/datepicker/model/year-range.model.mjs} +0 -0
  322. package/esm2020/forms/datepicker/monthpicker.mjs +125 -0
  323. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +36 -0
  324. package/esm2020/forms/datepicker/providers/date-io.service.mjs +176 -0
  325. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +130 -0
  326. package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +46 -0
  327. package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +47 -0
  328. package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +101 -0
  329. package/esm2020/forms/datepicker/providers/view-manager.service.mjs +41 -0
  330. package/{esm2015/forms/datepicker/utils/constants.js → esm2020/forms/datepicker/utils/constants.mjs} +0 -0
  331. package/{esm2015/forms/datepicker/utils/date-utils.js → esm2020/forms/datepicker/utils/date-utils.mjs} +0 -0
  332. package/esm2020/forms/datepicker/yearpicker.mjs +231 -0
  333. package/esm2020/forms/forms.module.mjs +64 -0
  334. package/{esm2015/forms/index.js → esm2020/forms/index.mjs} +0 -0
  335. package/{esm2015/forms/input/index.js → esm2020/forms/input/index.mjs} +0 -0
  336. package/{esm2015/forms/input/input-container.js → esm2020/forms/input/input-container.mjs} +44 -13
  337. package/esm2020/forms/input/input.mjs +27 -0
  338. package/esm2020/forms/input/input.module.mjs +33 -0
  339. package/{esm2015/forms/password/index.js → esm2020/forms/password/index.mjs} +0 -0
  340. package/esm2020/forms/password/password-container.mjs +175 -0
  341. package/esm2020/forms/password/password.mjs +61 -0
  342. package/esm2020/forms/password/password.module.mjs +32 -0
  343. package/{esm2015/forms/radio/index.js → esm2020/forms/radio/index.mjs} +0 -0
  344. package/esm2020/forms/radio/radio-container.mjs +127 -0
  345. package/esm2020/forms/radio/radio-wrapper.mjs +49 -0
  346. package/esm2020/forms/radio/radio.mjs +26 -0
  347. package/esm2020/forms/radio/radio.module.mjs +33 -0
  348. package/{esm2015/forms/range/index.js → esm2020/forms/range/index.mjs} +0 -0
  349. package/esm2020/forms/range/range-container.mjs +124 -0
  350. package/esm2020/forms/range/range.mjs +26 -0
  351. package/esm2020/forms/range/range.module.mjs +32 -0
  352. package/{esm2015/forms/select/index.js → esm2020/forms/select/index.mjs} +0 -0
  353. package/esm2020/forms/select/select-container.mjs +113 -0
  354. package/esm2020/forms/select/select.mjs +27 -0
  355. package/esm2020/forms/select/select.module.mjs +32 -0
  356. package/{esm2015/forms/textarea/index.js → esm2020/forms/textarea/index.mjs} +0 -0
  357. package/esm2020/forms/textarea/textarea-container.mjs +83 -0
  358. package/esm2020/forms/textarea/textarea.mjs +27 -0
  359. package/esm2020/forms/textarea/textarea.module.mjs +32 -0
  360. package/esm2020/icon/icon.mjs +24 -0
  361. package/esm2020/icon/icon.module.mjs +20 -0
  362. package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
  363. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  364. package/{esm2015/layout/index.js → esm2020/layout/index.mjs} +0 -0
  365. package/esm2020/layout/layout.module.mjs +21 -0
  366. package/{esm2015/layout/main-container/index.js → esm2020/layout/main-container/index.mjs} +0 -0
  367. package/esm2020/layout/main-container/main-container.mjs +58 -0
  368. package/esm2020/layout/main-container/main-container.module.mjs +25 -0
  369. package/{esm2015/layout/nav/chocolate/index.js → esm2020/layout/nav/chocolate/index.mjs} +0 -0
  370. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +17 -0
  371. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +33 -0
  372. package/esm2020/layout/nav/header.mjs +120 -0
  373. package/{esm2015/layout/nav/index.js → esm2020/layout/nav/index.mjs} +0 -0
  374. package/esm2020/layout/nav/nav-level.mjs +81 -0
  375. package/esm2020/layout/nav/navigation.module.mjs +40 -0
  376. package/{esm2015/layout/nav/providers/responsive-navigation.service.js → esm2020/layout/nav/providers/responsive-navigation.service.mjs} +7 -6
  377. package/{esm2015/layout/nav/responsive-nav-codes.js → esm2020/layout/nav/responsive-nav-codes.mjs} +0 -0
  378. package/{esm2015/layout/nav/responsive-nav-control-message.js → esm2020/layout/nav/responsive-nav-control-message.mjs} +0 -0
  379. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +36 -0
  380. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +17 -0
  381. package/{esm2015/layout/tabs/enums/tabs-layout.enum.js → esm2020/layout/tabs/enums/tabs-layout.enum.mjs} +0 -0
  382. package/{esm2015/layout/tabs/index.js → esm2020/layout/tabs/index.mjs} +0 -0
  383. package/esm2020/layout/tabs/providers/tabs.service.mjs +45 -0
  384. package/esm2020/layout/tabs/tab-content.mjs +96 -0
  385. package/esm2020/layout/tabs/tab-link.directive.mjs +115 -0
  386. package/esm2020/layout/tabs/tab-overflow-content.mjs +22 -0
  387. package/esm2020/layout/tabs/tab.mjs +47 -0
  388. package/{esm2015/layout/tabs/tabs-id.provider.js → esm2020/layout/tabs/tabs-id.provider.mjs} +0 -0
  389. package/esm2020/layout/tabs/tabs.mjs +312 -0
  390. package/esm2020/layout/tabs/tabs.module.mjs +58 -0
  391. package/{esm2015/layout/vertical-nav/index.js → esm2020/layout/vertical-nav/index.mjs} +0 -0
  392. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +24 -0
  393. package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +25 -0
  394. package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +27 -0
  395. package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +54 -0
  396. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +19 -0
  397. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +162 -0
  398. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +24 -0
  399. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +44 -0
  400. package/esm2020/layout/vertical-nav/vertical-nav.mjs +79 -0
  401. package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +49 -0
  402. package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
  403. package/esm2020/modal/modal-body.mjs +42 -0
  404. package/esm2020/modal/modal.mjs +145 -0
  405. package/esm2020/modal/modal.module.mjs +32 -0
  406. package/esm2020/popover/common/abstract-popover.mjs +134 -0
  407. package/{esm2015/popover/common/popover-host-anchor.token.js → esm2020/popover/common/popover-host-anchor.token.mjs} +0 -0
  408. package/{esm2015/popover/common/popover-options.interface.js → esm2020/popover/common/popover-options.interface.mjs} +0 -0
  409. package/{esm2015/popover/common/popover.js → esm2020/popover/common/popover.mjs} +0 -0
  410. package/esm2020/popover/dropdown/dropdown-item.mjs +88 -0
  411. package/esm2020/popover/dropdown/dropdown-menu.mjs +114 -0
  412. package/esm2020/popover/dropdown/dropdown-trigger.mjs +48 -0
  413. package/esm2020/popover/dropdown/dropdown.mjs +62 -0
  414. package/esm2020/popover/dropdown/dropdown.module.mjs +29 -0
  415. package/{esm2015/popover/dropdown/index.js → esm2020/popover/dropdown/index.mjs} +0 -0
  416. package/{esm2015/popover/dropdown/menu-positions.js → esm2020/popover/dropdown/menu-positions.mjs} +0 -0
  417. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +186 -0
  418. package/esm2020/popover/dropdown/providers/dropdown.service.mjs +33 -0
  419. package/{esm2015/popover/index.js → esm2020/popover/index.mjs} +0 -0
  420. package/esm2020/popover/popover.module.mjs +20 -0
  421. package/{esm2015/popover/signpost/index.js → esm2020/popover/signpost/index.mjs} +0 -0
  422. package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +23 -0
  423. package/esm2020/popover/signpost/providers/signpost-id.service.mjs +26 -0
  424. package/esm2020/popover/signpost/signpost-content.mjs +177 -0
  425. package/{esm2015/popover/signpost/signpost-positions.js → esm2020/popover/signpost/signpost-positions.mjs} +0 -0
  426. package/esm2020/popover/signpost/signpost-trigger.mjs +96 -0
  427. package/esm2020/popover/signpost/signpost.mjs +89 -0
  428. package/esm2020/popover/signpost/signpost.module.mjs +33 -0
  429. package/{esm2015/popover/tooltip/index.js → esm2020/popover/tooltip/index.mjs} +0 -0
  430. package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +25 -0
  431. package/esm2020/popover/tooltip/tooltip-content.mjs +132 -0
  432. package/esm2020/popover/tooltip/tooltip-trigger.mjs +54 -0
  433. package/esm2020/popover/tooltip/tooltip.mjs +41 -0
  434. package/esm2020/popover/tooltip/tooltip.module.mjs +28 -0
  435. package/{esm2015/progress/progress-bars/index.js → esm2020/progress/progress-bars/index.mjs} +0 -0
  436. package/{esm2015/progress/progress-bars/progress-bar.js → esm2020/progress/progress-bars/progress-bar.mjs} +75 -30
  437. package/esm2020/progress/progress-bars/progress-bar.module.mjs +24 -0
  438. package/{esm2015/progress/spinner/index.js → esm2020/progress/spinner/index.mjs} +0 -0
  439. package/esm2020/progress/spinner/spinner.mjs +83 -0
  440. package/esm2020/progress/spinner/spinner.module.mjs +24 -0
  441. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  442. package/{esm2015/timeline/enums/timeline-layout.enum.js → esm2020/timeline/enums/timeline-layout.enum.mjs} +0 -0
  443. package/{esm2015/timeline/enums/timeline-step-state.enum.js → esm2020/timeline/enums/timeline-step-state.enum.mjs} +0 -0
  444. package/{esm2015/timeline/index.js → esm2020/timeline/index.mjs} +0 -0
  445. package/{esm2015/timeline/interface/icon-attribute.interface.js → esm2020/timeline/interface/icon-attribute.interface.mjs} +0 -0
  446. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +54 -0
  447. package/esm2020/timeline/timeline-step-description.mjs +20 -0
  448. package/esm2020/timeline/timeline-step-header.mjs +20 -0
  449. package/esm2020/timeline/timeline-step-title.mjs +30 -0
  450. package/esm2020/timeline/timeline-step.mjs +101 -0
  451. package/esm2020/timeline/timeline.mjs +35 -0
  452. package/esm2020/timeline/timeline.module.mjs +48 -0
  453. package/esm2020/utils/a11y/aria-live.service.mjs +163 -0
  454. package/{esm2015/utils/a11y/index.js → esm2020/utils/a11y/index.mjs} +0 -0
  455. package/{esm2015/utils/animations/collapse/collapse.js → esm2020/utils/animations/collapse/collapse.mjs} +0 -0
  456. package/{esm2015/utils/animations/collapse/index.js → esm2020/utils/animations/collapse/index.mjs} +0 -0
  457. package/{esm2015/utils/animations/constants.js → esm2020/utils/animations/constants.mjs} +0 -0
  458. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +70 -0
  459. package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +24 -0
  460. package/{esm2015/utils/animations/expandable-animation/index.js → esm2020/utils/animations/expandable-animation/index.mjs} +0 -0
  461. package/{esm2015/utils/animations/fade/fade.js → esm2020/utils/animations/fade/fade.mjs} +0 -0
  462. package/{esm2015/utils/animations/fade/index.js → esm2020/utils/animations/fade/index.mjs} +0 -0
  463. package/{esm2015/utils/animations/fade-slide/fade-slide.js → esm2020/utils/animations/fade-slide/fade-slide.mjs} +0 -0
  464. package/{esm2015/utils/animations/fade-slide/index.js → esm2020/utils/animations/fade-slide/index.mjs} +0 -0
  465. package/{esm2015/utils/animations/index.js → esm2020/utils/animations/index.mjs} +0 -0
  466. package/{esm2015/utils/animations/slide/index.js → esm2020/utils/animations/slide/index.mjs} +0 -0
  467. package/{esm2015/utils/animations/slide/slide.js → esm2020/utils/animations/slide/slide.mjs} +0 -0
  468. package/esm2020/utils/aria/aria.service.mjs +16 -0
  469. package/{esm2015/utils/breakpoints/breakpoints.js → esm2020/utils/breakpoints/breakpoints.mjs} +0 -0
  470. package/esm2020/utils/chocolate/oompa-loompa.mjs +32 -0
  471. package/esm2020/utils/chocolate/willy-wonka.mjs +36 -0
  472. package/{esm2015/utils/component/is-boolean-attribute-set.js → esm2020/utils/component/is-boolean-attribute-set.mjs} +0 -0
  473. package/esm2020/utils/conditional/conditional.module.mjs +22 -0
  474. package/esm2020/utils/conditional/if-active.directive.mjs +104 -0
  475. package/esm2020/utils/conditional/if-active.service.mjs +77 -0
  476. package/esm2020/utils/conditional/if-expanded.directive.mjs +92 -0
  477. package/esm2020/utils/conditional/if-expanded.service.mjs +58 -0
  478. package/esm2020/utils/conditional/if-open.directive.mjs +87 -0
  479. package/{esm2015/utils/conditional/index.js → esm2020/utils/conditional/index.mjs} +0 -0
  480. package/esm2020/utils/dom-adapter/dom-adapter.mjs +52 -0
  481. package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +43 -0
  482. package/{esm2015/utils/drag-and-drop/drag-event.js → esm2020/utils/drag-and-drop/drag-event.mjs} +0 -0
  483. package/esm2020/utils/drag-and-drop/drag-handle.mjs +32 -0
  484. package/esm2020/utils/drag-and-drop/draggable/draggable.mjs +135 -0
  485. package/esm2020/utils/drag-and-drop/draggable-ghost.mjs +124 -0
  486. package/esm2020/utils/drag-and-drop/droppable/droppable.mjs +222 -0
  487. package/esm2020/utils/drag-and-drop/if-dragged.mjs +45 -0
  488. package/{esm2015/utils/drag-and-drop/index.js → esm2020/utils/drag-and-drop/index.mjs} +0 -0
  489. package/{esm2015/utils/drag-and-drop/interfaces/drag-event.interface.js → esm2020/utils/drag-and-drop/interfaces/drag-event.interface.mjs} +0 -0
  490. package/{esm2015/utils/drag-and-drop/interfaces/drop-tolerance.interface.js → esm2020/utils/drag-and-drop/interfaces/drop-tolerance.interface.mjs} +0 -0
  491. package/{esm2015/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.js → esm2020/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.mjs} +7 -5
  492. package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +179 -0
  493. package/esm2020/utils/drag-and-drop/providers/drag-handle-registrar.service.mjs +60 -0
  494. package/esm2020/utils/drag-and-drop/providers/draggable-snapshot.service.mjs +38 -0
  495. package/esm2020/utils/drag-and-drop/providers/global-drag-mode.service.mjs +26 -0
  496. package/{esm2015/utils/enums/key-codes.enum.js → esm2020/utils/enums/key-codes.enum.mjs} +0 -0
  497. package/{esm2015/utils/focus/arrow-key-direction.enum.js → esm2020/utils/focus/arrow-key-direction.enum.mjs} +0 -0
  498. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +84 -0
  499. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +26 -0
  500. package/{esm2015/utils/focus/focus-on-view-init/focus-on-view-init.provider.js → esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs} +0 -0
  501. package/{esm2015/utils/focus/focus-on-view-init/index.js → esm2020/utils/focus/focus-on-view-init/index.mjs} +0 -0
  502. package/esm2020/utils/focus/focus.service.mjs +94 -0
  503. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +58 -0
  504. package/{esm2015/utils/focus/focusable-item/custom-focusable-item-provider.js → esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs} +0 -0
  505. package/{esm2015/utils/focus/focusable-item/focusable-item.js → esm2020/utils/focus/focusable-item/focusable-item.mjs} +0 -0
  506. package/{esm2015/utils/focus/focusable-item/linkers.js → esm2020/utils/focus/focusable-item/linkers.mjs} +0 -0
  507. package/{esm2015/utils/focus/key-focus/enums/focus-direction.enum.js → esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs} +0 -0
  508. package/{esm2015/utils/focus/key-focus/interfaces.js → esm2020/utils/focus/key-focus/interfaces.mjs} +0 -0
  509. package/esm2020/utils/focus/key-focus/key-focus-item.mjs +34 -0
  510. package/esm2020/utils/focus/key-focus/key-focus.mjs +194 -0
  511. package/esm2020/utils/focus/key-focus/key-focus.module.mjs +26 -0
  512. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +102 -0
  513. package/{esm2015/utils/focus/key-focus/util.js → esm2020/utils/focus/key-focus/util.mjs} +0 -0
  514. package/{esm2015/utils/focus/wrap-observable.js → esm2020/utils/focus/wrap-observable.mjs} +0 -0
  515. package/{esm2015/utils/focus-trap/focus-trap-config.interface.js → esm2020/utils/focus-trap/focus-trap-config.interface.mjs} +0 -0
  516. package/esm2020/utils/focus-trap/focus-trap-tracker.service.mjs +32 -0
  517. package/esm2020/utils/focus-trap/focus-trap.directive.mjs +156 -0
  518. package/esm2020/utils/focus-trap/focus-trap.module.mjs +24 -0
  519. package/{esm2015/utils/focus-trap/index.js → esm2020/utils/focus-trap/index.mjs} +0 -0
  520. package/{esm2015/utils/forms/validation.js → esm2020/utils/forms/validation.mjs} +0 -0
  521. package/{esm2015/utils/host-wrapping/dynamic-wrapper.js → esm2020/utils/host-wrapping/dynamic-wrapper.mjs} +0 -0
  522. package/esm2020/utils/host-wrapping/empty-anchor.mjs +18 -0
  523. package/{esm2015/utils/host-wrapping/host-wrapper.js → esm2020/utils/host-wrapping/host-wrapper.mjs} +0 -0
  524. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +21 -0
  525. package/{esm2015/utils/i18n/common-strings.default.js → esm2020/utils/i18n/common-strings.default.mjs} +2 -2
  526. package/{esm2015/utils/i18n/common-strings.interface.js → esm2020/utils/i18n/common-strings.interface.mjs} +0 -0
  527. package/esm2020/utils/i18n/common-strings.service.mjs +47 -0
  528. package/{esm2015/utils/i18n/index.js → esm2020/utils/i18n/index.mjs} +0 -0
  529. package/{esm2015/utils/id-generator/id-generator.service.js → esm2020/utils/id-generator/id-generator.service.mjs} +0 -0
  530. package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
  531. package/{esm2015/utils/key-codes/key-codes.js → esm2020/utils/key-codes/key-codes.mjs} +0 -0
  532. package/{esm2015/utils/loading/index.js → esm2020/utils/loading/index.mjs} +0 -0
  533. package/{esm2015/utils/loading/loading-listener.js → esm2020/utils/loading/loading-listener.mjs} +0 -0
  534. package/esm2020/utils/loading/loading.mjs +55 -0
  535. package/esm2020/utils/loading/loading.module.mjs +20 -0
  536. package/{esm2015/utils/outside-click/index.js → esm2020/utils/outside-click/index.mjs} +0 -0
  537. package/esm2020/utils/outside-click/outside-click.mjs +46 -0
  538. package/esm2020/utils/outside-click/outside-click.module.mjs +20 -0
  539. package/{esm2015/utils/popover/enums/alignment.enum.js → esm2020/utils/popover/enums/alignment.enum.mjs} +0 -0
  540. package/{esm2015/utils/popover/enums/axis.enum.js → esm2020/utils/popover/enums/axis.enum.mjs} +0 -0
  541. package/{esm2015/utils/popover/enums/positions.enum.js → esm2020/utils/popover/enums/positions.enum.mjs} +0 -0
  542. package/{esm2015/utils/popover/enums/side.enum.js → esm2020/utils/popover/enums/side.enum.mjs} +0 -0
  543. package/{esm2015/utils/popover/enums/viewport-violation.enum.js → esm2020/utils/popover/enums/viewport-violation.enum.mjs} +0 -0
  544. package/{esm2015/utils/popover/index.js → esm2020/utils/popover/index.mjs} +0 -0
  545. package/{esm2015/utils/popover/interfaces/popover-content-offset.interface.js → esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs} +0 -0
  546. package/{esm2015/utils/popover/interfaces/popover-position.interface.js → esm2020/utils/popover/interfaces/popover-position.interface.mjs} +0 -0
  547. package/{esm2015/utils/popover/interfaces/visibility-coords.interface.js → esm2020/utils/popover/interfaces/visibility-coords.interface.mjs} +0 -0
  548. package/esm2020/utils/popover/popover-anchor.mjs +26 -0
  549. package/esm2020/utils/popover/popover-close-button.mjs +52 -0
  550. package/esm2020/utils/popover/popover-content.mjs +150 -0
  551. package/esm2020/utils/popover/popover-open-close-button.mjs +43 -0
  552. package/esm2020/utils/popover/popover.module.mjs +26 -0
  553. package/esm2020/utils/popover/position-operators.mjs +180 -0
  554. package/esm2020/utils/popover/providers/popover-events.service.mjs +160 -0
  555. package/esm2020/utils/popover/providers/popover-position.service.mjs +215 -0
  556. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +70 -0
  557. package/esm2020/utils/scrolling/scrolling-service.mjs +30 -0
  558. package/{esm2015/utils/template-ref/index.js → esm2020/utils/template-ref/index.mjs} +0 -0
  559. package/esm2020/utils/template-ref/template-ref-container.mjs +29 -0
  560. package/esm2020/utils/template-ref/template-ref.module.mjs +25 -0
  561. package/{esm2015/wizard/index.js → esm2020/wizard/index.mjs} +0 -0
  562. package/esm2020/wizard/providers/button-hub.service.mjs +63 -0
  563. package/esm2020/wizard/providers/header-actions.service.mjs +37 -0
  564. package/esm2020/wizard/providers/page-collection.service.mjs +361 -0
  565. package/esm2020/wizard/providers/wizard-navigation.service.mjs +574 -0
  566. package/esm2020/wizard/wizard-button.mjs +187 -0
  567. package/esm2020/wizard/wizard-custom-tags.mjs +16 -0
  568. package/esm2020/wizard/wizard-header-action.mjs +76 -0
  569. package/esm2020/wizard/wizard-page-buttons.mjs +19 -0
  570. package/esm2020/wizard/wizard-page-header-actions.mjs +19 -0
  571. package/esm2020/wizard/wizard-page-navtitle.mjs +19 -0
  572. package/esm2020/wizard/wizard-page-title.mjs +19 -0
  573. package/{esm2015/wizard/wizard-page.js → esm2020/wizard/wizard-page.mjs} +90 -47
  574. package/esm2020/wizard/wizard-stepnav-item.mjs +122 -0
  575. package/esm2020/wizard/wizard-stepnav.mjs +48 -0
  576. package/esm2020/wizard/wizard.mjs +475 -0
  577. package/esm2020/wizard/wizard.module.mjs +72 -0
  578. package/fesm2015/clr-angular.mjs +26606 -0
  579. package/fesm2015/clr-angular.mjs.map +1 -0
  580. package/{fesm2015/clr-angular.js → fesm2020/clr-angular.mjs} +8969 -6517
  581. package/fesm2020/clr-angular.mjs.map +1 -0
  582. package/forms/checkbox/checkbox-container.d.ts +3 -0
  583. package/forms/checkbox/checkbox-wrapper.d.ts +3 -0
  584. package/forms/checkbox/checkbox.d.ts +3 -0
  585. package/forms/checkbox/checkbox.module.d.ts +11 -5
  586. package/forms/combobox/combobox-container.d.ts +3 -0
  587. package/forms/combobox/combobox.d.ts +3 -5
  588. package/forms/combobox/combobox.module.d.ts +18 -5
  589. package/forms/combobox/option-items.directive.d.ts +3 -0
  590. package/forms/combobox/option-selected.directive.d.ts +3 -0
  591. package/forms/combobox/option.d.ts +3 -0
  592. package/forms/combobox/options.d.ts +3 -0
  593. package/forms/combobox/providers/combobox-container.service.d.ts +3 -0
  594. package/forms/combobox/providers/combobox-focus-handler.service.d.ts +4 -1
  595. package/forms/combobox/providers/option-selection.service.d.ts +3 -0
  596. package/forms/common/abstract-container.d.ts +3 -0
  597. package/forms/common/abstract-control.d.ts +3 -5
  598. package/forms/common/common.module.d.ts +16 -5
  599. package/forms/common/control-container.d.ts +3 -5
  600. package/forms/common/control.d.ts +3 -0
  601. package/forms/common/error.d.ts +3 -5
  602. package/forms/common/form.d.ts +3 -0
  603. package/forms/common/helper.d.ts +3 -5
  604. package/forms/common/if-control-state/abstract-if-state.d.ts +3 -0
  605. package/forms/common/if-control-state/if-control-state.service.d.ts +3 -0
  606. package/forms/common/if-control-state/if-error.d.ts +3 -0
  607. package/forms/common/if-control-state/if-success.d.ts +3 -0
  608. package/forms/common/label.d.ts +3 -0
  609. package/forms/common/layout.d.ts +3 -0
  610. package/forms/common/providers/container-id.service.d.ts +3 -0
  611. package/forms/common/providers/control-class.service.d.ts +3 -0
  612. package/forms/common/providers/control-id.service.d.ts +3 -0
  613. package/forms/common/providers/focus.service.d.ts +3 -0
  614. package/forms/common/providers/layout.service.d.ts +3 -0
  615. package/forms/common/providers/mark-control.service.d.ts +3 -0
  616. package/forms/common/providers/ng-control.service.d.ts +3 -0
  617. package/forms/common/success.d.ts +3 -5
  618. package/forms/common/wrapped-control.d.ts +3 -0
  619. package/forms/datalist/datalist-container.d.ts +3 -5
  620. package/forms/datalist/datalist-input.d.ts +3 -0
  621. package/forms/datalist/datalist.d.ts +3 -0
  622. package/forms/datalist/datalist.module.d.ts +10 -0
  623. package/forms/datalist/providers/datalist-id.service.d.ts +3 -0
  624. package/forms/datepicker/calendar.d.ts +3 -0
  625. package/forms/datepicker/date-container.d.ts +3 -0
  626. package/forms/datepicker/date-input.d.ts +3 -0
  627. package/forms/datepicker/datepicker-view-manager.d.ts +3 -0
  628. package/forms/datepicker/datepicker.module.d.ts +19 -0
  629. package/forms/datepicker/day.d.ts +3 -0
  630. package/forms/datepicker/daypicker.d.ts +3 -0
  631. package/forms/datepicker/monthpicker.d.ts +3 -0
  632. package/forms/datepicker/providers/date-form-control.service.d.ts +3 -0
  633. package/forms/datepicker/providers/date-io.service.d.ts +3 -0
  634. package/forms/datepicker/providers/date-navigation.service.d.ts +3 -0
  635. package/forms/datepicker/providers/datepicker-enabled.service.d.ts +3 -0
  636. package/forms/datepicker/providers/datepicker-focus.service.d.ts +3 -0
  637. package/forms/datepicker/providers/locale-helper.service.d.ts +3 -0
  638. package/forms/datepicker/providers/view-manager.service.d.ts +3 -0
  639. package/forms/datepicker/yearpicker.d.ts +3 -0
  640. package/forms/forms.module.d.ts +16 -0
  641. package/forms/input/input-container.d.ts +3 -5
  642. package/forms/input/input.d.ts +3 -0
  643. package/forms/input/input.module.d.ts +10 -5
  644. package/forms/password/password-container.d.ts +3 -0
  645. package/forms/password/password.d.ts +3 -0
  646. package/forms/password/password.module.d.ts +10 -5
  647. package/forms/radio/radio-container.d.ts +3 -0
  648. package/forms/radio/radio-wrapper.d.ts +3 -0
  649. package/forms/radio/radio.d.ts +3 -0
  650. package/forms/radio/radio.module.d.ts +11 -5
  651. package/forms/range/range-container.d.ts +3 -0
  652. package/forms/range/range.d.ts +3 -0
  653. package/forms/range/range.module.d.ts +10 -5
  654. package/forms/select/select-container.d.ts +3 -5
  655. package/forms/select/select.d.ts +3 -0
  656. package/forms/select/select.module.d.ts +10 -5
  657. package/forms/textarea/textarea-container.d.ts +3 -5
  658. package/forms/textarea/textarea.d.ts +3 -0
  659. package/forms/textarea/textarea.module.d.ts +10 -5
  660. package/icon/icon.d.ts +5 -0
  661. package/icon/icon.module.d.ts +6 -0
  662. package/layout/layout.module.d.ts +8 -0
  663. package/layout/main-container/main-container.d.ts +3 -0
  664. package/layout/main-container/main-container.module.d.ts +7 -0
  665. package/layout/nav/chocolate/main-container-willy-wonka.d.ts +3 -0
  666. package/layout/nav/chocolate/nav-detection-oompa-loompa.d.ts +3 -0
  667. package/layout/nav/header.d.ts +3 -0
  668. package/layout/nav/nav-level.d.ts +3 -0
  669. package/layout/nav/navigation.module.d.ts +11 -0
  670. package/layout/nav/providers/responsive-navigation.service.d.ts +3 -0
  671. package/layout/tabs/chocolate/active-oompa-loompa.d.ts +3 -0
  672. package/layout/tabs/chocolate/tabs-willy-wonka.d.ts +3 -0
  673. package/layout/tabs/providers/tabs.service.d.ts +3 -0
  674. package/layout/tabs/tab-content.d.ts +3 -0
  675. package/layout/tabs/tab-link.directive.d.ts +3 -0
  676. package/layout/tabs/tab-overflow-content.d.ts +3 -0
  677. package/layout/tabs/tab.d.ts +3 -0
  678. package/layout/tabs/tabs.d.ts +3 -0
  679. package/layout/tabs/tabs.module.d.ts +16 -0
  680. package/layout/vertical-nav/providers/vertical-nav-group-registration.service.d.ts +3 -0
  681. package/layout/vertical-nav/providers/vertical-nav-group.service.d.ts +3 -0
  682. package/layout/vertical-nav/providers/vertical-nav-icon.service.d.ts +3 -0
  683. package/layout/vertical-nav/providers/vertical-nav.service.d.ts +3 -0
  684. package/layout/vertical-nav/vertical-nav-group-children.d.ts +3 -0
  685. package/layout/vertical-nav/vertical-nav-group.d.ts +3 -0
  686. package/layout/vertical-nav/vertical-nav-icon.d.ts +3 -0
  687. package/layout/vertical-nav/vertical-nav-link.d.ts +3 -0
  688. package/layout/vertical-nav/vertical-nav.d.ts +3 -0
  689. package/layout/vertical-nav/vertical-nav.module.d.ts +13 -0
  690. package/modal/modal-body.d.ts +3 -0
  691. package/modal/modal.d.ts +3 -0
  692. package/modal/modal.module.d.ts +10 -0
  693. package/package.json +24 -12
  694. package/popover/common/abstract-popover.d.ts +3 -0
  695. package/popover/dropdown/dropdown-item.d.ts +3 -0
  696. package/popover/dropdown/dropdown-menu.d.ts +3 -0
  697. package/popover/dropdown/dropdown-trigger.d.ts +3 -0
  698. package/popover/dropdown/dropdown.d.ts +3 -0
  699. package/popover/dropdown/dropdown.module.d.ts +11 -0
  700. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +3 -0
  701. package/popover/dropdown/providers/dropdown.service.d.ts +3 -0
  702. package/popover/popover.module.d.ts +7 -0
  703. package/popover/signpost/providers/signpost-focus-manager.service.d.ts +3 -0
  704. package/popover/signpost/providers/signpost-id.service.d.ts +3 -0
  705. package/popover/signpost/signpost-content.d.ts +3 -0
  706. package/popover/signpost/signpost-trigger.d.ts +3 -0
  707. package/popover/signpost/signpost.d.ts +3 -0
  708. package/popover/signpost/signpost.module.d.ts +11 -0
  709. package/popover/tooltip/providers/tooltip-id.service.d.ts +3 -0
  710. package/popover/tooltip/tooltip-content.d.ts +3 -0
  711. package/popover/tooltip/tooltip-trigger.d.ts +3 -0
  712. package/popover/tooltip/tooltip.d.ts +3 -0
  713. package/popover/tooltip/tooltip.module.d.ts +10 -0
  714. package/progress/progress-bars/progress-bar.d.ts +3 -0
  715. package/progress/progress-bars/progress-bar.module.d.ts +6 -0
  716. package/progress/spinner/spinner.d.ts +3 -0
  717. package/progress/spinner/spinner.module.d.ts +6 -0
  718. package/schematics/add/index.js +9 -9
  719. package/schematics/add/index.js.map +1 -1
  720. package/schematics/add/index.spec.js +13 -13
  721. package/schematics/add/index.spec.js.map +1 -1
  722. package/schematics/add/schema.json +1 -1
  723. package/schematics/migration-collection.json +5 -0
  724. package/schematics/update/update-13.0.0.js +37 -0
  725. package/schematics/update/update-13.0.0.js.map +1 -0
  726. package/schematics/update/update-13.0.0.spec.js +71 -0
  727. package/schematics/update/update-13.0.0.spec.js.map +1 -0
  728. package/schematics/update/update-3.0.0.js +1 -1
  729. package/schematics/update/update-3.0.0.js.map +1 -1
  730. package/schematics/update/update-5.0.0.js +1 -1
  731. package/schematics/update/update-5.0.0.js.map +1 -1
  732. package/schematics/update/update-5.0.0.spec.js +4 -4
  733. package/schematics/update/update-5.0.0.spec.js.map +1 -1
  734. package/schematics/utility/add-module-import-to-module.js +2 -2
  735. package/schematics/utility/add-module-import-to-module.js.map +1 -1
  736. package/schematics/utility/find-app-module.js +2 -2
  737. package/schematics/utility/find-app-module.js.map +1 -1
  738. package/schematics/utility/update-json-file.js +1 -1
  739. package/schematics/utility/update-json-file.js.map +1 -1
  740. package/src/utils/popover/README.md +139 -0
  741. package/timeline/providers/timeline-icon-attribute.service.d.ts +3 -0
  742. package/timeline/timeline-step-description.d.ts +3 -0
  743. package/timeline/timeline-step-header.d.ts +3 -0
  744. package/timeline/timeline-step-title.d.ts +3 -0
  745. package/timeline/timeline-step.d.ts +3 -0
  746. package/timeline/timeline.d.ts +3 -0
  747. package/timeline/timeline.module.d.ts +12 -0
  748. package/utils/a11y/aria-live.service.d.ts +3 -0
  749. package/utils/animations/expandable-animation/expandable-animation.d.ts +3 -0
  750. package/utils/animations/expandable-animation/expandable-animation.module.d.ts +6 -0
  751. package/utils/aria/aria.service.d.ts +3 -0
  752. package/utils/chocolate/oompa-loompa.d.ts +3 -0
  753. package/utils/chocolate/willy-wonka.d.ts +3 -0
  754. package/utils/conditional/conditional.module.d.ts +8 -0
  755. package/utils/conditional/if-active.directive.d.ts +3 -0
  756. package/utils/conditional/if-active.service.d.ts +3 -0
  757. package/utils/conditional/if-expanded.directive.d.ts +3 -0
  758. package/utils/conditional/if-expanded.service.d.ts +3 -0
  759. package/utils/conditional/if-open.directive.d.ts +3 -0
  760. package/utils/dom-adapter/dom-adapter.d.ts +4 -1
  761. package/utils/drag-and-drop/drag-and-drop.module.d.ts +10 -0
  762. package/utils/drag-and-drop/drag-handle.d.ts +3 -0
  763. package/utils/drag-and-drop/draggable/draggable.d.ts +3 -0
  764. package/utils/drag-and-drop/draggable-ghost.d.ts +3 -0
  765. package/utils/drag-and-drop/droppable/droppable.d.ts +3 -0
  766. package/utils/drag-and-drop/if-dragged.d.ts +3 -0
  767. package/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.d.ts +3 -0
  768. package/utils/drag-and-drop/providers/drag-event-listener.service.d.ts +3 -0
  769. package/utils/drag-and-drop/providers/drag-handle-registrar.service.d.ts +3 -0
  770. package/utils/drag-and-drop/providers/draggable-snapshot.service.d.ts +3 -0
  771. package/utils/drag-and-drop/providers/global-drag-mode.service.d.ts +3 -0
  772. package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +3 -0
  773. package/utils/focus/focus-on-view-init/focus-on-view-init.module.d.ts +6 -0
  774. package/utils/focus/focus.service.d.ts +3 -0
  775. package/utils/focus/focusable-item/basic-focusable-item.service.d.ts +3 -0
  776. package/utils/focus/key-focus/key-focus-item.d.ts +3 -0
  777. package/utils/focus/key-focus/key-focus.d.ts +3 -0
  778. package/utils/focus/key-focus/key-focus.module.d.ts +8 -0
  779. package/utils/focus/key-focus/roving-tabindex.d.ts +3 -0
  780. package/utils/focus-trap/focus-trap-tracker.service.d.ts +3 -0
  781. package/utils/focus-trap/focus-trap.directive.d.ts +3 -0
  782. package/utils/focus-trap/focus-trap.module.d.ts +6 -0
  783. package/utils/host-wrapping/empty-anchor.d.ts +3 -5
  784. package/utils/host-wrapping/host-wrapping.module.d.ts +5 -5
  785. package/utils/i18n/common-strings.service.d.ts +3 -0
  786. package/utils/loading/loading.d.ts +3 -0
  787. package/utils/loading/loading.module.d.ts +6 -0
  788. package/utils/outside-click/outside-click.d.ts +3 -0
  789. package/utils/outside-click/outside-click.module.d.ts +6 -0
  790. package/utils/popover/popover-anchor.d.ts +3 -0
  791. package/utils/popover/popover-close-button.d.ts +3 -0
  792. package/utils/popover/popover-content.d.ts +3 -0
  793. package/utils/popover/popover-open-close-button.d.ts +3 -0
  794. package/utils/popover/popover.module.d.ts +8 -0
  795. package/utils/popover/providers/popover-events.service.d.ts +3 -0
  796. package/utils/popover/providers/popover-position.service.d.ts +3 -0
  797. package/utils/popover/providers/popover-toggle.service.d.ts +3 -0
  798. package/utils/scrolling/scrolling-service.d.ts +3 -0
  799. package/utils/template-ref/template-ref-container.d.ts +3 -0
  800. package/utils/template-ref/template-ref.module.d.ts +6 -0
  801. package/wizard/providers/button-hub.service.d.ts +3 -0
  802. package/wizard/providers/header-actions.service.d.ts +3 -0
  803. package/wizard/providers/page-collection.service.d.ts +3 -0
  804. package/wizard/providers/wizard-navigation.service.d.ts +3 -0
  805. package/wizard/wizard-button.d.ts +3 -0
  806. package/wizard/wizard-custom-tags.d.ts +3 -0
  807. package/wizard/wizard-header-action.d.ts +3 -0
  808. package/wizard/wizard-page-buttons.d.ts +3 -0
  809. package/wizard/wizard-page-header-actions.d.ts +3 -0
  810. package/wizard/wizard-page-navtitle.d.ts +3 -0
  811. package/wizard/wizard-page-title.d.ts +3 -0
  812. package/wizard/wizard-page.d.ts +3 -0
  813. package/wizard/wizard-stepnav-item.d.ts +3 -0
  814. package/wizard/wizard-stepnav.d.ts +3 -0
  815. package/wizard/wizard.d.ts +3 -0
  816. package/wizard/wizard.module.d.ts +18 -0
  817. package/bundles/clr-angular.umd.js +0 -26095
  818. package/bundles/clr-angular.umd.js.map +0 -1
  819. package/clr-angular.metadata.json +0 -1
  820. package/esm2015/accordion/accordion-content.js +0 -16
  821. package/esm2015/accordion/accordion-description.js +0 -17
  822. package/esm2015/accordion/accordion-panel.js +0 -105
  823. package/esm2015/accordion/accordion-title.js +0 -17
  824. package/esm2015/accordion/accordion.js +0 -57
  825. package/esm2015/accordion/accordion.module.js +0 -39
  826. package/esm2015/accordion/chocolate/accordion-oompa-loompa.js +0 -30
  827. package/esm2015/accordion/chocolate/accordion-willy-wonka.js +0 -13
  828. package/esm2015/accordion/providers/accordion.service.js +0 -44
  829. package/esm2015/accordion/stepper/chocolate/stepper-oompa-loompa.js +0 -30
  830. package/esm2015/accordion/stepper/chocolate/stepper-willy-wonka.js +0 -13
  831. package/esm2015/accordion/stepper/providers/stepper.service.js +0 -52
  832. package/esm2015/accordion/stepper/step-button.js +0 -47
  833. package/esm2015/accordion/stepper/stepper-panel.js +0 -88
  834. package/esm2015/accordion/stepper/stepper.js +0 -87
  835. package/esm2015/accordion/stepper/stepper.module.js +0 -25
  836. package/esm2015/button/button-group/button-group.js +0 -129
  837. package/esm2015/button/button-group/button-group.module.js +0 -22
  838. package/esm2015/button/button-loading/loading-button.js +0 -109
  839. package/esm2015/button/button-loading/loading-button.module.js +0 -19
  840. package/esm2015/button/button.module.js +0 -21
  841. package/esm2015/button/providers/button-in-group.service.js +0 -22
  842. package/esm2015/clr-angular.js +0 -108
  843. package/esm2015/clr-angular.module.js +0 -55
  844. package/esm2015/data/data.module.js +0 -15
  845. package/esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter.js +0 -169
  846. package/esm2015/data/datagrid/built-in/filters/datagrid-string-filter.js +0 -111
  847. package/esm2015/data/datagrid/chocolate/actionable-oompa-loompa.js +0 -30
  848. package/esm2015/data/datagrid/chocolate/datagrid-willy-wonka.js +0 -13
  849. package/esm2015/data/datagrid/chocolate/expandable-oompa-loompa.js +0 -30
  850. package/esm2015/data/datagrid/datagrid-action-bar.js +0 -16
  851. package/esm2015/data/datagrid/datagrid-action-overflow.js +0 -123
  852. package/esm2015/data/datagrid/datagrid-cell.js +0 -38
  853. package/esm2015/data/datagrid/datagrid-column-separator.js +0 -151
  854. package/esm2015/data/datagrid/datagrid-column-toggle-button.js +0 -53
  855. package/esm2015/data/datagrid/datagrid-column-toggle-title.js +0 -16
  856. package/esm2015/data/datagrid/datagrid-column-toggle.js +0 -149
  857. package/esm2015/data/datagrid/datagrid-column.js +0 -374
  858. package/esm2015/data/datagrid/datagrid-detail-body.js +0 -22
  859. package/esm2015/data/datagrid/datagrid-detail-header.js +0 -45
  860. package/esm2015/data/datagrid/datagrid-detail-registerer.js +0 -31
  861. package/esm2015/data/datagrid/datagrid-detail.js +0 -52
  862. package/esm2015/data/datagrid/datagrid-filter.js +0 -131
  863. package/esm2015/data/datagrid/datagrid-footer.js +0 -58
  864. package/esm2015/data/datagrid/datagrid-hideable-column.js +0 -97
  865. package/esm2015/data/datagrid/datagrid-if-detail.js +0 -62
  866. package/esm2015/data/datagrid/datagrid-if-expanded.service.js +0 -52
  867. package/esm2015/data/datagrid/datagrid-items-trackby.js +0 -29
  868. package/esm2015/data/datagrid/datagrid-items.js +0 -63
  869. package/esm2015/data/datagrid/datagrid-page-size.js +0 -37
  870. package/esm2015/data/datagrid/datagrid-pagination.js +0 -258
  871. package/esm2015/data/datagrid/datagrid-placeholder.js +0 -34
  872. package/esm2015/data/datagrid/datagrid-row-detail.js +0 -81
  873. package/esm2015/data/datagrid/datagrid-row.js +0 -218
  874. package/esm2015/data/datagrid/datagrid.js +0 -295
  875. package/esm2015/data/datagrid/datagrid.module.js +0 -127
  876. package/esm2015/data/datagrid/enums/column-changes.enum.js +0 -16
  877. package/esm2015/data/datagrid/providers/column-resizer.service.js +0 -59
  878. package/esm2015/data/datagrid/providers/columns.service.js +0 -50
  879. package/esm2015/data/datagrid/providers/detail.service.js +0 -58
  880. package/esm2015/data/datagrid/providers/display-mode.service.js +0 -35
  881. package/esm2015/data/datagrid/providers/filters.js +0 -112
  882. package/esm2015/data/datagrid/providers/global-expandable-rows.js +0 -33
  883. package/esm2015/data/datagrid/providers/items.js +0 -175
  884. package/esm2015/data/datagrid/providers/page.js +0 -155
  885. package/esm2015/data/datagrid/providers/row-action-service.js +0 -27
  886. package/esm2015/data/datagrid/providers/selection.js +0 -376
  887. package/esm2015/data/datagrid/providers/sort.js +0 -85
  888. package/esm2015/data/datagrid/providers/state-debouncer.provider.js +0 -39
  889. package/esm2015/data/datagrid/providers/state.provider.js +0 -77
  890. package/esm2015/data/datagrid/providers/table-size.service.js +0 -41
  891. package/esm2015/data/datagrid/render/cell-renderer.js +0 -82
  892. package/esm2015/data/datagrid/render/header-renderer.js +0 -133
  893. package/esm2015/data/datagrid/render/main-renderer.js +0 -199
  894. package/esm2015/data/datagrid/render/noop-dom-adapter.js +0 -51
  895. package/esm2015/data/datagrid/render/render-organizer.js +0 -35
  896. package/esm2015/data/datagrid/render/row-renderer.js +0 -57
  897. package/esm2015/data/datagrid/utils/datagrid-filter-registrar.js +0 -41
  898. package/esm2015/data/datagrid/wrapped-cell.js +0 -31
  899. package/esm2015/data/datagrid/wrapped-column.js +0 -32
  900. package/esm2015/data/datagrid/wrapped-row.js +0 -32
  901. package/esm2015/data/stack-view/stack-block.js +0 -146
  902. package/esm2015/data/stack-view/stack-content-input.js +0 -25
  903. package/esm2015/data/stack-view/stack-header.js +0 -45
  904. package/esm2015/data/stack-view/stack-select.js +0 -38
  905. package/esm2015/data/stack-view/stack-view-custom-tags.js +0 -12
  906. package/esm2015/data/stack-view/stack-view.js +0 -50
  907. package/esm2015/data/stack-view/stack-view.module.js +0 -47
  908. package/esm2015/data/tree-view/recursive-children.js +0 -70
  909. package/esm2015/data/tree-view/recursive-for-of.js +0 -53
  910. package/esm2015/data/tree-view/tree-features.service.js +0 -34
  911. package/esm2015/data/tree-view/tree-focus-manager.service.js +0 -118
  912. package/esm2015/data/tree-view/tree-node-link.js +0 -25
  913. package/esm2015/data/tree-view/tree-node.js +0 -252
  914. package/esm2015/data/tree-view/tree-view.module.js +0 -30
  915. package/esm2015/data/tree-view/tree.js +0 -78
  916. package/esm2015/emphasis/alert/alert-item.js +0 -32
  917. package/esm2015/emphasis/alert/alert-text.js +0 -18
  918. package/esm2015/emphasis/alert/alert.js +0 -96
  919. package/esm2015/emphasis/alert/alert.module.js +0 -30
  920. package/esm2015/emphasis/alert/alerts-pager.js +0 -69
  921. package/esm2015/emphasis/alert/alerts.js +0 -94
  922. package/esm2015/emphasis/alert/providers/icon-and-types.service.js +0 -74
  923. package/esm2015/emphasis/alert/providers/multi-alert.service.js +0 -76
  924. package/esm2015/emphasis/emphasis.module.js +0 -13
  925. package/esm2015/forms/checkbox/checkbox-container.js +0 -95
  926. package/esm2015/forms/checkbox/checkbox-wrapper.js +0 -57
  927. package/esm2015/forms/checkbox/checkbox.js +0 -40
  928. package/esm2015/forms/checkbox/checkbox.module.js +0 -29
  929. package/esm2015/forms/combobox/combobox-container.js +0 -79
  930. package/esm2015/forms/combobox/combobox.js +0 -329
  931. package/esm2015/forms/combobox/combobox.module.js +0 -53
  932. package/esm2015/forms/combobox/option-items.directive.js +0 -96
  933. package/esm2015/forms/combobox/option-selected.directive.js +0 -21
  934. package/esm2015/forms/combobox/option.js +0 -91
  935. package/esm2015/forms/combobox/options.js +0 -125
  936. package/esm2015/forms/combobox/providers/combobox-container.service.js +0 -15
  937. package/esm2015/forms/combobox/providers/combobox-focus-handler.service.js +0 -213
  938. package/esm2015/forms/combobox/providers/option-selection.service.js +0 -78
  939. package/esm2015/forms/common/abstract-container.js +0 -113
  940. package/esm2015/forms/common/abstract-control.js +0 -47
  941. package/esm2015/forms/common/common.module.js +0 -56
  942. package/esm2015/forms/common/control-container.js +0 -51
  943. package/esm2015/forms/common/control.js +0 -26
  944. package/esm2015/forms/common/error.js +0 -32
  945. package/esm2015/forms/common/form.js +0 -47
  946. package/esm2015/forms/common/helper.js +0 -32
  947. package/esm2015/forms/common/if-control-state/abstract-if-state.js +0 -41
  948. package/esm2015/forms/common/if-control-state/if-control-state.service.js +0 -56
  949. package/esm2015/forms/common/if-control-state/if-error.js +0 -65
  950. package/esm2015/forms/common/if-control-state/if-success.js +0 -42
  951. package/esm2015/forms/common/label.js +0 -61
  952. package/esm2015/forms/common/layout.js +0 -30
  953. package/esm2015/forms/common/providers/container-id.service.js +0 -30
  954. package/esm2015/forms/common/providers/control-class.service.js +0 -50
  955. package/esm2015/forms/common/providers/control-id.service.js +0 -28
  956. package/esm2015/forms/common/providers/focus.service.js +0 -22
  957. package/esm2015/forms/common/providers/layout.service.js +0 -54
  958. package/esm2015/forms/common/providers/mark-control.service.js +0 -22
  959. package/esm2015/forms/common/providers/ng-control.service.js +0 -30
  960. package/esm2015/forms/common/success.js +0 -32
  961. package/esm2015/forms/common/wrapped-control.js +0 -158
  962. package/esm2015/forms/datalist/datalist-container.js +0 -79
  963. package/esm2015/forms/datalist/datalist-input.js +0 -59
  964. package/esm2015/forms/datalist/datalist.js +0 -46
  965. package/esm2015/forms/datalist/datalist.module.js +0 -27
  966. package/esm2015/forms/datalist/providers/datalist-id.service.js +0 -28
  967. package/esm2015/forms/datepicker/calendar.js +0 -119
  968. package/esm2015/forms/datepicker/date-container.js +0 -179
  969. package/esm2015/forms/datepicker/date-input.js +0 -256
  970. package/esm2015/forms/datepicker/datepicker-view-manager.js +0 -46
  971. package/esm2015/forms/datepicker/datepicker.module.js +0 -55
  972. package/esm2015/forms/datepicker/day.js +0 -72
  973. package/esm2015/forms/datepicker/daypicker.js +0 -84
  974. package/esm2015/forms/datepicker/monthpicker.js +0 -116
  975. package/esm2015/forms/datepicker/providers/date-form-control.service.js +0 -33
  976. package/esm2015/forms/datepicker/providers/date-io.service.js +0 -176
  977. package/esm2015/forms/datepicker/providers/date-navigation.service.js +0 -127
  978. package/esm2015/forms/datepicker/providers/datepicker-enabled.service.js +0 -43
  979. package/esm2015/forms/datepicker/providers/datepicker-focus.service.js +0 -45
  980. package/esm2015/forms/datepicker/providers/locale-helper.service.js +0 -98
  981. package/esm2015/forms/datepicker/providers/view-manager.service.js +0 -38
  982. package/esm2015/forms/datepicker/yearpicker.js +0 -193
  983. package/esm2015/forms/forms.module.js +0 -39
  984. package/esm2015/forms/input/input.js +0 -26
  985. package/esm2015/forms/input/input.module.js +0 -29
  986. package/esm2015/forms/password/password-container.js +0 -120
  987. package/esm2015/forms/password/password.js +0 -53
  988. package/esm2015/forms/password/password.module.js +0 -28
  989. package/esm2015/forms/radio/radio-container.js +0 -95
  990. package/esm2015/forms/radio/radio-wrapper.js +0 -39
  991. package/esm2015/forms/radio/radio.js +0 -25
  992. package/esm2015/forms/radio/radio.module.js +0 -29
  993. package/esm2015/forms/range/range-container.js +0 -93
  994. package/esm2015/forms/range/range.js +0 -25
  995. package/esm2015/forms/range/range.module.js +0 -28
  996. package/esm2015/forms/select/select-container.js +0 -82
  997. package/esm2015/forms/select/select.js +0 -26
  998. package/esm2015/forms/select/select.module.js +0 -28
  999. package/esm2015/forms/textarea/textarea-container.js +0 -51
  1000. package/esm2015/forms/textarea/textarea.js +0 -26
  1001. package/esm2015/forms/textarea/textarea.module.js +0 -28
  1002. package/esm2015/icon/icon.js +0 -17
  1003. package/esm2015/icon/icon.module.js +0 -15
  1004. package/esm2015/layout/layout.module.js +0 -16
  1005. package/esm2015/layout/main-container/main-container.js +0 -58
  1006. package/esm2015/layout/main-container/main-container.module.js +0 -20
  1007. package/esm2015/layout/nav/chocolate/main-container-willy-wonka.js +0 -13
  1008. package/esm2015/layout/nav/chocolate/nav-detection-oompa-loompa.js +0 -32
  1009. package/esm2015/layout/nav/header.js +0 -94
  1010. package/esm2015/layout/nav/nav-level.js +0 -79
  1011. package/esm2015/layout/nav/navigation.module.js +0 -29
  1012. package/esm2015/layout/tabs/chocolate/active-oompa-loompa.js +0 -32
  1013. package/esm2015/layout/tabs/chocolate/tabs-willy-wonka.js +0 -13
  1014. package/esm2015/layout/tabs/providers/tabs.service.js +0 -42
  1015. package/esm2015/layout/tabs/tab-content.js +0 -77
  1016. package/esm2015/layout/tabs/tab-link.directive.js +0 -93
  1017. package/esm2015/layout/tabs/tab-overflow-content.js +0 -18
  1018. package/esm2015/layout/tabs/tab.js +0 -42
  1019. package/esm2015/layout/tabs/tabs.js +0 -235
  1020. package/esm2015/layout/tabs/tabs.module.js +0 -42
  1021. package/esm2015/layout/vertical-nav/providers/vertical-nav-group-registration.service.js +0 -21
  1022. package/esm2015/layout/vertical-nav/providers/vertical-nav-group.service.js +0 -22
  1023. package/esm2015/layout/vertical-nav/providers/vertical-nav-icon.service.js +0 -24
  1024. package/esm2015/layout/vertical-nav/providers/vertical-nav.service.js +0 -51
  1025. package/esm2015/layout/vertical-nav/vertical-nav-group-children.js +0 -15
  1026. package/esm2015/layout/vertical-nav/vertical-nav-group.js +0 -158
  1027. package/esm2015/layout/vertical-nav/vertical-nav-icon.js +0 -23
  1028. package/esm2015/layout/vertical-nav/vertical-nav-link.js +0 -36
  1029. package/esm2015/layout/vertical-nav/vertical-nav.js +0 -77
  1030. package/esm2015/layout/vertical-nav/vertical-nav.module.js +0 -37
  1031. package/esm2015/modal/modal-body.js +0 -43
  1032. package/esm2015/modal/modal.js +0 -111
  1033. package/esm2015/modal/modal.module.js +0 -28
  1034. package/esm2015/popover/common/abstract-popover.js +0 -133
  1035. package/esm2015/popover/dropdown/dropdown-item.js +0 -87
  1036. package/esm2015/popover/dropdown/dropdown-menu.js +0 -105
  1037. package/esm2015/popover/dropdown/dropdown-trigger.js +0 -50
  1038. package/esm2015/popover/dropdown/dropdown.js +0 -52
  1039. package/esm2015/popover/dropdown/dropdown.module.js +0 -24
  1040. package/esm2015/popover/dropdown/providers/dropdown-focus-handler.service.js +0 -181
  1041. package/esm2015/popover/dropdown/providers/dropdown.service.js +0 -30
  1042. package/esm2015/popover/popover.module.js +0 -15
  1043. package/esm2015/popover/signpost/providers/signpost-focus-manager.service.js +0 -20
  1044. package/esm2015/popover/signpost/providers/signpost-id.service.js +0 -23
  1045. package/esm2015/popover/signpost/signpost-content.js +0 -150
  1046. package/esm2015/popover/signpost/signpost-trigger.js +0 -95
  1047. package/esm2015/popover/signpost/signpost.js +0 -72
  1048. package/esm2015/popover/signpost/signpost.module.js +0 -29
  1049. package/esm2015/popover/tooltip/providers/tooltip-id.service.js +0 -22
  1050. package/esm2015/popover/tooltip/tooltip-content.js +0 -123
  1051. package/esm2015/popover/tooltip/tooltip-trigger.js +0 -46
  1052. package/esm2015/popover/tooltip/tooltip.js +0 -30
  1053. package/esm2015/popover/tooltip/tooltip.module.js +0 -23
  1054. package/esm2015/progress/progress-bars/progress-bar.module.js +0 -19
  1055. package/esm2015/progress/spinner/spinner.js +0 -63
  1056. package/esm2015/progress/spinner/spinner.module.js +0 -19
  1057. package/esm2015/timeline/providers/timeline-icon-attribute.service.js +0 -54
  1058. package/esm2015/timeline/timeline-step-description.js +0 -16
  1059. package/esm2015/timeline/timeline-step-header.js +0 -16
  1060. package/esm2015/timeline/timeline-step-title.js +0 -26
  1061. package/esm2015/timeline/timeline-step.js +0 -73
  1062. package/esm2015/timeline/timeline.js +0 -29
  1063. package/esm2015/timeline/timeline.module.js +0 -36
  1064. package/esm2015/utils/a11y/aria-live.service.js +0 -161
  1065. package/esm2015/utils/animations/expandable-animation/expandable-animation.js +0 -57
  1066. package/esm2015/utils/animations/expandable-animation/expandable-animation.module.js +0 -18
  1067. package/esm2015/utils/aria/aria.service.js +0 -13
  1068. package/esm2015/utils/chocolate/oompa-loompa.js +0 -33
  1069. package/esm2015/utils/chocolate/willy-wonka.js +0 -33
  1070. package/esm2015/utils/conditional/conditional.module.js +0 -17
  1071. package/esm2015/utils/conditional/if-active.directive.js +0 -100
  1072. package/esm2015/utils/conditional/if-active.service.js +0 -74
  1073. package/esm2015/utils/conditional/if-expanded.directive.js +0 -91
  1074. package/esm2015/utils/conditional/if-expanded.service.js +0 -55
  1075. package/esm2015/utils/conditional/if-open.directive.js +0 -86
  1076. package/esm2015/utils/dom-adapter/dom-adapter.js +0 -49
  1077. package/esm2015/utils/drag-and-drop/drag-and-drop.module.js +0 -30
  1078. package/esm2015/utils/drag-and-drop/drag-handle.js +0 -30
  1079. package/esm2015/utils/drag-and-drop/draggable/draggable.js +0 -119
  1080. package/esm2015/utils/drag-and-drop/draggable-ghost.js +0 -116
  1081. package/esm2015/utils/drag-and-drop/droppable/droppable.js +0 -209
  1082. package/esm2015/utils/drag-and-drop/if-dragged.js +0 -40
  1083. package/esm2015/utils/drag-and-drop/providers/drag-event-listener.service.js +0 -181
  1084. package/esm2015/utils/drag-and-drop/providers/drag-handle-registrar.service.js +0 -61
  1085. package/esm2015/utils/drag-and-drop/providers/draggable-snapshot.service.js +0 -38
  1086. package/esm2015/utils/drag-and-drop/providers/global-drag-mode.service.js +0 -26
  1087. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.js +0 -76
  1088. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.module.js +0 -21
  1089. package/esm2015/utils/focus/focus.service.js +0 -94
  1090. package/esm2015/utils/focus/focusable-item/basic-focusable-item.service.js +0 -55
  1091. package/esm2015/utils/focus/key-focus/key-focus-item.js +0 -31
  1092. package/esm2015/utils/focus/key-focus/key-focus.js +0 -181
  1093. package/esm2015/utils/focus/key-focus/key-focus.module.js +0 -21
  1094. package/esm2015/utils/focus/key-focus/roving-tabindex.js +0 -100
  1095. package/esm2015/utils/focus-trap/focus-trap-tracker.service.js +0 -30
  1096. package/esm2015/utils/focus-trap/focus-trap.directive.js +0 -154
  1097. package/esm2015/utils/focus-trap/focus-trap.module.js +0 -19
  1098. package/esm2015/utils/host-wrapping/empty-anchor.js +0 -14
  1099. package/esm2015/utils/host-wrapping/host-wrapping.module.js +0 -16
  1100. package/esm2015/utils/i18n/common-strings.service.js +0 -45
  1101. package/esm2015/utils/loading/loading.js +0 -52
  1102. package/esm2015/utils/loading/loading.module.js +0 -15
  1103. package/esm2015/utils/outside-click/outside-click.js +0 -45
  1104. package/esm2015/utils/outside-click/outside-click.module.js +0 -14
  1105. package/esm2015/utils/popover/popover-anchor.js +0 -26
  1106. package/esm2015/utils/popover/popover-close-button.js +0 -51
  1107. package/esm2015/utils/popover/popover-content.js +0 -146
  1108. package/esm2015/utils/popover/popover-open-close-button.js +0 -40
  1109. package/esm2015/utils/popover/popover.module.js +0 -21
  1110. package/esm2015/utils/popover/position-operators.js +0 -171
  1111. package/esm2015/utils/popover/providers/popover-events.service.js +0 -159
  1112. package/esm2015/utils/popover/providers/popover-position.service.js +0 -213
  1113. package/esm2015/utils/popover/providers/popover-toggle.service.js +0 -67
  1114. package/esm2015/utils/scrolling/scrolling-service.js +0 -27
  1115. package/esm2015/utils/template-ref/template-ref-container.js +0 -21
  1116. package/esm2015/utils/template-ref/template-ref.module.js +0 -19
  1117. package/esm2015/wizard/providers/button-hub.service.js +0 -60
  1118. package/esm2015/wizard/providers/header-actions.service.js +0 -37
  1119. package/esm2015/wizard/providers/page-collection.service.js +0 -358
  1120. package/esm2015/wizard/providers/wizard-navigation.service.js +0 -575
  1121. package/esm2015/wizard/wizard-button.js +0 -163
  1122. package/esm2015/wizard/wizard-custom-tags.js +0 -12
  1123. package/esm2015/wizard/wizard-header-action.js +0 -55
  1124. package/esm2015/wizard/wizard-page-buttons.js +0 -18
  1125. package/esm2015/wizard/wizard-page-header-actions.js +0 -18
  1126. package/esm2015/wizard/wizard-page-navtitle.js +0 -18
  1127. package/esm2015/wizard/wizard-page-title.js +0 -18
  1128. package/esm2015/wizard/wizard-stepnav-item.js +0 -100
  1129. package/esm2015/wizard/wizard-stepnav.js +0 -34
  1130. package/esm2015/wizard/wizard.js +0 -438
  1131. package/esm2015/wizard/wizard.module.js +0 -48
  1132. package/fesm2015/clr-angular.js.map +0 -1
@@ -0,0 +1,349 @@
1
+ /*
2
+ * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
3
+ * This software is released under MIT license.
4
+ * The full license information can be found in LICENSE in the root directory of this project.
5
+ */
6
+ import { Component, ContentChild, ContentChildren, ElementRef, EventEmitter, Inject, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
7
+ import { ClrDatagridColumn } from './datagrid-column';
8
+ import { ClrDatagridItems } from './datagrid-items';
9
+ import { ClrDatagridPlaceholder } from './datagrid-placeholder';
10
+ import { ClrDatagridRow } from './datagrid-row';
11
+ import { DatagridDisplayMode } from './enums/display-mode.enum';
12
+ import { DisplayModeService } from './providers/display-mode.service';
13
+ import { FiltersProvider } from './providers/filters';
14
+ import { ExpandableRowsCount } from './providers/global-expandable-rows';
15
+ import { Items } from './providers/items';
16
+ import { Page } from './providers/page';
17
+ import { RowActionService } from './providers/row-action-service';
18
+ import { Selection } from './providers/selection';
19
+ import { Sort } from './providers/sort';
20
+ import { StateDebouncer } from './providers/state-debouncer.provider';
21
+ import { StateProvider } from './providers/state.provider';
22
+ import { TableSizeService } from './providers/table-size.service';
23
+ import { DatagridRenderOrganizer } from './render/render-organizer';
24
+ import { SelectionType } from './enums/selection-type';
25
+ import { ColumnsService } from './providers/columns.service';
26
+ import { DetailService } from './providers/detail.service';
27
+ import { UNIQUE_ID, UNIQUE_ID_PROVIDER } from '../../utils/id-generator/id-generator.service';
28
+ import * as i0 from "@angular/core";
29
+ import * as i1 from "./render/render-organizer";
30
+ import * as i2 from "./providers/items";
31
+ import * as i3 from "./providers/global-expandable-rows";
32
+ import * as i4 from "./providers/selection";
33
+ import * as i5 from "./providers/row-action-service";
34
+ import * as i6 from "./providers/state.provider";
35
+ import * as i7 from "./providers/display-mode.service";
36
+ import * as i8 from "./providers/detail.service";
37
+ import * as i9 from "./providers/page";
38
+ import * as i10 from "../../utils/i18n/common-strings.service";
39
+ import * as i11 from "./datagrid-placeholder";
40
+ import * as i12 from "../../progress/spinner/spinner";
41
+ import * as i13 from "@angular/common";
42
+ import * as i14 from "@angular/forms";
43
+ import * as i15 from "../../forms/common/label";
44
+ export class ClrDatagrid {
45
+ constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, el, page, commonStrings) {
46
+ this.organizer = organizer;
47
+ this.items = items;
48
+ this.expandableRows = expandableRows;
49
+ this.selection = selection;
50
+ this.rowActionService = rowActionService;
51
+ this.stateProvider = stateProvider;
52
+ this.displayMode = displayMode;
53
+ this.renderer = renderer;
54
+ this.detailService = detailService;
55
+ this.el = el;
56
+ this.page = page;
57
+ this.commonStrings = commonStrings;
58
+ /* reference to the enum so that template can access */
59
+ this.SELECTION_TYPE = SelectionType;
60
+ /**
61
+ * Output emitted whenever the data needs to be refreshed, based on user action or external ones
62
+ */
63
+ this.refresh = new EventEmitter(false);
64
+ this.selectedChanged = new EventEmitter(false);
65
+ this.singleSelectedChanged = new EventEmitter(false);
66
+ this.clrDgSingleSelectionAriaLabel = this.commonStrings.keys.singleSelectionAriaLabel;
67
+ this.clrDgSingleActionableAriaLabel = this.commonStrings.keys.singleActionableAriaLabel;
68
+ this.clrDetailExpandableAriaLabel = this.commonStrings.keys.detailExpandableAriaLabel;
69
+ // Allows disabling of the auto focus on page/state changes (excludes focus management inside of popups)
70
+ this.clrDgDisablePageFocus = false;
71
+ /**
72
+ * Subscriptions to all the services and queries changes
73
+ */
74
+ this._subscriptions = [];
75
+ this.selectAllId = 'clr-dg-select-all-' + datagridId;
76
+ this.detailService.id = datagridId;
77
+ }
78
+ /**
79
+ * Freezes the datagrid while data is loading
80
+ */
81
+ get loading() {
82
+ return this.items.loading;
83
+ }
84
+ set loading(value) {
85
+ this.items.loading = value;
86
+ }
87
+ /**
88
+ * Public method to re-trigger the computation of displayed items manually
89
+ */
90
+ dataChanged() {
91
+ this.items.refresh();
92
+ }
93
+ /**
94
+ * Array of all selected items
95
+ */
96
+ set selected(value) {
97
+ if (value) {
98
+ this.selection.selectionType = SelectionType.Multi;
99
+ }
100
+ else {
101
+ this.selection.selectionType = SelectionType.None;
102
+ }
103
+ this.selection.updateCurrent(value, false);
104
+ }
105
+ /**
106
+ * Selected item in single-select mode
107
+ */
108
+ set singleSelected(value) {
109
+ this.selection.selectionType = SelectionType.Single;
110
+ // the clrDgSingleSelected is updated in one of two cases:
111
+ // 1. an explicit value is passed
112
+ // 2. is being set to null or undefined, where previously it had a value
113
+ if (value) {
114
+ this.selection.currentSingle = value;
115
+ }
116
+ else if (this.selection.currentSingle) {
117
+ this.selection.currentSingle = null;
118
+ }
119
+ }
120
+ set clrDgPreserveSelection(state) {
121
+ this.selection.preserveSelection = state;
122
+ }
123
+ /**
124
+ * @deprecated since 2.0, remove in 3.0
125
+ *
126
+ * Selection/Deselection on row click mode
127
+ */
128
+ set rowSelectionMode(value) {
129
+ this.selection.rowSelectionMode = value;
130
+ }
131
+ /**
132
+ * Indicates if all currently displayed items are selected
133
+ */
134
+ get allSelected() {
135
+ return this.selection.isAllSelected();
136
+ }
137
+ /**
138
+ * Selects/deselects all currently displayed items
139
+ * @param value
140
+ */
141
+ set allSelected(_value) {
142
+ /**
143
+ * This is a setter but we ignore the value.
144
+ * It's strange, but it lets us have an indeterminate state where only
145
+ * some of the items are selected.
146
+ */
147
+ this.selection.toggleAll();
148
+ }
149
+ ngAfterContentInit() {
150
+ if (!this.items.smart) {
151
+ this.items.all = this.rows.map((row) => row.item);
152
+ }
153
+ this._subscriptions.push(this.rows.changes.subscribe(() => {
154
+ if (!this.items.smart) {
155
+ this.items.all = this.rows.map((row) => row.item);
156
+ }
157
+ // Remove any projected rows from the displayedRows container
158
+ // Necessary with Ivy off. See https://github.com/vmware/clarity/issues/4692
159
+ for (let i = this._displayedRows.length - 1; i >= 0; i--) {
160
+ if (this._displayedRows.get(i).destroyed) {
161
+ this._displayedRows.remove(i);
162
+ }
163
+ }
164
+ this.rows.forEach(row => {
165
+ this._displayedRows.insert(row._view);
166
+ });
167
+ // Try to update only when there is something cached and its open.
168
+ if (this.detailService.state && this.detailService.isOpen) {
169
+ const row = this.rows.find((row, index) => {
170
+ return this.items.trackBy(index, row.item) === this.items.trackBy(index, this.detailService.state);
171
+ });
172
+ /**
173
+ * Reopen updated row or close it
174
+ */
175
+ row ? this.detailService.open(row.item, row.detailButton.nativeElement) : this.detailService.close();
176
+ }
177
+ }));
178
+ }
179
+ /**
180
+ * Our setup happens in the view of some of our components, so we wait for it to be done before starting
181
+ */
182
+ ngAfterViewInit() {
183
+ // TODO: determine if we can get rid of provider wiring in view init so that subscriptions can be done earlier
184
+ this.refresh.emit(this.stateProvider.state);
185
+ this._subscriptions.push(this.stateProvider.change.subscribe(state => this.refresh.emit(state)), this.selection.change.subscribe(s => {
186
+ if (this.selection.selectionType === SelectionType.Single) {
187
+ this.singleSelectedChanged.emit(s);
188
+ }
189
+ else if (this.selection.selectionType === SelectionType.Multi) {
190
+ this.selectedChanged.emit(s);
191
+ }
192
+ }), this.page.change.subscribe(() => {
193
+ if (!this.clrDgDisablePageFocus) {
194
+ this.datagridTable.nativeElement.focus();
195
+ }
196
+ }),
197
+ // A subscription that listens for displayMode changes on the datagrid
198
+ this.displayMode.view.subscribe(viewChange => {
199
+ // Remove any projected columns from the projectedDisplayColumns container
200
+ for (let i = this._projectedDisplayColumns.length; i > 0; i--) {
201
+ this._projectedDisplayColumns.detach();
202
+ }
203
+ // Remove any projected columns from the projectedCalculationColumns container
204
+ for (let i = this._projectedCalculationColumns.length; i > 0; i--) {
205
+ this._projectedCalculationColumns.detach();
206
+ }
207
+ // Remove any projected rows from the calculationRows container
208
+ for (let i = this._calculationRows.length; i > 0; i--) {
209
+ this._calculationRows.detach();
210
+ }
211
+ // Remove any projected rows from the displayedRows container
212
+ for (let i = this._displayedRows.length; i > 0; i--) {
213
+ this._displayedRows.detach();
214
+ }
215
+ if (viewChange === DatagridDisplayMode.DISPLAY) {
216
+ // Set state, style for the datagrid to DISPLAY and insert row & columns into containers
217
+ this.renderer.removeClass(this.el.nativeElement, 'datagrid-calculate-mode');
218
+ this.columns.forEach(column => {
219
+ this._projectedDisplayColumns.insert(column._view);
220
+ });
221
+ this.rows.forEach(row => {
222
+ this._displayedRows.insert(row._view);
223
+ });
224
+ }
225
+ else {
226
+ // Set state, style for the datagrid to CALCULATE and insert row & columns into containers
227
+ this.renderer.addClass(this.el.nativeElement, 'datagrid-calculate-mode');
228
+ this.columns.forEach(column => {
229
+ this._projectedCalculationColumns.insert(column._view);
230
+ });
231
+ this.rows.forEach(row => {
232
+ this._calculationRows.insert(row._view);
233
+ });
234
+ }
235
+ }));
236
+ }
237
+ ngOnDestroy() {
238
+ this._subscriptions.forEach((sub) => sub.unsubscribe());
239
+ }
240
+ resize() {
241
+ this.organizer.resize();
242
+ }
243
+ }
244
+ ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagrid, deps: [{ token: i1.DatagridRenderOrganizer }, { token: i2.Items }, { token: i3.ExpandableRowsCount }, { token: i4.Selection }, { token: i5.RowActionService }, { token: i6.StateProvider }, { token: i7.DisplayModeService }, { token: i0.Renderer2 }, { token: i8.DetailService }, { token: UNIQUE_ID }, { token: i0.ElementRef }, { token: i9.Page }, { token: i10.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
245
+ ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatagrid, selector: "clr-datagrid", inputs: { loading: ["clrDgLoading", "loading"], selected: ["clrDgSelected", "selected"], singleSelected: ["clrDgSingleSelected", "singleSelected"], clrDgSingleSelectionAriaLabel: "clrDgSingleSelectionAriaLabel", clrDgSingleActionableAriaLabel: "clrDgSingleActionableAriaLabel", clrDetailExpandableAriaLabel: "clrDetailExpandableAriaLabel", clrDgDisablePageFocus: "clrDgDisablePageFocus", clrDgPreserveSelection: "clrDgPreserveSelection", rowSelectionMode: ["clrDgRowSelection", "rowSelectionMode"] }, outputs: { refresh: "clrDgRefresh", selectedChanged: "clrDgSelectedChange", singleSelectedChanged: "clrDgSingleSelectedChange" }, host: { properties: { "class.datagrid-host": "true", "class.datagrid-detail-open": "detailService.isOpen" } }, providers: [
246
+ Selection,
247
+ Sort,
248
+ FiltersProvider,
249
+ Page,
250
+ Items,
251
+ DatagridRenderOrganizer,
252
+ RowActionService,
253
+ ExpandableRowsCount,
254
+ StateDebouncer,
255
+ DetailService,
256
+ UNIQUE_ID_PROVIDER,
257
+ StateProvider,
258
+ TableSizeService,
259
+ ColumnsService,
260
+ DisplayModeService,
261
+ ], queries: [{ propertyName: "iterator", first: true, predicate: ClrDatagridItems, descendants: true }, { propertyName: "placeholder", first: true, predicate: ClrDatagridPlaceholder, descendants: true }, { propertyName: "columns", predicate: ClrDatagridColumn }, { propertyName: "rows", predicate: ClrDatagridRow }], viewQueries: [{ propertyName: "scrollableColumns", first: true, predicate: ["scrollableColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "datagridTable", first: true, predicate: ["datagridTable"], descendants: true, read: ElementRef }, { propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_projectedCalculationColumns", first: true, predicate: ["projectedCalculationColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_displayedRows", first: true, predicate: ["displayedRows"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculationRows", first: true, predicate: ["calculationRows"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n", components: [{ type: i11.ClrDatagridPlaceholder, selector: "clr-dg-placeholder" }, { type: i12.ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.ClrLabel, selector: "label", inputs: ["for"] }] });
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagrid, decorators: [{
263
+ type: Component,
264
+ args: [{ selector: 'clr-datagrid', providers: [
265
+ Selection,
266
+ Sort,
267
+ FiltersProvider,
268
+ Page,
269
+ Items,
270
+ DatagridRenderOrganizer,
271
+ RowActionService,
272
+ ExpandableRowsCount,
273
+ StateDebouncer,
274
+ DetailService,
275
+ UNIQUE_ID_PROVIDER,
276
+ StateProvider,
277
+ TableSizeService,
278
+ ColumnsService,
279
+ DisplayModeService,
280
+ ], host: {
281
+ '[class.datagrid-host]': 'true',
282
+ '[class.datagrid-detail-open]': 'detailService.isOpen',
283
+ }, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n" }]
284
+ }], ctorParameters: function () { return [{ type: i1.DatagridRenderOrganizer }, { type: i2.Items }, { type: i3.ExpandableRowsCount }, { type: i4.Selection }, { type: i5.RowActionService }, { type: i6.StateProvider }, { type: i7.DisplayModeService }, { type: i0.Renderer2 }, { type: i8.DetailService }, { type: undefined, decorators: [{
285
+ type: Inject,
286
+ args: [UNIQUE_ID]
287
+ }] }, { type: i0.ElementRef }, { type: i9.Page }, { type: i10.ClrCommonStringsService }]; }, propDecorators: { loading: [{
288
+ type: Input,
289
+ args: ['clrDgLoading']
290
+ }], refresh: [{
291
+ type: Output,
292
+ args: ['clrDgRefresh']
293
+ }], iterator: [{
294
+ type: ContentChild,
295
+ args: [ClrDatagridItems]
296
+ }], selected: [{
297
+ type: Input,
298
+ args: ['clrDgSelected']
299
+ }], selectedChanged: [{
300
+ type: Output,
301
+ args: ['clrDgSelectedChange']
302
+ }], singleSelected: [{
303
+ type: Input,
304
+ args: ['clrDgSingleSelected']
305
+ }], singleSelectedChanged: [{
306
+ type: Output,
307
+ args: ['clrDgSingleSelectedChange']
308
+ }], clrDgSingleSelectionAriaLabel: [{
309
+ type: Input
310
+ }], clrDgSingleActionableAriaLabel: [{
311
+ type: Input
312
+ }], clrDetailExpandableAriaLabel: [{
313
+ type: Input
314
+ }], clrDgDisablePageFocus: [{
315
+ type: Input
316
+ }], clrDgPreserveSelection: [{
317
+ type: Input
318
+ }], rowSelectionMode: [{
319
+ type: Input,
320
+ args: ['clrDgRowSelection']
321
+ }], placeholder: [{
322
+ type: ContentChild,
323
+ args: [ClrDatagridPlaceholder]
324
+ }], columns: [{
325
+ type: ContentChildren,
326
+ args: [ClrDatagridColumn]
327
+ }], rows: [{
328
+ type: ContentChildren,
329
+ args: [ClrDatagridRow]
330
+ }], scrollableColumns: [{
331
+ type: ViewChild,
332
+ args: ['scrollableColumns', { read: ViewContainerRef }]
333
+ }], datagridTable: [{
334
+ type: ViewChild,
335
+ args: ['datagridTable', { read: ElementRef }]
336
+ }], _projectedDisplayColumns: [{
337
+ type: ViewChild,
338
+ args: ['projectedDisplayColumns', { read: ViewContainerRef }]
339
+ }], _projectedCalculationColumns: [{
340
+ type: ViewChild,
341
+ args: ['projectedCalculationColumns', { read: ViewContainerRef }]
342
+ }], _displayedRows: [{
343
+ type: ViewChild,
344
+ args: ['displayedRows', { read: ViewContainerRef }]
345
+ }], _calculationRows: [{
346
+ type: ViewChild,
347
+ args: ['calculationRows', { read: ViewContainerRef }]
348
+ }] } });
349
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9kYXRhL2RhdGFncmlkL2RhdGFncmlkLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FB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KSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJEYXRhZ3JpZENvbHVtbiB9IGZyb20gJy4vZGF0YWdyaWQtY29sdW1uJztcbmltcG9ydCB7IENsckRhdGFncmlkSXRlbXMgfSBmcm9tICcuL2RhdGFncmlkLWl0ZW1zJztcbmltcG9ydCB7IENsckRhdGFncmlkUGxhY2Vob2xkZXIgfSBmcm9tICcuL2RhdGFncmlkLXBsYWNlaG9sZGVyJztcbmltcG9ydCB7IENsckRhdGFncmlkUm93IH0gZnJvbSAnLi9kYXRhZ3JpZC1yb3cnO1xuaW1wb3J0IHsgRGF0YWdyaWREaXNwbGF5TW9kZSB9IGZyb20gJy4vZW51bXMvZGlzcGxheS1tb2RlLmVudW0nO1xuaW1wb3J0IHsgQ2xyRGF0YWdyaWRTdGF0ZUludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGlzcGxheU1vZGVTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZGlzcGxheS1tb2RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyc1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvZmlsdGVycyc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlUm93c0NvdW50IH0gZnJvbSAnLi9wcm92aWRlcnMvZ2xvYmFsLWV4cGFuZGFibGUtcm93cyc7XG5pbXBvcnQgeyBJdGVtcyB9IGZyb20gJy4vcHJvdmlkZXJzL2l0ZW1zJztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICcuL3Byb3ZpZGVycy9wYWdlJztcbmltcG9ydCB7IFJvd0FjdGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9yb3ctYWN0aW9uLXNlcnZpY2UnO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi9wcm92aWRlcnMvc2VsZWN0aW9uJztcbmltcG9ydCB7IFNvcnQgfSBmcm9tICcuL3Byb3ZpZGVycy9zb3J0JztcbmltcG9ydCB7IFN0YXRlRGVib3VuY2VyIH0gZnJvbSAnLi9wcm92aWRlcnMvc3RhdGUtZGVib3VuY2VyLnByb3ZpZGVyJztcbmltcG9ydCB7IFN0YXRlUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9zdGF0ZS5wcm92aWRlcic7XG5pbXBvcnQgeyBUYWJsZVNpemVTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvdGFibGUtc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFncmlkUmVuZGVyT3JnYW5pemVyIH0gZnJvbSAnLi9yZW5kZXIvcmVuZGVyLW9yZ2FuaXplcic7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25UeXBlIH0gZnJvbSAnLi9lbnVtcy9zZWxlY3Rpb24tdHlwZSc7XG5pbXBvcnQgeyBDb2x1bW5zU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbHVtbnMuc2VydmljZSc7XG5pbXBvcnQgeyBEZXRhaWxTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgVU5JUVVFX0lELCBVTklRVUVfSURfUFJPVklERVIgfSBmcm9tICcuLi8uLi91dGlscy9pZC1nZW5lcmF0b3IvaWQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGF0YWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YWdyaWQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIFNlbGVjdGlvbixcbiAgICBTb3J0LFxuICAgIEZpbHRlcnNQcm92aWRlcixcbiAgICBQYWdlLFxuICAgIEl0ZW1zLFxuICAgIERhdGFncmlkUmVuZGVyT3JnYW5pemVyLFxuICAgIFJvd0FjdGlvblNlcnZpY2UsXG4gICAgRXhwYW5kYWJsZVJvd3NDb3VudCxcbiAgICBTdGF0ZURlYm91bmNlcixcbiAgICBEZXRhaWxTZXJ2aWNlLFxuICAgIFVOSVFVRV9JRF9QUk9WSURFUixcbiAgICBTdGF0ZVByb3ZpZGVyLFxuICAgIFRhYmxlU2l6ZVNlcnZpY2UsXG4gICAgQ29sdW1uc1NlcnZpY2UsXG4gICAgRGlzcGxheU1vZGVTZXJ2aWNlLFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kYXRhZ3JpZC1ob3N0XSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmRhdGFncmlkLWRldGFpbC1vcGVuXSc6ICdkZXRhaWxTZXJ2aWNlLmlzT3BlbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkPFQgPSBhbnk+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHNlbGVjdEFsbElkOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3JnYW5pemVyOiBEYXRhZ3JpZFJlbmRlck9yZ2FuaXplcixcbiAgICBwdWJsaWMgaXRlbXM6IEl0ZW1zPFQ+LFxuICAgIHB1YmxpYyBleHBhbmRhYmxlUm93czogRXhwYW5kYWJsZVJvd3NDb3VudCxcbiAgICBwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb248VD4sXG4gICAgcHVibGljIHJvd0FjdGlvblNlcnZpY2U6IFJvd0FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdGF0ZVByb3ZpZGVyOiBTdGF0ZVByb3ZpZGVyPFQ+LFxuICAgIHByaXZhdGUgZGlzcGxheU1vZGU6IERpc3BsYXlNb2RlU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIGRldGFpbFNlcnZpY2U6IERldGFpbFNlcnZpY2UsXG4gICAgQEluamVjdChVTklRVUVfSUQpIGRhdGFncmlkSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcGFnZTogUGFnZSxcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3RBbGxJZCA9ICdjbHItZGctc2VsZWN0LWFsbC0nICsgZGF0YWdyaWRJZDtcbiAgICB0aGlzLmRldGFpbFNlcnZpY2UuaWQgPSBkYXRhZ3JpZElkO1xuICB9XG5cbiAgLyogcmVmZXJlbmNlIHRvIHRoZSBlbnVtIHNvIHRoYXQgdGVtcGxhdGUgY2FuIGFjY2VzcyAqL1xuICBwdWJsaWMgU0VMRUNUSU9OX1RZUEUgPSBTZWxlY3Rpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBGcmVlemVzIHRoZSBkYXRhZ3JpZCB3aGlsZSBkYXRhIGlzIGxvYWRpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sb2FkaW5nO1xuICB9XG5cbiAgQElucHV0KCdjbHJEZ0xvYWRpbmcnKVxuICBwdWJsaWMgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLml0ZW1zLmxvYWRpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdXRwdXQgZW1pdHRlZCB3aGVuZXZlciB0aGUgZGF0YSBuZWVkcyB0byBiZSByZWZyZXNoZWQsIGJhc2VkIG9uIHVzZXIgYWN0aW9uIG9yIGV4dGVybmFsIG9uZXNcbiAgICovXG4gIEBPdXRwdXQoJ2NsckRnUmVmcmVzaCcpIHB1YmxpYyByZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJEYXRhZ3JpZFN0YXRlSW50ZXJmYWNlPFQ+PihmYWxzZSk7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBtZXRob2QgdG8gcmUtdHJpZ2dlciB0aGUgY29tcHV0YXRpb24gb2YgZGlzcGxheWVkIGl0ZW1zIG1hbnVhbGx5XG4gICAqL1xuICBwdWJsaWMgZGF0YUNoYW5nZWQoKSB7XG4gICAgdGhpcy5pdGVtcy5yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogV2UgZ3JhYiB0aGUgc21hcnQgaXRlcmF0b3IgZnJvbSBwcm9qZWN0ZWQgY29udGVudFxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChDbHJEYXRhZ3JpZEl0ZW1zKSBwdWJsaWMgaXRlcmF0b3I6IENsckRhdGFncmlkSXRlbXM8VD47XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgQElucHV0KCdjbHJEZ1NlbGVjdGVkJylcbiAgc2V0IHNlbGVjdGVkKHZhbHVlOiBUW10gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25UeXBlLk11bHRpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uVHlwZS5Ob25lO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVDdXJyZW50KHZhbHVlLCBmYWxzZSk7XG4gIH1cblxuICBAT3V0cHV0KCdjbHJEZ1NlbGVjdGVkQ2hhbmdlJykgc2VsZWN0ZWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KGZhbHNlKTtcblxuICAvKipcbiAgICogU2VsZWN0ZWQgaXRlbSBpbiBzaW5nbGUtc2VsZWN0IG1vZGVcbiAgICovXG4gIEBJbnB1dCgnY2xyRGdTaW5nbGVTZWxlY3RlZCcpXG4gIHNldCBzaW5nbGVTZWxlY3RlZCh2YWx1ZTogVCkge1xuICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25UeXBlLlNpbmdsZTtcbiAgICAvLyB0aGUgY2xyRGdTaW5nbGVTZWxlY3RlZCBpcyB1cGRhdGVkIGluIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgLy8gMS4gYW4gZXhwbGljaXQgdmFsdWUgaXMgcGFzc2VkXG4gICAgLy8gMi4gaXMgYmVpbmcgc2V0IHRvIG51bGwgb3IgdW5kZWZpbmVkLCB3aGVyZSBwcmV2aW91c2x5IGl0IGhhZCBhIHZhbHVlXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCdjbHJEZ1NpbmdsZVNlbGVjdGVkQ2hhbmdlJykgc2luZ2xlU2VsZWN0ZWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUPihmYWxzZSk7XG5cbiAgQElucHV0KCkgY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw6IHN0cmluZyA9IHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbDtcbiAgQElucHV0KCkgY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsOiBzdHJpbmcgPSB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsO1xuICBASW5wdXQoKSBjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsOiBzdHJpbmcgPSB0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsO1xuICAvLyBBbGxvd3MgZGlzYWJsaW5nIG9mIHRoZSBhdXRvIGZvY3VzIG9uIHBhZ2Uvc3RhdGUgY2hhbmdlcyAoZXhjbHVkZXMgZm9jdXMgbWFuYWdlbWVudCBpbnNpZGUgb2YgcG9wdXBzKVxuICBASW5wdXQoKSBjbHJEZ0Rpc2FibGVQYWdlRm9jdXMgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgY2xyRGdQcmVzZXJ2ZVNlbGVjdGlvbihzdGF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0aW9uLnByZXNlcnZlU2VsZWN0aW9uID0gc3RhdGU7XG4gIH1cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIDIuMCwgcmVtb3ZlIGluIDMuMFxuICAgKlxuICAgKiBTZWxlY3Rpb24vRGVzZWxlY3Rpb24gb24gcm93IGNsaWNrIG1vZGVcbiAgICovXG4gIEBJbnB1dCgnY2xyRGdSb3dTZWxlY3Rpb24nKVxuICBzZXQgcm93U2VsZWN0aW9uTW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYWxsIGN1cnJlbnRseSBkaXNwbGF5ZWQgaXRlbXMgYXJlIHNlbGVjdGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFsbFNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbi5pc0FsbFNlbGVjdGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cy9kZXNlbGVjdHMgYWxsIGN1cnJlbnRseSBkaXNwbGF5ZWQgaXRlbXNcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc2V0IGFsbFNlbGVjdGVkKF92YWx1ZTogYm9vbGVhbikge1xuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSBzZXR0ZXIgYnV0IHdlIGlnbm9yZSB0aGUgdmFsdWUuXG4gICAgICogSXQncyBzdHJhbmdlLCBidXQgaXQgbGV0cyB1cyBoYXZlIGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUgd2hlcmUgb25seVxuICAgICAqIHNvbWUgb2YgdGhlIGl0ZW1zIGFyZSBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICB0aGlzLnNlbGVjdGlvbi50b2dnbGVBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gcGxhY2Vob2xkZXIgZGV0ZWN0aW9uXG4gICAqL1xuICBAQ29udGVudENoaWxkKENsckRhdGFncmlkUGxhY2Vob2xkZXIpIHB1YmxpYyBwbGFjZWhvbGRlcjogQ2xyRGF0YWdyaWRQbGFjZWhvbGRlcjxUPjtcblxuICAvKipcbiAgICogSGlkZWFibGUgQ29sdW1uIGRhdGEgc291cmNlIC8gZGV0ZWN0aW9uLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJEYXRhZ3JpZENvbHVtbikgcHVibGljIGNvbHVtbnM6IFF1ZXJ5TGlzdDxDbHJEYXRhZ3JpZENvbHVtbjxUPj47XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGRhdGFncmlkIGlzIHVzZXItbWFuYWdlZCB3aXRob3V0IHRoZSBzbWFydCBpdGVyYXRvciwgd2UgZ2V0IHRoZSBpdGVtcyBkaXNwbGF5ZWRcbiAgICogYnkgcXVlcnlpbmcgdGhlIHByb2plY3RlZCBjb250ZW50LiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBtb2RlbHMgY3VycmVudGx5XG4gICAqIGRpc3BsYXllZCwgdHlwaWNhbGx5IGZvciBzZWxlY3Rpb24uXG4gICAqL1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2xyRGF0YWdyaWRSb3cpIHJvd3M6IFF1ZXJ5TGlzdDxDbHJEYXRhZ3JpZFJvdzxUPj47XG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGFibGVDb2x1bW5zJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gIHNjcm9sbGFibGVDb2x1bW5zOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGFncmlkVGFibGUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgZGF0YWdyaWRUYWJsZTogRWxlbWVudFJlZjtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1zLnNtYXJ0KSB7XG4gICAgICB0aGlzLml0ZW1zLmFsbCA9IHRoaXMucm93cy5tYXAoKHJvdzogQ2xyRGF0YWdyaWRSb3c8VD4pID0+IHJvdy5pdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbXMuc21hcnQpIHtcbiAgICAgICAgICB0aGlzLml0ZW1zLmFsbCA9IHRoaXMucm93cy5tYXAoKHJvdzogQ2xyRGF0YWdyaWRSb3c8VD4pID0+IHJvdy5pdGVtKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZW1vdmUgYW55IHByb2plY3RlZCByb3dzIGZyb20gdGhlIGRpc3BsYXllZFJvd3MgY29udGFpbmVyXG4gICAgICAgIC8vIE5lY2Vzc2FyeSB3aXRoIEl2eSBvZmYuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdm13YXJlL2NsYXJpdHkvaXNzdWVzLzQ2OTJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX2Rpc3BsYXllZFJvd3MubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAodGhpcy5fZGlzcGxheWVkUm93cy5nZXQoaSkuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5ZWRSb3dzLnJlbW92ZShpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwbGF5ZWRSb3dzLmluc2VydChyb3cuX3ZpZXcpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBUcnkgdG8gdXBkYXRlIG9ubHkgd2hlbiB0aGVyZSBpcyBzb21ldGhpbmcgY2FjaGVkIGFuZCBpdHMgb3Blbi5cbiAgICAgICAgaWYgKHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZSAmJiB0aGlzLmRldGFpbFNlcnZpY2UuaXNPcGVuKSB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5yb3dzLmZpbmQoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zLnRyYWNrQnkoaW5kZXgsIHJvdy5pdGVtKSA9PT0gdGhpcy5pdGVtcy50cmFja0J5KGluZGV4LCB0aGlzLmRldGFpbFNlcnZpY2Uuc3RhdGUpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogUmVvcGVuIHVwZGF0ZWQgcm93IG9yIGNsb3NlIGl0XG4gICAgICAgICAgICovXG4gICAgICAgICAgcm93ID8gdGhpcy5kZXRhaWxTZXJ2aWNlLm9wZW4ocm93Lml0ZW0sIHJvdy5kZXRhaWxCdXR0b24ubmF0aXZlRWxlbWVudCkgOiB0aGlzLmRldGFpbFNlcnZpY2UuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE91ciBzZXR1cCBoYXBwZW5zIGluIHRoZSB2aWV3IG9mIHNvbWUgb2Ygb3VyIGNvbXBvbmVudHMsIHNvIHdlIHdhaXQgZm9yIGl0IHRvIGJlIGRvbmUgYmVmb3JlIHN0YXJ0aW5nXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gVE9ETzogZGV0ZXJtaW5lIGlmIHdlIGNhbiBnZXQgcmlkIG9mIHByb3ZpZGVyIHdpcmluZyBpbiB2aWV3IGluaXQgc28gdGhhdCBzdWJzY3JpcHRpb25zIGNhbiBiZSBkb25lIGVhcmxpZXJcbiAgICB0aGlzLnJlZnJlc2guZW1pdCh0aGlzLnN0YXRlUHJvdmlkZXIuc3RhdGUpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuc3RhdGVQcm92aWRlci5jaGFuZ2Uuc3Vic2NyaWJlKHN0YXRlID0+IHRoaXMucmVmcmVzaC5lbWl0KHN0YXRlKSksXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jaGFuZ2Uuc3Vic2NyaWJlKHMgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uVHlwZS5TaW5nbGUpIHtcbiAgICAgICAgICB0aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZC5lbWl0KHMgYXMgVCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uVHlwZS5NdWx0aSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2VkLmVtaXQocyBhcyBUW10pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMucGFnZS5jaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNsckRnRGlzYWJsZVBhZ2VGb2N1cykge1xuICAgICAgICAgIHRoaXMuZGF0YWdyaWRUYWJsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgLy8gQSBzdWJzY3JpcHRpb24gdGhhdCBsaXN0ZW5zIGZvciBkaXNwbGF5TW9kZSBjaGFuZ2VzIG9uIHRoZSBkYXRhZ3JpZFxuICAgICAgdGhpcy5kaXNwbGF5TW9kZS52aWV3LnN1YnNjcmliZSh2aWV3Q2hhbmdlID0+IHtcbiAgICAgICAgLy8gUmVtb3ZlIGFueSBwcm9qZWN0ZWQgY29sdW1ucyBmcm9tIHRoZSBwcm9qZWN0ZWREaXNwbGF5Q29sdW1ucyBjb250YWluZXJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX3Byb2plY3RlZERpc3BsYXlDb2x1bW5zLmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMuX3Byb2plY3RlZERpc3BsYXlDb2x1bW5zLmRldGFjaCgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlbW92ZSBhbnkgcHJvamVjdGVkIGNvbHVtbnMgZnJvbSB0aGUgcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zIGNvbnRhaW5lclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5fcHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zLmxlbmd0aDsgaSA+IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZW1vdmUgYW55IHByb2plY3RlZCByb3dzIGZyb20gdGhlIGNhbGN1bGF0aW9uUm93cyBjb250YWluZXJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX2NhbGN1bGF0aW9uUm93cy5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLl9jYWxjdWxhdGlvblJvd3MuZGV0YWNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVtb3ZlIGFueSBwcm9qZWN0ZWQgcm93cyBmcm9tIHRoZSBkaXNwbGF5ZWRSb3dzIGNvbnRhaW5lclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5fZGlzcGxheWVkUm93cy5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLl9kaXNwbGF5ZWRSb3dzLmRldGFjaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aWV3Q2hhbmdlID09PSBEYXRhZ3JpZERpc3BsYXlNb2RlLkRJU1BMQVkpIHtcbiAgICAgICAgICAvLyBTZXQgc3RhdGUsIHN0eWxlIGZvciB0aGUgZGF0YWdyaWQgdG8gRElTUExBWSBhbmQgaW5zZXJ0IHJvdyAmIGNvbHVtbnMgaW50byBjb250YWluZXJzXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZScpO1xuICAgICAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wcm9qZWN0ZWREaXNwbGF5Q29sdW1ucy5pbnNlcnQoY29sdW1uLl92aWV3KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZGlzcGxheWVkUm93cy5pbnNlcnQocm93Ll92aWV3KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBTZXQgc3RhdGUsIHN0eWxlIGZvciB0aGUgZGF0YWdyaWQgdG8gQ0FMQ1VMQVRFIGFuZCBpbnNlcnQgcm93ICYgY29sdW1ucyBpbnRvIGNvbnRhaW5lcnNcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2RhdGFncmlkLWNhbGN1bGF0ZS1tb2RlJyk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5pbnNlcnQoY29sdW1uLl92aWV3KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRpb25Sb3dzLmluc2VydChyb3cuX3ZpZXcpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9ucyB0byBhbGwgdGhlIHNlcnZpY2VzIGFuZCBxdWVyaWVzIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWI6IFN1YnNjcmlwdGlvbikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMub3JnYW5pemVyLnJlc2l6ZSgpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgncHJvamVjdGVkRGlzcGxheUNvbHVtbnMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgX3Byb2plY3RlZERpc3BsYXlDb2x1bW5zOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdwcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1uczogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZCgnZGlzcGxheWVkUm93cycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICBfZGlzcGxheWVkUm93czogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZCgnY2FsY3VsYXRpb25Sb3dzJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gIF9jYWxjdWxhdGlvblJvd3M6IFZpZXdDb250YWluZXJSZWY7XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gIH4gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAgfiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gIC0tPlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJjbHItZGctYWN0aW9uLWJhclwiPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJkYXRhZ3JpZC1vdXRlci13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXRhZ3JpZC1pbm5lci13cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGFncmlkXCIgI2RhdGFncmlkIFthdHRyLmFyaWEtaGlkZGVuXT1cImRldGFpbFNlcnZpY2UuaXNPcGVuID8gdHJ1ZSA6IG51bGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRhZ3JpZC10YWJsZS13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgcm9sZT1cImdyaWRcIiBjbGFzcz1cImRhdGFncmlkLXRhYmxlXCIgdGFiaW5kZXg9XCItMVwiICNkYXRhZ3JpZFRhYmxlPlxuICAgICAgICAgIDxkaXYgcm9sZT1cInJvd2dyb3VwXCIgY2xhc3M9XCJkYXRhZ3JpZC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgcm9sZT1cInJvd1wiIGNsYXNzPVwiZGF0YWdyaWQtcm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhZ3JpZC1yb3ctbWFzdGVyIGRhdGFncmlkLXJvdy1mbGV4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGFncmlkLXJvdy1zdGlja3lcIj5cbiAgICAgICAgICAgICAgICAgIDwhLS1oZWFkZXIgZm9yIGRhdGFncmlkIHdoZXJlIHlvdSBjYW4gc2VsZWN0IG11bHRpcGxlIHJvd3MgLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1zZWxlY3QgZGF0YWdyaWQtZml4ZWQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb24uc2VsZWN0aW9uVHlwZSA9PT0gU0VMRUNUSU9OX1RZUEUuTXVsdGlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNoZWNrYm94LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwic2VsZWN0QWxsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGxcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBVc2FnZSBvZiBjbGFzcyBjbHItY29sLW51bGwgaGVyZSBwcmV2ZW50cyBjbHItY29sLSogY2xhc3NlcyBmcm9tIGJlaW5nIGFkZGVkIHdoZW4gYSBkYXRhZ3JpZCBpcyB3cmFwcGVkIGluc2lkZSBjbHJGb3JtIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInNlbGVjdEFsbElkXCIgY2xhc3M9XCJjbHItY29udHJvbC1sYWJlbCBjbHItY29sLW51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2xyLXNyLW9ubHlcIj57e2NvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGx9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8IS0tIGhlYWRlciBmb3IgZGF0YWdyaWQgd2hlcmUgeW91IGNhbiBzZWxlY3Qgb25lIHJvdyBvbmx5IC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiY29sdW1uaGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtc2VsZWN0IGRhdGFncmlkLWZpeGVkLWNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uLnNlbGVjdGlvblR5cGUgPT09IFNFTEVDVElPTl9UWVBFLlNpbmdsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8IS0tIGhlYWRlciBmb3Igc2luZ2xlIHJvdyBhY3Rpb247IG9ubHkgZGlzcGxheVR5cGUgaWYgd2UgaGF2ZSBhdCBsZWFzdCBvbmUgYWN0aW9uYWJsZSByb3cgaW4gZGF0YWdyaWQgLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1yb3ctYWN0aW9ucyBkYXRhZ3JpZC1maXhlZC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvd0FjdGlvblNlcnZpY2UuaGFzQWN0aW9uYWJsZVJvd1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPCEtLSBoZWFkZXIgZm9yIGNhcmV0czsgb25seSBkaXNwbGF5VHlwZSBpZiB3ZSBoYXZlIGF0IGxlYXN0IG9uZSBleHBhbmRhYmxlIHJvdyBpbiBkYXRhZ3JpZCAtLT5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImNvbHVtbmhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0YWdyaWQtY29sdW1uIGRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgZGF0YWdyaWQtZml4ZWQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRhYmxlUm93cy5oYXNFeHBhbmRhYmxlUm93IHx8IGRldGFpbFNlcnZpY2UuZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xyRGV0YWlsRXhwYW5kYWJsZUFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YWdyaWQtcm93LXNjcm9sbGFibGVcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgI3Byb2plY3RlZERpc3BsYXlDb2x1bW5zPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgI2Rpc3BsYXllZFJvd3M+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPCEtLSBDdXN0b20gcGxhY2Vob2xkZXIgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGVtcHR5IG9uZSAtLT5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItZGctcGxhY2Vob2xkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPGNsci1kZy1wbGFjZWhvbGRlciAqbmdJZj1cIiFwbGFjZWhvbGRlclwiPjwvY2xyLWRnLXBsYWNlaG9sZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1kZy1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImRhdGFncmlkLXNwaW5uZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDxjbHItc3Bpbm5lciBjbHJNZWRpdW0+TG9hZGluZzwvY2xyLXNwaW5uZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbY2xySWZEZXRhaWxdLGNsci1kZy1kZXRhaWxcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRhdGFncmlkLWNhbGN1bGF0aW9uLXRhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXRhZ3JpZC1jYWxjdWxhdGlvbi1oZWFkZXJcIj5cbiAgICA8bmctY29udGFpbmVyICNwcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnM+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICNjYWxjdWxhdGlvblJvd3M+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==