@clr/angular 12.0.11 → 13.0.1

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 (1133) 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 +4 -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 +5 -1
  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 +153 -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 +119 -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 +96 -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 +59 -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 +123 -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} +6 -3
  526. package/{esm2015/utils/i18n/common-strings.interface.js → esm2020/utils/i18n/common-strings.interface.mjs} +1 -1
  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 +128 -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 +26654 -0
  579. package/fesm2015/clr-angular.mjs.map +1 -0
  580. package/{fesm2015/clr-angular.js → fesm2020/clr-angular.mjs} +9876 -7404
  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 +4 -6
  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.interface.d.ts +8 -0
  786. package/utils/i18n/common-strings.service.d.ts +3 -0
  787. package/utils/loading/loading.d.ts +3 -0
  788. package/utils/loading/loading.module.d.ts +6 -0
  789. package/utils/outside-click/outside-click.d.ts +3 -0
  790. package/utils/outside-click/outside-click.module.d.ts +6 -0
  791. package/utils/popover/popover-anchor.d.ts +3 -0
  792. package/utils/popover/popover-close-button.d.ts +3 -0
  793. package/utils/popover/popover-content.d.ts +3 -0
  794. package/utils/popover/popover-open-close-button.d.ts +3 -0
  795. package/utils/popover/popover.module.d.ts +8 -0
  796. package/utils/popover/providers/popover-events.service.d.ts +3 -0
  797. package/utils/popover/providers/popover-position.service.d.ts +3 -0
  798. package/utils/popover/providers/popover-toggle.service.d.ts +3 -0
  799. package/utils/scrolling/scrolling-service.d.ts +3 -0
  800. package/utils/template-ref/template-ref-container.d.ts +3 -0
  801. package/utils/template-ref/template-ref.module.d.ts +6 -0
  802. package/wizard/providers/button-hub.service.d.ts +3 -0
  803. package/wizard/providers/header-actions.service.d.ts +3 -0
  804. package/wizard/providers/page-collection.service.d.ts +3 -0
  805. package/wizard/providers/wizard-navigation.service.d.ts +3 -0
  806. package/wizard/wizard-button.d.ts +3 -0
  807. package/wizard/wizard-custom-tags.d.ts +3 -0
  808. package/wizard/wizard-header-action.d.ts +3 -0
  809. package/wizard/wizard-page-buttons.d.ts +3 -0
  810. package/wizard/wizard-page-header-actions.d.ts +3 -0
  811. package/wizard/wizard-page-navtitle.d.ts +3 -0
  812. package/wizard/wizard-page-title.d.ts +3 -0
  813. package/wizard/wizard-page.d.ts +3 -0
  814. package/wizard/wizard-stepnav-item.d.ts +6 -1
  815. package/wizard/wizard-stepnav.d.ts +3 -0
  816. package/wizard/wizard.d.ts +3 -0
  817. package/wizard/wizard.module.d.ts +18 -0
  818. package/bundles/clr-angular.umd.js +0 -26123
  819. package/bundles/clr-angular.umd.js.map +0 -1
  820. package/clr-angular.metadata.json +0 -1
  821. package/esm2015/accordion/accordion-content.js +0 -16
  822. package/esm2015/accordion/accordion-description.js +0 -17
  823. package/esm2015/accordion/accordion-panel.js +0 -105
  824. package/esm2015/accordion/accordion-title.js +0 -17
  825. package/esm2015/accordion/accordion.js +0 -57
  826. package/esm2015/accordion/accordion.module.js +0 -39
  827. package/esm2015/accordion/chocolate/accordion-oompa-loompa.js +0 -30
  828. package/esm2015/accordion/chocolate/accordion-willy-wonka.js +0 -13
  829. package/esm2015/accordion/providers/accordion.service.js +0 -44
  830. package/esm2015/accordion/stepper/chocolate/stepper-oompa-loompa.js +0 -30
  831. package/esm2015/accordion/stepper/chocolate/stepper-willy-wonka.js +0 -13
  832. package/esm2015/accordion/stepper/providers/stepper.service.js +0 -52
  833. package/esm2015/accordion/stepper/step-button.js +0 -47
  834. package/esm2015/accordion/stepper/stepper-panel.js +0 -88
  835. package/esm2015/accordion/stepper/stepper.js +0 -87
  836. package/esm2015/accordion/stepper/stepper.module.js +0 -25
  837. package/esm2015/button/button-group/button-group.js +0 -129
  838. package/esm2015/button/button-group/button-group.module.js +0 -22
  839. package/esm2015/button/button-loading/loading-button.js +0 -109
  840. package/esm2015/button/button-loading/loading-button.module.js +0 -19
  841. package/esm2015/button/button.module.js +0 -21
  842. package/esm2015/button/providers/button-in-group.service.js +0 -22
  843. package/esm2015/clr-angular.js +0 -108
  844. package/esm2015/clr-angular.module.js +0 -55
  845. package/esm2015/data/data.module.js +0 -15
  846. package/esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter.js +0 -169
  847. package/esm2015/data/datagrid/built-in/filters/datagrid-string-filter.js +0 -111
  848. package/esm2015/data/datagrid/chocolate/actionable-oompa-loompa.js +0 -30
  849. package/esm2015/data/datagrid/chocolate/datagrid-willy-wonka.js +0 -13
  850. package/esm2015/data/datagrid/chocolate/expandable-oompa-loompa.js +0 -30
  851. package/esm2015/data/datagrid/datagrid-action-bar.js +0 -16
  852. package/esm2015/data/datagrid/datagrid-action-overflow.js +0 -123
  853. package/esm2015/data/datagrid/datagrid-cell.js +0 -38
  854. package/esm2015/data/datagrid/datagrid-column-separator.js +0 -151
  855. package/esm2015/data/datagrid/datagrid-column-toggle-button.js +0 -53
  856. package/esm2015/data/datagrid/datagrid-column-toggle-title.js +0 -16
  857. package/esm2015/data/datagrid/datagrid-column-toggle.js +0 -149
  858. package/esm2015/data/datagrid/datagrid-column.js +0 -374
  859. package/esm2015/data/datagrid/datagrid-detail-body.js +0 -22
  860. package/esm2015/data/datagrid/datagrid-detail-header.js +0 -45
  861. package/esm2015/data/datagrid/datagrid-detail-registerer.js +0 -31
  862. package/esm2015/data/datagrid/datagrid-detail.js +0 -52
  863. package/esm2015/data/datagrid/datagrid-filter.js +0 -131
  864. package/esm2015/data/datagrid/datagrid-footer.js +0 -58
  865. package/esm2015/data/datagrid/datagrid-hideable-column.js +0 -97
  866. package/esm2015/data/datagrid/datagrid-if-detail.js +0 -62
  867. package/esm2015/data/datagrid/datagrid-if-expanded.service.js +0 -52
  868. package/esm2015/data/datagrid/datagrid-items-trackby.js +0 -29
  869. package/esm2015/data/datagrid/datagrid-items.js +0 -63
  870. package/esm2015/data/datagrid/datagrid-page-size.js +0 -37
  871. package/esm2015/data/datagrid/datagrid-pagination.js +0 -258
  872. package/esm2015/data/datagrid/datagrid-placeholder.js +0 -34
  873. package/esm2015/data/datagrid/datagrid-row-detail.js +0 -81
  874. package/esm2015/data/datagrid/datagrid-row.js +0 -218
  875. package/esm2015/data/datagrid/datagrid.js +0 -295
  876. package/esm2015/data/datagrid/datagrid.module.js +0 -127
  877. package/esm2015/data/datagrid/enums/column-changes.enum.js +0 -16
  878. package/esm2015/data/datagrid/providers/column-resizer.service.js +0 -59
  879. package/esm2015/data/datagrid/providers/columns.service.js +0 -50
  880. package/esm2015/data/datagrid/providers/detail.service.js +0 -58
  881. package/esm2015/data/datagrid/providers/display-mode.service.js +0 -35
  882. package/esm2015/data/datagrid/providers/filters.js +0 -112
  883. package/esm2015/data/datagrid/providers/global-expandable-rows.js +0 -33
  884. package/esm2015/data/datagrid/providers/items.js +0 -175
  885. package/esm2015/data/datagrid/providers/page.js +0 -155
  886. package/esm2015/data/datagrid/providers/row-action-service.js +0 -27
  887. package/esm2015/data/datagrid/providers/selection.js +0 -376
  888. package/esm2015/data/datagrid/providers/sort.js +0 -85
  889. package/esm2015/data/datagrid/providers/state-debouncer.provider.js +0 -39
  890. package/esm2015/data/datagrid/providers/state.provider.js +0 -77
  891. package/esm2015/data/datagrid/providers/table-size.service.js +0 -41
  892. package/esm2015/data/datagrid/render/cell-renderer.js +0 -82
  893. package/esm2015/data/datagrid/render/header-renderer.js +0 -133
  894. package/esm2015/data/datagrid/render/main-renderer.js +0 -199
  895. package/esm2015/data/datagrid/render/noop-dom-adapter.js +0 -51
  896. package/esm2015/data/datagrid/render/render-organizer.js +0 -35
  897. package/esm2015/data/datagrid/render/row-renderer.js +0 -57
  898. package/esm2015/data/datagrid/utils/datagrid-filter-registrar.js +0 -41
  899. package/esm2015/data/datagrid/wrapped-cell.js +0 -31
  900. package/esm2015/data/datagrid/wrapped-column.js +0 -32
  901. package/esm2015/data/datagrid/wrapped-row.js +0 -32
  902. package/esm2015/data/stack-view/stack-block.js +0 -146
  903. package/esm2015/data/stack-view/stack-content-input.js +0 -25
  904. package/esm2015/data/stack-view/stack-header.js +0 -45
  905. package/esm2015/data/stack-view/stack-select.js +0 -38
  906. package/esm2015/data/stack-view/stack-view-custom-tags.js +0 -12
  907. package/esm2015/data/stack-view/stack-view.js +0 -50
  908. package/esm2015/data/stack-view/stack-view.module.js +0 -47
  909. package/esm2015/data/tree-view/recursive-children.js +0 -70
  910. package/esm2015/data/tree-view/recursive-for-of.js +0 -53
  911. package/esm2015/data/tree-view/tree-features.service.js +0 -34
  912. package/esm2015/data/tree-view/tree-focus-manager.service.js +0 -118
  913. package/esm2015/data/tree-view/tree-node-link.js +0 -25
  914. package/esm2015/data/tree-view/tree-node.js +0 -252
  915. package/esm2015/data/tree-view/tree-view.module.js +0 -30
  916. package/esm2015/data/tree-view/tree.js +0 -78
  917. package/esm2015/emphasis/alert/alert-item.js +0 -32
  918. package/esm2015/emphasis/alert/alert-text.js +0 -18
  919. package/esm2015/emphasis/alert/alert.js +0 -96
  920. package/esm2015/emphasis/alert/alert.module.js +0 -30
  921. package/esm2015/emphasis/alert/alerts-pager.js +0 -69
  922. package/esm2015/emphasis/alert/alerts.js +0 -94
  923. package/esm2015/emphasis/alert/providers/icon-and-types.service.js +0 -74
  924. package/esm2015/emphasis/alert/providers/multi-alert.service.js +0 -76
  925. package/esm2015/emphasis/emphasis.module.js +0 -13
  926. package/esm2015/forms/checkbox/checkbox-container.js +0 -95
  927. package/esm2015/forms/checkbox/checkbox-wrapper.js +0 -57
  928. package/esm2015/forms/checkbox/checkbox.js +0 -40
  929. package/esm2015/forms/checkbox/checkbox.module.js +0 -29
  930. package/esm2015/forms/combobox/combobox-container.js +0 -79
  931. package/esm2015/forms/combobox/combobox.js +0 -329
  932. package/esm2015/forms/combobox/combobox.module.js +0 -53
  933. package/esm2015/forms/combobox/option-items.directive.js +0 -96
  934. package/esm2015/forms/combobox/option-selected.directive.js +0 -21
  935. package/esm2015/forms/combobox/option.js +0 -91
  936. package/esm2015/forms/combobox/options.js +0 -125
  937. package/esm2015/forms/combobox/providers/combobox-container.service.js +0 -15
  938. package/esm2015/forms/combobox/providers/combobox-focus-handler.service.js +0 -213
  939. package/esm2015/forms/combobox/providers/option-selection.service.js +0 -78
  940. package/esm2015/forms/common/abstract-container.js +0 -113
  941. package/esm2015/forms/common/abstract-control.js +0 -47
  942. package/esm2015/forms/common/common.module.js +0 -56
  943. package/esm2015/forms/common/control-container.js +0 -51
  944. package/esm2015/forms/common/control.js +0 -26
  945. package/esm2015/forms/common/error.js +0 -32
  946. package/esm2015/forms/common/form.js +0 -47
  947. package/esm2015/forms/common/helper.js +0 -32
  948. package/esm2015/forms/common/if-control-state/abstract-if-state.js +0 -41
  949. package/esm2015/forms/common/if-control-state/if-control-state.service.js +0 -56
  950. package/esm2015/forms/common/if-control-state/if-error.js +0 -65
  951. package/esm2015/forms/common/if-control-state/if-success.js +0 -42
  952. package/esm2015/forms/common/label.js +0 -61
  953. package/esm2015/forms/common/layout.js +0 -30
  954. package/esm2015/forms/common/providers/container-id.service.js +0 -30
  955. package/esm2015/forms/common/providers/control-class.service.js +0 -50
  956. package/esm2015/forms/common/providers/control-id.service.js +0 -28
  957. package/esm2015/forms/common/providers/focus.service.js +0 -22
  958. package/esm2015/forms/common/providers/layout.service.js +0 -54
  959. package/esm2015/forms/common/providers/mark-control.service.js +0 -22
  960. package/esm2015/forms/common/providers/ng-control.service.js +0 -30
  961. package/esm2015/forms/common/success.js +0 -32
  962. package/esm2015/forms/common/wrapped-control.js +0 -158
  963. package/esm2015/forms/datalist/datalist-container.js +0 -79
  964. package/esm2015/forms/datalist/datalist-input.js +0 -59
  965. package/esm2015/forms/datalist/datalist.js +0 -46
  966. package/esm2015/forms/datalist/datalist.module.js +0 -27
  967. package/esm2015/forms/datalist/providers/datalist-id.service.js +0 -28
  968. package/esm2015/forms/datepicker/calendar.js +0 -119
  969. package/esm2015/forms/datepicker/date-container.js +0 -179
  970. package/esm2015/forms/datepicker/date-input.js +0 -256
  971. package/esm2015/forms/datepicker/datepicker-view-manager.js +0 -46
  972. package/esm2015/forms/datepicker/datepicker.module.js +0 -55
  973. package/esm2015/forms/datepicker/day.js +0 -72
  974. package/esm2015/forms/datepicker/daypicker.js +0 -84
  975. package/esm2015/forms/datepicker/monthpicker.js +0 -116
  976. package/esm2015/forms/datepicker/providers/date-form-control.service.js +0 -33
  977. package/esm2015/forms/datepicker/providers/date-io.service.js +0 -176
  978. package/esm2015/forms/datepicker/providers/date-navigation.service.js +0 -127
  979. package/esm2015/forms/datepicker/providers/datepicker-enabled.service.js +0 -43
  980. package/esm2015/forms/datepicker/providers/datepicker-focus.service.js +0 -45
  981. package/esm2015/forms/datepicker/providers/locale-helper.service.js +0 -98
  982. package/esm2015/forms/datepicker/providers/view-manager.service.js +0 -38
  983. package/esm2015/forms/datepicker/yearpicker.js +0 -193
  984. package/esm2015/forms/forms.module.js +0 -39
  985. package/esm2015/forms/input/input.js +0 -26
  986. package/esm2015/forms/input/input.module.js +0 -29
  987. package/esm2015/forms/password/password-container.js +0 -120
  988. package/esm2015/forms/password/password.js +0 -53
  989. package/esm2015/forms/password/password.module.js +0 -28
  990. package/esm2015/forms/radio/radio-container.js +0 -95
  991. package/esm2015/forms/radio/radio-wrapper.js +0 -39
  992. package/esm2015/forms/radio/radio.js +0 -25
  993. package/esm2015/forms/radio/radio.module.js +0 -29
  994. package/esm2015/forms/range/range-container.js +0 -93
  995. package/esm2015/forms/range/range.js +0 -25
  996. package/esm2015/forms/range/range.module.js +0 -28
  997. package/esm2015/forms/select/select-container.js +0 -82
  998. package/esm2015/forms/select/select.js +0 -26
  999. package/esm2015/forms/select/select.module.js +0 -28
  1000. package/esm2015/forms/textarea/textarea-container.js +0 -51
  1001. package/esm2015/forms/textarea/textarea.js +0 -26
  1002. package/esm2015/forms/textarea/textarea.module.js +0 -28
  1003. package/esm2015/icon/icon.js +0 -17
  1004. package/esm2015/icon/icon.module.js +0 -15
  1005. package/esm2015/layout/layout.module.js +0 -16
  1006. package/esm2015/layout/main-container/main-container.js +0 -58
  1007. package/esm2015/layout/main-container/main-container.module.js +0 -20
  1008. package/esm2015/layout/nav/chocolate/main-container-willy-wonka.js +0 -13
  1009. package/esm2015/layout/nav/chocolate/nav-detection-oompa-loompa.js +0 -32
  1010. package/esm2015/layout/nav/header.js +0 -94
  1011. package/esm2015/layout/nav/nav-level.js +0 -79
  1012. package/esm2015/layout/nav/navigation.module.js +0 -29
  1013. package/esm2015/layout/tabs/chocolate/active-oompa-loompa.js +0 -32
  1014. package/esm2015/layout/tabs/chocolate/tabs-willy-wonka.js +0 -13
  1015. package/esm2015/layout/tabs/providers/tabs.service.js +0 -42
  1016. package/esm2015/layout/tabs/tab-content.js +0 -77
  1017. package/esm2015/layout/tabs/tab-link.directive.js +0 -93
  1018. package/esm2015/layout/tabs/tab-overflow-content.js +0 -18
  1019. package/esm2015/layout/tabs/tab.js +0 -42
  1020. package/esm2015/layout/tabs/tabs.js +0 -235
  1021. package/esm2015/layout/tabs/tabs.module.js +0 -42
  1022. package/esm2015/layout/vertical-nav/providers/vertical-nav-group-registration.service.js +0 -21
  1023. package/esm2015/layout/vertical-nav/providers/vertical-nav-group.service.js +0 -22
  1024. package/esm2015/layout/vertical-nav/providers/vertical-nav-icon.service.js +0 -24
  1025. package/esm2015/layout/vertical-nav/providers/vertical-nav.service.js +0 -51
  1026. package/esm2015/layout/vertical-nav/vertical-nav-group-children.js +0 -15
  1027. package/esm2015/layout/vertical-nav/vertical-nav-group.js +0 -158
  1028. package/esm2015/layout/vertical-nav/vertical-nav-icon.js +0 -23
  1029. package/esm2015/layout/vertical-nav/vertical-nav-link.js +0 -36
  1030. package/esm2015/layout/vertical-nav/vertical-nav.js +0 -77
  1031. package/esm2015/layout/vertical-nav/vertical-nav.module.js +0 -37
  1032. package/esm2015/modal/modal-body.js +0 -60
  1033. package/esm2015/modal/modal.js +0 -111
  1034. package/esm2015/modal/modal.module.js +0 -28
  1035. package/esm2015/popover/common/abstract-popover.js +0 -142
  1036. package/esm2015/popover/dropdown/dropdown-item.js +0 -87
  1037. package/esm2015/popover/dropdown/dropdown-menu.js +0 -105
  1038. package/esm2015/popover/dropdown/dropdown-trigger.js +0 -50
  1039. package/esm2015/popover/dropdown/dropdown.js +0 -52
  1040. package/esm2015/popover/dropdown/dropdown.module.js +0 -24
  1041. package/esm2015/popover/dropdown/providers/dropdown-focus-handler.service.js +0 -181
  1042. package/esm2015/popover/dropdown/providers/dropdown.service.js +0 -30
  1043. package/esm2015/popover/popover.module.js +0 -15
  1044. package/esm2015/popover/signpost/providers/signpost-focus-manager.service.js +0 -20
  1045. package/esm2015/popover/signpost/providers/signpost-id.service.js +0 -23
  1046. package/esm2015/popover/signpost/signpost-content.js +0 -150
  1047. package/esm2015/popover/signpost/signpost-trigger.js +0 -95
  1048. package/esm2015/popover/signpost/signpost.js +0 -72
  1049. package/esm2015/popover/signpost/signpost.module.js +0 -29
  1050. package/esm2015/popover/tooltip/providers/tooltip-id.service.js +0 -22
  1051. package/esm2015/popover/tooltip/tooltip-content.js +0 -123
  1052. package/esm2015/popover/tooltip/tooltip-trigger.js +0 -46
  1053. package/esm2015/popover/tooltip/tooltip.js +0 -30
  1054. package/esm2015/popover/tooltip/tooltip.module.js +0 -23
  1055. package/esm2015/progress/progress-bars/progress-bar.module.js +0 -19
  1056. package/esm2015/progress/spinner/spinner.js +0 -63
  1057. package/esm2015/progress/spinner/spinner.module.js +0 -19
  1058. package/esm2015/timeline/providers/timeline-icon-attribute.service.js +0 -54
  1059. package/esm2015/timeline/timeline-step-description.js +0 -16
  1060. package/esm2015/timeline/timeline-step-header.js +0 -16
  1061. package/esm2015/timeline/timeline-step-title.js +0 -26
  1062. package/esm2015/timeline/timeline-step.js +0 -73
  1063. package/esm2015/timeline/timeline.js +0 -29
  1064. package/esm2015/timeline/timeline.module.js +0 -36
  1065. package/esm2015/utils/a11y/aria-live.service.js +0 -161
  1066. package/esm2015/utils/animations/expandable-animation/expandable-animation.js +0 -57
  1067. package/esm2015/utils/animations/expandable-animation/expandable-animation.module.js +0 -18
  1068. package/esm2015/utils/aria/aria.service.js +0 -13
  1069. package/esm2015/utils/chocolate/oompa-loompa.js +0 -33
  1070. package/esm2015/utils/chocolate/willy-wonka.js +0 -33
  1071. package/esm2015/utils/conditional/conditional.module.js +0 -17
  1072. package/esm2015/utils/conditional/if-active.directive.js +0 -100
  1073. package/esm2015/utils/conditional/if-active.service.js +0 -74
  1074. package/esm2015/utils/conditional/if-expanded.directive.js +0 -91
  1075. package/esm2015/utils/conditional/if-expanded.service.js +0 -55
  1076. package/esm2015/utils/conditional/if-open.directive.js +0 -86
  1077. package/esm2015/utils/dom-adapter/dom-adapter.js +0 -49
  1078. package/esm2015/utils/drag-and-drop/drag-and-drop.module.js +0 -30
  1079. package/esm2015/utils/drag-and-drop/drag-handle.js +0 -30
  1080. package/esm2015/utils/drag-and-drop/draggable/draggable.js +0 -119
  1081. package/esm2015/utils/drag-and-drop/draggable-ghost.js +0 -116
  1082. package/esm2015/utils/drag-and-drop/droppable/droppable.js +0 -209
  1083. package/esm2015/utils/drag-and-drop/if-dragged.js +0 -40
  1084. package/esm2015/utils/drag-and-drop/providers/drag-event-listener.service.js +0 -181
  1085. package/esm2015/utils/drag-and-drop/providers/drag-handle-registrar.service.js +0 -61
  1086. package/esm2015/utils/drag-and-drop/providers/draggable-snapshot.service.js +0 -38
  1087. package/esm2015/utils/drag-and-drop/providers/global-drag-mode.service.js +0 -26
  1088. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.js +0 -76
  1089. package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.module.js +0 -21
  1090. package/esm2015/utils/focus/focus.service.js +0 -94
  1091. package/esm2015/utils/focus/focusable-item/basic-focusable-item.service.js +0 -55
  1092. package/esm2015/utils/focus/key-focus/key-focus-item.js +0 -31
  1093. package/esm2015/utils/focus/key-focus/key-focus.js +0 -181
  1094. package/esm2015/utils/focus/key-focus/key-focus.module.js +0 -21
  1095. package/esm2015/utils/focus/key-focus/roving-tabindex.js +0 -100
  1096. package/esm2015/utils/focus-trap/focus-trap-tracker.service.js +0 -30
  1097. package/esm2015/utils/focus-trap/focus-trap.directive.js +0 -154
  1098. package/esm2015/utils/focus-trap/focus-trap.module.js +0 -19
  1099. package/esm2015/utils/host-wrapping/empty-anchor.js +0 -14
  1100. package/esm2015/utils/host-wrapping/host-wrapping.module.js +0 -16
  1101. package/esm2015/utils/i18n/common-strings.service.js +0 -45
  1102. package/esm2015/utils/loading/loading.js +0 -52
  1103. package/esm2015/utils/loading/loading.module.js +0 -15
  1104. package/esm2015/utils/outside-click/outside-click.js +0 -45
  1105. package/esm2015/utils/outside-click/outside-click.module.js +0 -14
  1106. package/esm2015/utils/popover/popover-anchor.js +0 -26
  1107. package/esm2015/utils/popover/popover-close-button.js +0 -51
  1108. package/esm2015/utils/popover/popover-content.js +0 -146
  1109. package/esm2015/utils/popover/popover-open-close-button.js +0 -40
  1110. package/esm2015/utils/popover/popover.module.js +0 -21
  1111. package/esm2015/utils/popover/position-operators.js +0 -171
  1112. package/esm2015/utils/popover/providers/popover-events.service.js +0 -159
  1113. package/esm2015/utils/popover/providers/popover-position.service.js +0 -213
  1114. package/esm2015/utils/popover/providers/popover-toggle.service.js +0 -67
  1115. package/esm2015/utils/scrolling/scrolling-service.js +0 -27
  1116. package/esm2015/utils/template-ref/template-ref-container.js +0 -21
  1117. package/esm2015/utils/template-ref/template-ref.module.js +0 -19
  1118. package/esm2015/wizard/providers/button-hub.service.js +0 -60
  1119. package/esm2015/wizard/providers/header-actions.service.js +0 -37
  1120. package/esm2015/wizard/providers/page-collection.service.js +0 -358
  1121. package/esm2015/wizard/providers/wizard-navigation.service.js +0 -575
  1122. package/esm2015/wizard/wizard-button.js +0 -163
  1123. package/esm2015/wizard/wizard-custom-tags.js +0 -12
  1124. package/esm2015/wizard/wizard-header-action.js +0 -55
  1125. package/esm2015/wizard/wizard-page-buttons.js +0 -18
  1126. package/esm2015/wizard/wizard-page-header-actions.js +0 -18
  1127. package/esm2015/wizard/wizard-page-navtitle.js +0 -18
  1128. package/esm2015/wizard/wizard-page-title.js +0 -18
  1129. package/esm2015/wizard/wizard-stepnav-item.js +0 -100
  1130. package/esm2015/wizard/wizard-stepnav.js +0 -34
  1131. package/esm2015/wizard/wizard.js +0 -438
  1132. package/esm2015/wizard/wizard.module.js +0 -48
  1133. package/fesm2015/clr-angular.js.map +0 -1
@@ -0,0 +1,374 @@
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 { Injectable } from '@angular/core';
7
+ import { Subject } from 'rxjs';
8
+ import { SelectionType } from '../enums/selection-type';
9
+ import { debounceTime } from 'rxjs/operators';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "./items";
12
+ import * as i2 from "./filters";
13
+ let nbSelection = 0;
14
+ export class Selection {
15
+ constructor(_items, _filters, _zone) {
16
+ this._items = _items;
17
+ this._filters = _filters;
18
+ this._zone = _zone;
19
+ this.preserveSelection = false;
20
+ this.prevSelectionRefs = []; // Refs of selected items
21
+ this.lockedRefs = []; // Ref of locked items
22
+ this._selectionType = SelectionType.None;
23
+ /** @deprecated since 2.0, remove in 3.0 */
24
+ this.rowSelectionMode = false;
25
+ /**
26
+ * Subscriptions to the other providers changes.
27
+ */
28
+ this.subscriptions = [];
29
+ this.valueCollector = new Subject();
30
+ /**
31
+ * The Observable that lets other classes subscribe to selection changes
32
+ */
33
+ this._change = new Subject();
34
+ this.id = 'clr-dg-selection' + nbSelection++;
35
+ this.subscriptions.push(this._filters.change.subscribe(() => {
36
+ if (!this._selectable || this.preserveSelection) {
37
+ return;
38
+ }
39
+ this.clearSelection();
40
+ }));
41
+ this.subscriptions.push(this._items.allChanges.subscribe(updatedItems => {
42
+ // Reset the lockedRefs;
43
+ const updateLockedRef = [];
44
+ switch (this.selectionType) {
45
+ case SelectionType.None: {
46
+ break;
47
+ }
48
+ case SelectionType.Single: {
49
+ let newSingle;
50
+ const trackBy = this._items.trackBy;
51
+ let selectionUpdated = false;
52
+ // if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
53
+ if (this.currentSingle && !this.prevSingleSelectionRef) {
54
+ if (this._items.all && this._items.trackBy) {
55
+ const lookup = this._items.all.findIndex(maybe => maybe === this.currentSingle);
56
+ this.prevSingleSelectionRef = this._items.trackBy(lookup, this.currentSingle);
57
+ }
58
+ }
59
+ updatedItems.forEach((item, index) => {
60
+ const ref = trackBy(index, item);
61
+ // If one of the updated items is the previously selectedSingle, set it as the new one
62
+ if (this.prevSingleSelectionRef === ref) {
63
+ newSingle = item;
64
+ selectionUpdated = true;
65
+ }
66
+ if (this.lockedRefs.indexOf(ref) > -1) {
67
+ updateLockedRef.push(ref);
68
+ }
69
+ });
70
+ // If we're using smart datagrids, we expect all items to be present in the updatedItems array.
71
+ // Therefore, we should delete the currentSingle if it used to be defined but doesn't exist anymore.
72
+ // No explicit "delete" is required, since newSingle would be undefined at this point.
73
+ // Marking it as selectionUpdated here will set currentSingle to undefined below in the setTimeout.
74
+ if (this._items.smart && !newSingle) {
75
+ selectionUpdated = true;
76
+ }
77
+ // TODO: Discussed this with Eudes and this is fine for now.
78
+ // But we need to figure out a different pattern for the
79
+ // child triggering the parent change detection problem.
80
+ // Using setTimeout for now to fix this.
81
+ setTimeout(() => {
82
+ if (selectionUpdated) {
83
+ this.currentSingle = newSingle;
84
+ }
85
+ }, 0);
86
+ break;
87
+ }
88
+ case SelectionType.Multi: {
89
+ let leftOver = this.current.slice();
90
+ const trackBy = this._items.trackBy;
91
+ let selectionUpdated = false;
92
+ // if the current has been set before data was loaded, we look up and save the ref from current data set
93
+ if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
94
+ if (this._items.all && this._items.trackBy) {
95
+ this.prevSelectionRefs = [];
96
+ this.current.forEach(item => {
97
+ const lookup = this._items.all.findIndex(maybe => maybe === item);
98
+ this.prevSelectionRefs.push(this._items.trackBy(lookup, item));
99
+ });
100
+ }
101
+ }
102
+ // Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
103
+ // we need to go over every updated item and check to see if there are valid to be
104
+ // locked or not and update it. When only add items that are found in the lockedRefs back.
105
+ //
106
+ // The both loops below that goes over updatedItems could be combined into one.
107
+ updatedItems.forEach((item, index) => {
108
+ const ref = trackBy(index, item);
109
+ if (this.lockedRefs.indexOf(ref) > -1) {
110
+ updateLockedRef.push(ref);
111
+ }
112
+ });
113
+ // TODO: revisit this when we work on https://github.com/vmware/clarity/issues/2342
114
+ // currently, the selection is cleared when filter is applied, so the logic inside
115
+ // the if statement below results in broken behavior.
116
+ if (leftOver.length > 0) {
117
+ updatedItems.forEach((item, index) => {
118
+ const ref = trackBy(index, item);
119
+ // Look in current selected refs array if item is selected, and update actual value
120
+ const selectedIndex = this.prevSelectionRefs.indexOf(ref);
121
+ if (selectedIndex > -1) {
122
+ leftOver[selectedIndex] = item;
123
+ selectionUpdated = true;
124
+ }
125
+ });
126
+ // Filter out any unmatched items if we're using smart datagrids where we expect all items to be
127
+ // present
128
+ if (this._items.smart) {
129
+ leftOver = leftOver.filter(selected => updatedItems.indexOf(selected) > -1);
130
+ if (this.current.length !== leftOver.length) {
131
+ selectionUpdated = true;
132
+ }
133
+ }
134
+ // TODO: Discussed this with Eudes and this is fine for now.
135
+ // But we need to figure out a different pattern for the
136
+ // child triggering the parent change detection problem.
137
+ // Using setTimeout for now to fix this.
138
+ setTimeout(() => {
139
+ if (selectionUpdated) {
140
+ this.current = leftOver;
141
+ }
142
+ }, 0);
143
+ }
144
+ break;
145
+ }
146
+ default: {
147
+ break;
148
+ }
149
+ }
150
+ // Sync locked items
151
+ this.lockedRefs = updateLockedRef;
152
+ }));
153
+ this.subscriptions.push(this.valueCollector.pipe(debounceTime(0)).subscribe(() => this.emitChange()));
154
+ }
155
+ clearSelection() {
156
+ this._current = [];
157
+ this.prevSelectionRefs = [];
158
+ this.prevSingleSelectionRef = null;
159
+ this._currentSingle = null;
160
+ this.emitChange();
161
+ }
162
+ get selectionType() {
163
+ return this._selectionType;
164
+ }
165
+ set selectionType(value) {
166
+ if (value === this.selectionType) {
167
+ return;
168
+ }
169
+ this._selectionType = value;
170
+ if (value === SelectionType.None) {
171
+ delete this.current;
172
+ }
173
+ else {
174
+ this.updateCurrent([], false);
175
+ }
176
+ }
177
+ get _selectable() {
178
+ return this._selectionType === SelectionType.Multi || this._selectionType === SelectionType.Single;
179
+ }
180
+ /**
181
+ * Cleans up our subscriptions to other providers
182
+ */
183
+ destroy() {
184
+ this.subscriptions.forEach(sub => sub.unsubscribe());
185
+ }
186
+ get currentSingle() {
187
+ return this._currentSingle;
188
+ }
189
+ set currentSingle(value) {
190
+ if (value === this._currentSingle) {
191
+ return;
192
+ }
193
+ this._currentSingle = value;
194
+ if (this._items.all && this._items.trackBy && value) {
195
+ const lookup = this._items.all.findIndex(maybe => maybe === value);
196
+ this.prevSingleSelectionRef = this._items.trackBy(lookup, value);
197
+ }
198
+ this.emitChange();
199
+ }
200
+ get current() {
201
+ return this._current;
202
+ }
203
+ set current(value) {
204
+ this.updateCurrent(value, true);
205
+ }
206
+ updateCurrent(value, emit) {
207
+ this._current = value;
208
+ if (emit) {
209
+ this.valueCollector.next(value);
210
+ }
211
+ }
212
+ emitChange() {
213
+ if (this._selectionType === SelectionType.Single) {
214
+ this._change.next(this.currentSingle);
215
+ }
216
+ else if (this._selectionType === SelectionType.Multi) {
217
+ this._change.next(this.current);
218
+ }
219
+ }
220
+ // We do not want to expose the Subject itself, but the Observable which is read-only
221
+ get change() {
222
+ return this._change.asObservable();
223
+ }
224
+ /**
225
+ * Checks if an item is currently selected
226
+ */
227
+ isSelected(item) {
228
+ if (this._selectionType === SelectionType.Single) {
229
+ return this.currentSingle === item;
230
+ }
231
+ else if (this._selectionType === SelectionType.Multi) {
232
+ return this.current.indexOf(item) >= 0;
233
+ }
234
+ return false;
235
+ }
236
+ /**
237
+ * Selects an item
238
+ */
239
+ selectItem(item) {
240
+ this.current = this.current.concat(item);
241
+ if (this._items.trackBy && this._items.all) {
242
+ // Push selected ref onto array
243
+ const lookup = this._items.all.findIndex(maybe => maybe === item);
244
+ this.prevSelectionRefs.push(this._items.trackBy(lookup, item));
245
+ }
246
+ }
247
+ /**
248
+ * Deselects an item
249
+ */
250
+ deselectItem(indexOfItem) {
251
+ this.current = this.current.slice(0, indexOfItem).concat(this.current.slice(indexOfItem + 1));
252
+ if (this._items.trackBy && indexOfItem < this.prevSelectionRefs.length) {
253
+ // Keep selected refs array in sync
254
+ const removedItems = this.prevSelectionRefs.splice(indexOfItem, 1);
255
+ // locked reference is no longer needed (if any)
256
+ this.lockedRefs = this.lockedRefs.filter(locked => locked !== removedItems[0]);
257
+ }
258
+ }
259
+ /**
260
+ * Selects or deselects an item
261
+ */
262
+ setSelected(item, selected) {
263
+ const index = this.current ? this.current.indexOf(item) : -1;
264
+ switch (this._selectionType) {
265
+ case SelectionType.None:
266
+ break;
267
+ case SelectionType.Single:
268
+ // in single selection, set currentSingle method should be used
269
+ break;
270
+ case SelectionType.Multi:
271
+ if (index >= 0 && !selected) {
272
+ this.deselectItem(index);
273
+ }
274
+ else if (index < 0 && selected) {
275
+ this.selectItem(item);
276
+ }
277
+ break;
278
+ default:
279
+ break;
280
+ }
281
+ }
282
+ /**
283
+ * Checks if all currently displayed items are selected
284
+ */
285
+ isAllSelected() {
286
+ if (this._selectionType !== SelectionType.Multi || !this._items.displayed) {
287
+ return false;
288
+ }
289
+ // make sure to exclude the locked items from the list when counting
290
+ const displayedItems = this._items.displayed.filter(item => {
291
+ return this.isLocked(item) === false;
292
+ });
293
+ const nbDisplayed = displayedItems.length;
294
+ if (nbDisplayed < 1) {
295
+ return false;
296
+ }
297
+ const temp = displayedItems.filter(item => this.current.indexOf(item) > -1);
298
+ return temp.length === displayedItems.length;
299
+ }
300
+ /**
301
+ * Make sure that it could be locked
302
+ *
303
+ * @remark
304
+ * Check also is items.all an array, if not there is no nothing to lock or compare to
305
+ *
306
+ */
307
+ canItBeLocked() {
308
+ // We depend on the trackBy and all so there are part of the requirment of is item could be locked
309
+ return this._selectionType !== SelectionType.None && Array.isArray(this._items.all);
310
+ }
311
+ /**
312
+ * Lock and unlock item
313
+ */
314
+ lockItem(item, lock) {
315
+ if (this.canItBeLocked()) {
316
+ const ref = this._items.trackBy(this._items.all.findIndex(maybe => maybe === item), item);
317
+ if (lock === true) {
318
+ // Add to lockedRef
319
+ this.lockedRefs.push(ref);
320
+ }
321
+ else {
322
+ // Remove from lockedRef
323
+ this.lockedRefs = this.lockedRefs.filter(lockedItem => ref !== lockedItem);
324
+ }
325
+ }
326
+ }
327
+ /**
328
+ * Check is item locked or not by searcing into lockedRefs for entry
329
+ */
330
+ isLocked(item) {
331
+ /**
332
+ * The check for selectionType will boost the performence by NOT searching
333
+ * into the array when there is no need for that.
334
+ */
335
+ if (this.canItBeLocked()) {
336
+ const ref = this._items.trackBy(this._items.all.findIndex(maybe => maybe === item), item);
337
+ return this.lockedRefs.indexOf(ref) > -1;
338
+ }
339
+ return false;
340
+ }
341
+ /**
342
+ * Selects or deselects all currently displayed items
343
+ */
344
+ toggleAll() {
345
+ if (this._selectionType === SelectionType.None || this._selectionType === SelectionType.Single) {
346
+ return;
347
+ }
348
+ /**
349
+ * If every currently displayed item is already selected, we clear them.
350
+ * If at least one item isn't selected, we select every currently displayed item.
351
+ */
352
+ if (this.isAllSelected()) {
353
+ this._items.displayed.forEach(item => {
354
+ const currentIndex = this.current.indexOf(item);
355
+ if (currentIndex > -1 && this.isLocked(item) === false) {
356
+ this.deselectItem(currentIndex);
357
+ }
358
+ });
359
+ }
360
+ else {
361
+ this._items.displayed.forEach(item => {
362
+ if (this.current.indexOf(item) < 0 && this.isLocked(item) === false) {
363
+ this.selectItem(item);
364
+ }
365
+ });
366
+ }
367
+ }
368
+ }
369
+ Selection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: Selection, deps: [{ token: i1.Items }, { token: i2.FiltersProvider }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
370
+ Selection.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: Selection });
371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: Selection, decorators: [{
372
+ type: Injectable
373
+ }], ctorParameters: function () { return [{ type: i1.Items }, { type: i2.FiltersProvider }, { type: i0.NgZone }]; } });
374
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9wcm92aWRlcnMvc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUl6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRTlDLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztBQUdwQixNQUFNLE9BQU8sU0FBUztJQU9wQixZQUFvQixNQUFnQixFQUFVLFFBQTRCLEVBQVUsS0FBYTtRQUE3RSxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBTDFGLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUN6QixzQkFBaUIsR0FBUSxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7UUFFdEQsZUFBVSxHQUFRLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQjtRQXlKNUMsbUJBQWMsR0FBa0IsYUFBYSxDQUFDLElBQUksQ0FBQztRQWdCM0QsMkNBQTJDO1FBQ3BDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQU1oQzs7V0FFRztRQUNLLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQXdDbkMsbUJBQWMsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQVMxRDs7V0FFRztRQUNLLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBcE92QyxJQUFJLENBQUMsRUFBRSxHQUFHLGtCQUFrQixHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxh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QztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUztRQUNkLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxhQUFhLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUM5RixPQUFPO1NBQ1I7UUFDRDs7O1dBR0c7UUFDSCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRTtvQkFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO29CQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN2QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztzR0FyWlUsU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBUcmFja0J5RnVuY3Rpb24sIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZpbHRlcnNQcm92aWRlciB9IGZyb20gJy4vZmlsdGVycyc7XG5pbXBvcnQgeyBJdGVtcyB9IGZyb20gJy4vaXRlbXMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL3NlbGVjdGlvbi10eXBlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxubGV0IG5iU2VsZWN0aW9uID0gMDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbjxUID0gYW55PiB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcHJlc2VydmVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSBwcmV2U2VsZWN0aW9uUmVmczogVFtdID0gW107IC8vIFJlZnMgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAgcHJpdmF0ZSBwcmV2U2luZ2xlU2VsZWN0aW9uUmVmOiBUOyAvLyBSZWYgb2Ygc2luZ2xlIHNlbGVjdGVkIGl0ZW1cbiAgcHJpdmF0ZSBsb2NrZWRSZWZzOiBUW10gPSBbXTsgLy8gUmVmIG9mIGxvY2tlZCBpdGVtc1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2l0ZW1zOiBJdGVtczxUPiwgcHJpdmF0ZSBfZmlsdGVyczogRmlsdGVyc1Byb3ZpZGVyPFQ+LCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLmlkID0gJ2Nsci1kZy1zZWxlY3Rpb24nICsgbmJTZWxlY3Rpb24rKztcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5fZmlsdGVycy5jaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RhYmxlIHx8IHRoaXMucHJlc2VydmVTZWxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLl9pdGVtcy5hbGxDaGFuZ2VzLnN1YnNjcmliZSh1cGRhdGVkSXRlbXMgPT4ge1xuICAgICAgICAvLyBSZXNldCB0aGUgbG9ja2VkUmVmcztcbiAgICAgICAgY29uc3QgdXBkYXRlTG9ja2VkUmVmOiBUW10gPSBbXTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0aW9uVHlwZSkge1xuICAgICAgICAgIGNhc2UgU2VsZWN0aW9uVHlwZS5Ob25lOiB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlIFNlbGVjdGlvblR5cGUuU2luZ2xlOiB7XG4gICAgICAgICAgICBsZXQgbmV3U2luZ2xlOiBhbnk7XG4gICAgICAgICAgICBjb25zdCB0cmFja0J5OiBUcmFja0J5RnVuY3Rpb248VD4gPSB0aGlzLl9pdGVtcy50cmFja0J5O1xuICAgICAgICAgICAgbGV0IHNlbGVjdGlvblVwZGF0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnRTaW5nbGUgaGFzIGJlZW4gc2V0IGJlZm9yZSBkYXRhIHdhcyBsb2FkZWQsIHdlIGxvb2sgdXAgYW5kIHNhdmUgdGhlIHJlZiBmcm9tIGN1cnJlbnQgZGF0YSBzZXRcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRTaW5nbGUgJiYgIXRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZikge1xuICAgICAgICAgICAgICBpZiAodGhpcy5faXRlbXMuYWxsICYmIHRoaXMuX2l0ZW1zLnRyYWNrQnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb29rdXAgPSB0aGlzLl9pdGVtcy5hbGwuZmluZEluZGV4KG1heWJlID0+IG1heWJlID09PSB0aGlzLmN1cnJlbnRTaW5nbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZiA9IHRoaXMuX2l0ZW1zLnRyYWNrQnkobG9va3VwLCB0aGlzLmN1cnJlbnRTaW5nbGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVwZGF0ZWRJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWYgPSB0cmFja0J5KGluZGV4LCBpdGVtKTtcbiAgICAgICAgICAgICAgLy8gSWYgb25lIG9mIHRoZSB1cGRhdGVkIGl0ZW1zIGlzIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkU2luZ2xlLCBzZXQgaXQgYXMgdGhlIG5ldyBvbmVcbiAgICAgICAgICAgICAgaWYgKHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZiA9PT0gcmVmKSB7XG4gICAgICAgICAgICAgICAgbmV3U2luZ2xlID0gaXRlbTtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25VcGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodGhpcy5sb2NrZWRSZWZzLmluZGV4T2YocmVmKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlTG9ja2VkUmVmLnB1c2gocmVmKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIElmIHdlJ3JlIHVzaW5nIHNtYXJ0IGRhdGFncmlkcywgd2UgZXhwZWN0IGFsbCBpdGVtcyB0byBiZSBwcmVzZW50IGluIHRoZSB1cGRhdGVkSXRlbXMgYXJyYXkuXG4gICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIHNob3VsZCBkZWxldGUgdGhlIGN1cnJlbnRTaW5nbGUgaWYgaXQgdXNlZCB0byBiZSBkZWZpbmVkIGJ1dCBkb2Vzbid0IGV4aXN0IGFueW1vcmUuXG4gICAgICAgICAgICAvLyBObyBleHBsaWNpdCBcImRlbGV0ZVwiIGlzIHJlcXVpcmVkLCBzaW5jZSBuZXdTaW5nbGUgd291bGQgYmUgdW5kZWZpbmVkIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgICAgICAvLyBNYXJraW5nIGl0IGFzIHNlbGVjdGlvblVwZGF0ZWQgaGVyZSB3aWxsIHNldCBjdXJyZW50U2luZ2xlIHRvIHVuZGVmaW5lZCBiZWxvdyBpbiB0aGUgc2V0VGltZW91dC5cbiAgICAgICAgICAgIGlmICh0aGlzLl9pdGVtcy5zbWFydCAmJiAhbmV3U2luZ2xlKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGlvblVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUT0RPOiBEaXNjdXNzZWQgdGhpcyB3aXRoIEV1ZGVzIGFuZCB0aGlzIGlzIGZpbmUgZm9yIG5vdy5cbiAgICAgICAgICAgIC8vIEJ1dCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBmb3IgdGhlXG4gICAgICAgICAgICAvLyBjaGlsZCB0cmlnZ2VyaW5nIHRoZSBwYXJlbnQgY2hhbmdlIGRldGVjdGlvbiBwcm9ibGVtLlxuICAgICAgICAgICAgLy8gVXNpbmcgc2V0VGltZW91dCBmb3Igbm93IHRvIGZpeCB0aGlzLlxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25VcGRhdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2luZ2xlID0gbmV3U2luZ2xlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgU2VsZWN0aW9uVHlwZS5NdWx0aToge1xuICAgICAgICAgICAgbGV0IGxlZnRPdmVyOiBhbnlbXSA9IHRoaXMuY3VycmVudC5zbGljZSgpO1xuICAgICAgICAgICAgY29uc3QgdHJhY2tCeTogVHJhY2tCeUZ1bmN0aW9uPGFueT4gPSB0aGlzLl9pdGVtcy50cmFja0J5O1xuICAgICAgICAgICAgbGV0IHNlbGVjdGlvblVwZGF0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgaGFzIGJlZW4gc2V0IGJlZm9yZSBkYXRhIHdhcyBsb2FkZWQsIHdlIGxvb2sgdXAgYW5kIHNhdmUgdGhlIHJlZiBmcm9tIGN1cnJlbnQgZGF0YSBzZXRcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnQubGVuZ3RoID4gMCAmJiB0aGlzLnByZXZTZWxlY3Rpb25SZWZzLmxlbmd0aCAhPT0gdGhpcy5jdXJyZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5faXRlbXMuYWxsICYmIHRoaXMuX2l0ZW1zLnRyYWNrQnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZTZWxlY3Rpb25SZWZzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsb29rdXAgPSB0aGlzLl9pdGVtcy5hbGwuZmluZEluZGV4KG1heWJlID0+IG1heWJlID09PSBpdGVtKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJldlNlbGVjdGlvblJlZnMucHVzaCh0aGlzLl9pdGVtcy50cmFja0J5KGxvb2t1cCwgaXRlbSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIER1cGxpY2F0ZSBsb29wLCB3aGVuIHRoZSBpc3N1ZSBpcyBpc3N1ZSMyMzQyIGlzIHJldmlzaXRlZCBrZWVwIGluIG1pbmQgdGhhdFxuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBnbyBvdmVyIGV2ZXJ5IHVwZGF0ZWQgaXRlbSBhbmQgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSB2YWxpZCB0byBiZVxuICAgICAgICAgICAgLy8gbG9ja2VkIG9yIG5vdCBhbmQgdXBkYXRlIGl0LiBXaGVuIG9ubHkgYWRkIGl0ZW1zIHRoYXQgYXJlIGZvdW5kIGluIHRoZSBsb2NrZWRSZWZzIGJhY2suXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gVGhlIGJvdGggbG9vcHMgYmVsb3cgdGhhdCBnb2VzIG92ZXIgdXBkYXRlZEl0ZW1zIGNvdWxkIGJlIGNvbWJpbmVkIGludG8gb25lLlxuICAgICAgICAgICAgdXBkYXRlZEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHRyYWNrQnkoaW5kZXgsIGl0ZW0pO1xuICAgICAgICAgICAgICBpZiAodGhpcy5sb2NrZWRSZWZzLmluZGV4T2YocmVmKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlTG9ja2VkUmVmLnB1c2gocmVmKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IHJldmlzaXQgdGhpcyB3aGVuIHdlIHdvcmsgb24gaHR0cHM6Ly9naXRodWIuY29tL3Ztd2FyZS9jbGFyaXR5L2lzc3Vlcy8yMzQyXG4gICAgICAgICAgICAvLyBjdXJyZW50bHksIHRoZSBzZWxlY3Rpb24gaXMgY2xlYXJlZCB3aGVuIGZpbHRlciBpcyBhcHBsaWVkLCBzbyB0aGUgbG9naWMgaW5zaWRlXG4gICAgICAgICAgICAvLyB0aGUgaWYgc3RhdGVtZW50IGJlbG93IHJlc3VsdHMgaW4gYnJva2VuIGJlaGF2aW9yLlxuICAgICAgICAgICAgaWYgKGxlZnRPdmVyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgdXBkYXRlZEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmID0gdHJhY2tCeShpbmRleCwgaXRlbSk7XG4gICAgICAgICAgICAgICAgLy8gTG9vayBpbiBjdXJyZW50IHNlbGVjdGVkIHJlZnMgYXJyYXkgaWYgaXRlbSBpcyBzZWxlY3RlZCwgYW5kIHVwZGF0ZSBhY3R1YWwgdmFsdWVcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5pbmRleE9mKHJlZik7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgbGVmdE92ZXJbc2VsZWN0ZWRJbmRleF0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGFueSB1bm1hdGNoZWQgaXRlbXMgaWYgd2UncmUgdXNpbmcgc21hcnQgZGF0YWdyaWRzIHdoZXJlIHdlIGV4cGVjdCBhbGwgaXRlbXMgdG8gYmVcbiAgICAgICAgICAgICAgLy8gcHJlc2VudFxuICAgICAgICAgICAgICBpZiAodGhpcy5faXRlbXMuc21hcnQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0T3ZlciA9IGxlZnRPdmVyLmZpbHRlcihzZWxlY3RlZCA9PiB1cGRhdGVkSXRlbXMuaW5kZXhPZihzZWxlY3RlZCkgPiAtMSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudC5sZW5ndGggIT09IGxlZnRPdmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gVE9ETzogRGlzY3Vzc2VkIHRoaXMgd2l0aCBFdWRlcyBhbmQgdGhpcyBpcyBmaW5lIGZvciBub3cuXG4gICAgICAgICAgICAgIC8vIEJ1dCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgYSBkaWZmZXJlbnQgcGF0dGVybiBmb3IgdGhlXG4gICAgICAgICAgICAgIC8vIGNoaWxkIHRyaWdnZXJpbmcgdGhlIHBhcmVudCBjaGFuZ2UgZGV0ZWN0aW9uIHByb2JsZW0uXG4gICAgICAgICAgICAgIC8vIFVzaW5nIHNldFRpbWVvdXQgZm9yIG5vdyB0byBmaXggdGhpcy5cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvblVwZGF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IGxlZnRPdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gU3luYyBsb2NrZWQgaXRlbXNcbiAgICAgICAgdGhpcy5sb2NrZWRSZWZzID0gdXBkYXRlTG9ja2VkUmVmO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy52YWx1ZUNvbGxlY3Rvci5waXBlKGRlYm91bmNlVGltZSgwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZW1pdENoYW5nZSgpKSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudCA9IFtdO1xuICAgIHRoaXMucHJldlNlbGVjdGlvblJlZnMgPSBbXTtcbiAgICB0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWYgPSBudWxsO1xuICAgIHRoaXMuX2N1cnJlbnRTaW5nbGUgPSBudWxsO1xuICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0aW9uVHlwZTogU2VsZWN0aW9uVHlwZSA9IFNlbGVjdGlvblR5cGUuTm9uZTtcbiAgcHVibGljIGdldCBzZWxlY3Rpb25UeXBlKCk6IFNlbGVjdGlvblR5cGUge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlO1xuICB9XG4gIHB1YmxpYyBzZXQgc2VsZWN0aW9uVHlwZSh2YWx1ZTogU2VsZWN0aW9uVHlwZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5zZWxlY3Rpb25UeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3NlbGVjdGlvblR5cGUgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUgPT09IFNlbGVjdGlvblR5cGUuTm9uZSkge1xuICAgICAgZGVsZXRlIHRoaXMuY3VycmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVDdXJyZW50KFtdLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIHNpbmNlIDIuMCwgcmVtb3ZlIGluIDMuMCAqL1xuICBwdWJsaWMgcm93U2VsZWN0aW9uTW9kZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZ2V0IF9zZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25UeXBlLk11bHRpIHx8IHRoaXMuX3NlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuU2luZ2xlO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgdG8gdGhlIG90aGVyIHByb3ZpZGVycyBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDbGVhbnMgdXAgb3VyIHN1YnNjcmlwdGlvbnMgdG8gb3RoZXIgcHJvdmlkZXJzXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHNlbGVjdGlvbiBpbiBzaW5nbGUgc2VsZWN0aW9uIHR5cGVcbiAgICovXG4gIHByaXZhdGUgX2N1cnJlbnRTaW5nbGU6IFQ7XG4gIHB1YmxpYyBnZXQgY3VycmVudFNpbmdsZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNpbmdsZTtcbiAgfVxuICBwdWJsaWMgc2V0IGN1cnJlbnRTaW5nbGUodmFsdWU6IFQpIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuX2N1cnJlbnRTaW5nbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50U2luZ2xlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2l0ZW1zLmFsbCAmJiB0aGlzLl9pdGVtcy50cmFja0J5ICYmIHZhbHVlKSB7XG4gICAgICBjb25zdCBsb29rdXAgPSB0aGlzLl9pdGVtcy5hbGwuZmluZEluZGV4KG1heWJlID0+IG1heWJlID09PSB2YWx1ZSk7XG4gICAgICB0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWYgPSB0aGlzLl9pdGVtcy50cmFja0J5KGxvb2t1cCwgdmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzZWxlY3Rpb25cbiAgICovXG4gIHByaXZhdGUgX2N1cnJlbnQ6IFRbXTtcbiAgcHVibGljIGdldCBjdXJyZW50KCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cbiAgcHVibGljIHNldCBjdXJyZW50KHZhbHVlOiBUW10pIHtcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnQodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWx1ZUNvbGxlY3RvcjogU3ViamVjdDxUW10+ID0gbmV3IFN1YmplY3Q8VFtdPigpO1xuICBwdWJsaWMgdXBkYXRlQ3VycmVudCh2YWx1ZTogVFtdLCBlbWl0OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY3VycmVudCA9IHZhbHVlO1xuXG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMudmFsdWVDb2xsZWN0b3IubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNlcnZhYmxlIHRoYXQgbGV0cyBvdGhlciBjbGFzc2VzIHN1YnNjcmliZSB0byBzZWxlY3Rpb24gY2hhbmdlc1xuICAgKi9cbiAgcHJpdmF0ZSBfY2hhbmdlID0gbmV3IFN1YmplY3Q8VFtdIHwgVD4oKTtcbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlKCkge1xuICAgIGlmICh0aGlzLl9zZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25UeXBlLlNpbmdsZSkge1xuICAgICAgdGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJyZW50U2luZ2xlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3NlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuTXVsdGkpIHtcbiAgICAgIHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCk7XG4gICAgfVxuICB9XG4gIC8vIFdlIGRvIG5vdCB3YW50IHRvIGV4cG9zZSB0aGUgU3ViamVjdCBpdHNlbGYsIGJ1dCB0aGUgT2JzZXJ2YWJsZSB3aGljaCBpcyByZWFkLW9ubHlcbiAgcHVibGljIGdldCBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxUW10gfCBUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW4gaXRlbSBpcyBjdXJyZW50bHkgc2VsZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uVHlwZS5TaW5nbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTaW5nbGUgPT09IGl0ZW07XG4gICAgfSBlbHNlIGlmICh0aGlzLl9zZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25UeXBlLk11bHRpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50LmluZGV4T2YoaXRlbSkgPj0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYW4gaXRlbVxuICAgKi9cbiAgcHJpdmF0ZSBzZWxlY3RJdGVtKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmN1cnJlbnQuY29uY2F0KGl0ZW0pO1xuICAgIGlmICh0aGlzLl9pdGVtcy50cmFja0J5ICYmIHRoaXMuX2l0ZW1zLmFsbCkge1xuICAgICAgLy8gUHVzaCBzZWxlY3RlZCByZWYgb250byBhcnJheVxuICAgICAgY29uc3QgbG9va3VwID0gdGhpcy5faXRlbXMuYWxsLmZpbmRJbmRleChtYXliZSA9PiBtYXliZSA9PT0gaXRlbSk7XG4gICAgICB0aGlzLnByZXZTZWxlY3Rpb25SZWZzLnB1c2godGhpcy5faXRlbXMudHJhY2tCeShsb29rdXAsIGl0ZW0pKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzZWxlY3RzIGFuIGl0ZW1cbiAgICovXG4gIHByaXZhdGUgZGVzZWxlY3RJdGVtKGluZGV4T2ZJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmN1cnJlbnQuc2xpY2UoMCwgaW5kZXhPZkl0ZW0pLmNvbmNhdCh0aGlzLmN1cnJlbnQuc2xpY2UoaW5kZXhPZkl0ZW0gKyAxKSk7XG4gICAgaWYgKHRoaXMuX2l0ZW1zLnRyYWNrQnkgJiYgaW5kZXhPZkl0ZW0gPCB0aGlzLnByZXZTZWxlY3Rpb25SZWZzLmxlbmd0aCkge1xuICAgICAgLy8gS2VlcCBzZWxlY3RlZCByZWZzIGFycmF5IGluIHN5bmNcbiAgICAgIGNvbnN0IHJlbW92ZWRJdGVtcyA9IHRoaXMucHJldlNlbGVjdGlvblJlZnMuc3BsaWNlKGluZGV4T2ZJdGVtLCAxKTtcbiAgICAgIC8vIGxvY2tlZCByZWZlcmVuY2UgaXMgbm8gbG9uZ2VyIG5lZWRlZCAoaWYgYW55KVxuICAgICAgdGhpcy5sb2NrZWRSZWZzID0gdGhpcy5sb2NrZWRSZWZzLmZpbHRlcihsb2NrZWQgPT4gbG9ja2VkICE9PSByZW1vdmVkSXRlbXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIG9yIGRlc2VsZWN0cyBhbiBpdGVtXG4gICAqL1xuICBwdWJsaWMgc2V0U2VsZWN0ZWQoaXRlbTogVCwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudCA/IHRoaXMuY3VycmVudC5pbmRleE9mKGl0ZW0pIDogLTE7XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3NlbGVjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgU2VsZWN0aW9uVHlwZS5Ob25lOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2VsZWN0aW9uVHlwZS5TaW5nbGU6XG4gICAgICAgIC8vIGluIHNpbmdsZSBzZWxlY3Rpb24sIHNldCBjdXJyZW50U2luZ2xlIG1ldGhvZCBzaG91bGQgYmUgdXNlZFxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2VsZWN0aW9uVHlwZS5NdWx0aTpcbiAgICAgICAgaWYgKGluZGV4ID49IDAgJiYgIXNlbGVjdGVkKSB7XG4gICAgICAgICAgdGhpcy5kZXNlbGVjdEl0ZW0oaW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4IDwgMCAmJiBzZWxlY3RlZCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYWxsIGN1cnJlbnRseSBkaXNwbGF5ZWQgaXRlbXMgYXJlIHNlbGVjdGVkXG4gICAqL1xuICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0aW9uVHlwZSAhPT0gU2VsZWN0aW9uVHlwZS5NdWx0aSB8fCAhdGhpcy5faXRlbXMuZGlzcGxheWVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIG1ha2Ugc3VyZSB0byBleGNsdWRlIHRoZSBsb2NrZWQgaXRlbXMgZnJvbSB0aGUgbGlzdCB3aGVuIGNvdW50aW5nXG4gICAgY29uc3QgZGlzcGxheWVkSXRlbXM6IFRbXSA9IHRoaXMuX2l0ZW1zLmRpc3BsYXllZC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pc0xvY2tlZChpdGVtKSA9PT0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICBjb25zdCBuYkRpc3BsYXllZCA9IGRpc3BsYXllZEl0ZW1zLmxlbmd0aDtcbiAgICBpZiAobmJEaXNwbGF5ZWQgPCAxKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHRlbXA6IFRbXSA9IGRpc3BsYXllZEl0ZW1zLmZpbHRlcihpdGVtID0+IHRoaXMuY3VycmVudC5pbmRleE9mKGl0ZW0pID4gLTEpO1xuICAgIHJldHVybiB0ZW1wLmxlbmd0aCA9PT0gZGlzcGxheWVkSXRlbXMubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2Ugc3VyZSB0aGF0IGl0IGNvdWxkIGJlIGxvY2tlZFxuICAgKlxuICAgKiBAcmVtYXJrXG4gICAqIENoZWNrIGFsc28gaXMgaXRlbXMuYWxsIGFuIGFycmF5LCBpZiBub3QgdGhlcmUgaXMgbm8gbm90aGluZyB0byBsb2NrIG9yIGNvbXBhcmUgdG9cbiAgICpcbiAgICovXG4gIHByaXZhdGUgY2FuSXRCZUxvY2tlZCgpOiBib29sZWFuIHtcbiAgICAvLyBXZSBkZXBlbmQgb24gdGhlIHRyYWNrQnkgYW5kIGFsbCBzbyB0aGVyZSBhcmUgcGFydCBvZiB0aGUgcmVxdWlybWVudCBvZiBpcyBpdGVtIGNvdWxkIGJlIGxvY2tlZFxuICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25UeXBlICE9PSBTZWxlY3Rpb25UeXBlLk5vbmUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLl9pdGVtcy5hbGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvY2sgYW5kIHVubG9jayBpdGVtXG4gICAqL1xuICBwdWJsaWMgbG9ja0l0ZW0oaXRlbTogVCwgbG9jazogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmNhbkl0QmVMb2NrZWQoKSkge1xuICAgICAgY29uc3QgcmVmID0gdGhpcy5faXRlbXMudHJhY2tCeShcbiAgICAgICAgdGhpcy5faXRlbXMuYWxsLmZpbmRJbmRleChtYXliZSA9PiBtYXliZSA9PT0gaXRlbSksXG4gICAgICAgIGl0ZW1cbiAgICAgICk7XG4gICAgICBpZiAobG9jayA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBBZGQgdG8gbG9ja2VkUmVmXG4gICAgICAgIHRoaXMubG9ja2VkUmVmcy5wdXNoKHJlZik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmUgZnJvbSBsb2NrZWRSZWZcbiAgICAgICAgdGhpcy5sb2NrZWRSZWZzID0gdGhpcy5sb2NrZWRSZWZzLmZpbHRlcihsb2NrZWRJdGVtID0+IHJlZiAhPT0gbG9ja2VkSXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlzIGl0ZW0gbG9ja2VkIG9yIG5vdCBieSBzZWFyY2luZyBpbnRvIGxvY2tlZFJlZnMgZm9yIGVudHJ5XG4gICAqL1xuICBwdWJsaWMgaXNMb2NrZWQoaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBjaGVjayBmb3Igc2VsZWN0aW9uVHlwZSB3aWxsIGJvb3N0IHRoZSBwZXJmb3JtZW5jZSBieSBOT1Qgc2VhcmNoaW5nXG4gICAgICogaW50byB0aGUgYXJyYXkgd2hlbiB0aGVyZSBpcyBubyBuZWVkIGZvciB0aGF0LlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNhbkl0QmVMb2NrZWQoKSkge1xuICAgICAgY29uc3QgcmVmID0gdGhpcy5faXRlbXMudHJhY2tCeShcbiAgICAgICAgdGhpcy5faXRlbXMuYWxsLmZpbmRJbmRleChtYXliZSA9PiBtYXliZSA9PT0gaXRlbSksXG4gICAgICAgIGl0ZW1cbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5sb2NrZWRSZWZzLmluZGV4T2YocmVmKSA+IC0xO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIG9yIGRlc2VsZWN0cyBhbGwgY3VycmVudGx5IGRpc3BsYXllZCBpdGVtc1xuICAgKi9cbiAgcHVibGljIHRvZ2dsZUFsbCgpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uVHlwZS5Ob25lIHx8IHRoaXMuX3NlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuU2luZ2xlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIGV2ZXJ5IGN1cnJlbnRseSBkaXNwbGF5ZWQgaXRlbSBpcyBhbHJlYWR5IHNlbGVjdGVkLCB3ZSBjbGVhciB0aGVtLlxuICAgICAqIElmIGF0IGxlYXN0IG9uZSBpdGVtIGlzbid0IHNlbGVjdGVkLCB3ZSBzZWxlY3QgZXZlcnkgY3VycmVudGx5IGRpc3BsYXllZCBpdGVtLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5faXRlbXMuZGlzcGxheWVkLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VycmVudC5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gLTEgJiYgdGhpcy5pc0xvY2tlZChpdGVtKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLmRlc2VsZWN0SXRlbShjdXJyZW50SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faXRlbXMuZGlzcGxheWVkLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnQuaW5kZXhPZihpdGVtKSA8IDAgJiYgdGhpcy5pc0xvY2tlZChpdGVtKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,85 @@
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 { Injectable } from '@angular/core';
7
+ import { Subject } from 'rxjs';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./state-debouncer.provider";
10
+ export class Sort {
11
+ constructor(stateDebouncer) {
12
+ this.stateDebouncer = stateDebouncer;
13
+ /**
14
+ * Ascending order if false, descending if true
15
+ */
16
+ this._reverse = false;
17
+ /**
18
+ * The Observable that lets other classes subscribe to sort changes
19
+ */
20
+ this._change = new Subject();
21
+ }
22
+ get comparator() {
23
+ return this._comparator;
24
+ }
25
+ set comparator(value) {
26
+ this.stateDebouncer.changeStart();
27
+ this._comparator = value;
28
+ this.emitChange();
29
+ this.stateDebouncer.changeDone();
30
+ }
31
+ get reverse() {
32
+ return this._reverse;
33
+ }
34
+ set reverse(value) {
35
+ this.stateDebouncer.changeStart();
36
+ this._reverse = value;
37
+ this.emitChange();
38
+ this.stateDebouncer.changeDone();
39
+ }
40
+ emitChange() {
41
+ this._change.next(this);
42
+ }
43
+ // We do not want to expose the Subject itself, but the Observable which is read-only
44
+ get change() {
45
+ return this._change.asObservable();
46
+ }
47
+ /**
48
+ * Sets a comparator as the current one, or toggles reverse if the comparator is already used. The
49
+ * optional forceReverse input parameter allows to override that toggling behavior by sorting in
50
+ * reverse order if `true`.
51
+ *
52
+ * @memberof Sort
53
+ */
54
+ toggle(sortBy, forceReverse) {
55
+ this.stateDebouncer.changeStart();
56
+ // We modify private properties directly, to batch the change event
57
+ if (this.comparator === sortBy) {
58
+ this._reverse = typeof forceReverse !== 'undefined' ? forceReverse || !this._reverse : !this._reverse;
59
+ }
60
+ else {
61
+ this._comparator = sortBy;
62
+ this._reverse = typeof forceReverse !== 'undefined' ? forceReverse : false;
63
+ }
64
+ this.emitChange();
65
+ this.stateDebouncer.changeDone();
66
+ }
67
+ /**
68
+ * Clears the current sorting order
69
+ */
70
+ clear() {
71
+ this.comparator = null;
72
+ }
73
+ /**
74
+ * Compares two objects according to the current comparator
75
+ */
76
+ compare(a, b) {
77
+ return (this.reverse ? -1 : 1) * this.comparator.compare(a, b);
78
+ }
79
+ }
80
+ Sort.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: Sort, deps: [{ token: i1.StateDebouncer }], target: i0.ɵɵFactoryTarget.Injectable });
81
+ Sort.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: Sort });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: Sort, decorators: [{
83
+ type: Injectable
84
+ }], ctorParameters: function () { return [{ type: i1.StateDebouncer }]; } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvcHJvdmlkZXJzL3NvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTS9CLE1BQU0sT0FBTyxJQUFJO0lBQ2YsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZ0JsRDs7V0FFRztRQUNLLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFXekI7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQWpDWSxDQUFDO0lBTXRELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLEtBQXdDO1FBQzVELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQU1ELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBTU8sVUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QscUZBQXFGO0lBQ3JGLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQXlDLEVBQUUsWUFBc0I7UUFDN0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxtRUFBbUU7UUFDbkUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sWUFBWSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZHO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sWUFBWSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDNUU7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLENBQUksRUFBRSxDQUFJO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O2lHQTNFVSxJQUFJO3FHQUFKLElBQUk7MkZBQUosSUFBSTtrQkFEaEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2xyRGF0YWdyaWRDb21wYXJhdG9ySW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb21wYXJhdG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0ZURlYm91bmNlciB9IGZyb20gJy4vc3RhdGUtZGVib3VuY2VyLnByb3ZpZGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNvcnQ8VCA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0YXRlRGVib3VuY2VyOiBTdGF0ZURlYm91bmNlcikge31cblxuICAvKipcbiAgICogQ3VycmVudGx5IGFjdGl2ZSBjb21wYXJhdG9yXG4gICAqL1xuICBwcml2YXRlIF9jb21wYXJhdG9yOiBDbHJEYXRhZ3JpZENvbXBhcmF0b3JJbnRlcmZhY2U8VD47XG4gIHB1YmxpYyBnZXQgY29tcGFyYXRvcigpOiBDbHJEYXRhZ3JpZENvbXBhcmF0b3JJbnRlcmZhY2U8VD4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wYXJhdG9yO1xuICB9XG4gIHB1YmxpYyBzZXQgY29tcGFyYXRvcih2YWx1ZTogQ2xyRGF0YWdyaWRDb21wYXJhdG9ySW50ZXJmYWNlPFQ+KSB7XG4gICAgdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpO1xuICAgIHRoaXMuX2NvbXBhcmF0b3IgPSB2YWx1ZTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc2NlbmRpbmcgb3JkZXIgaWYgZmFsc2UsIGRlc2NlbmRpbmcgaWYgdHJ1ZVxuICAgKi9cbiAgcHJpdmF0ZSBfcmV2ZXJzZSA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IHJldmVyc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JldmVyc2U7XG4gIH1cbiAgcHVibGljIHNldCByZXZlcnNlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpO1xuICAgIHRoaXMuX3JldmVyc2UgPSB2YWx1ZTtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgT2JzZXJ2YWJsZSB0aGF0IGxldHMgb3RoZXIgY2xhc3NlcyBzdWJzY3JpYmUgdG8gc29ydCBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIF9jaGFuZ2UgPSBuZXcgU3ViamVjdDxTb3J0PFQ+PigpO1xuICBwcml2YXRlIGVtaXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5fY2hhbmdlLm5leHQodGhpcyk7XG4gIH1cbiAgLy8gV2UgZG8gbm90IHdhbnQgdG8gZXhwb3NlIHRoZSBTdWJqZWN0IGl0c2VsZiwgYnV0IHRoZSBPYnNlcnZhYmxlIHdoaWNoIGlzIHJlYWQtb25seVxuICBwdWJsaWMgZ2V0IGNoYW5nZSgpOiBPYnNlcnZhYmxlPFNvcnQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYSBjb21wYXJhdG9yIGFzIHRoZSBjdXJyZW50IG9uZSwgb3IgdG9nZ2xlcyByZXZlcnNlIGlmIHRoZSBjb21wYXJhdG9yIGlzIGFscmVhZHkgdXNlZC4gVGhlXG4gICAqIG9wdGlvbmFsIGZvcmNlUmV2ZXJzZSBpbnB1dCBwYXJhbWV0ZXIgYWxsb3dzIHRvIG92ZXJyaWRlIHRoYXQgdG9nZ2xpbmcgYmVoYXZpb3IgYnkgc29ydGluZyBpblxuICAgKiByZXZlcnNlIG9yZGVyIGlmIGB0cnVlYC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFNvcnRcbiAgICovXG4gIHB1YmxpYyB0b2dnbGUoc29ydEJ5OiBDbHJEYXRhZ3JpZENvbXBhcmF0b3JJbnRlcmZhY2U8VD4sIGZvcmNlUmV2ZXJzZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZVN0YXJ0KCk7XG4gICAgLy8gV2UgbW9kaWZ5IHByaXZhdGUgcHJvcGVydGllcyBkaXJlY3RseSwgdG8gYmF0Y2ggdGhlIGNoYW5nZSBldmVudFxuICAgIGlmICh0aGlzLmNvbXBhcmF0b3IgPT09IHNvcnRCeSkge1xuICAgICAgdGhpcy5fcmV2ZXJzZSA9IHR5cGVvZiBmb3JjZVJldmVyc2UgIT09ICd1bmRlZmluZWQnID8gZm9yY2VSZXZlcnNlIHx8ICF0aGlzLl9yZXZlcnNlIDogIXRoaXMuX3JldmVyc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbXBhcmF0b3IgPSBzb3J0Qnk7XG4gICAgICB0aGlzLl9yZXZlcnNlID0gdHlwZW9mIGZvcmNlUmV2ZXJzZSAhPT0gJ3VuZGVmaW5lZCcgPyBmb3JjZVJldmVyc2UgOiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjdXJyZW50IHNvcnRpbmcgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLmNvbXBhcmF0b3IgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHR3byBvYmplY3RzIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBjb21wYXJhdG9yXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZShhOiBULCBiOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucmV2ZXJzZSA/IC0xIDogMSkgKiB0aGlzLmNvbXBhcmF0b3IuY29tcGFyZShhLCBiKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,42 @@
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 { Injectable } from '@angular/core';
7
+ import { Subject } from 'rxjs';
8
+ import * as i0 from "@angular/core";
9
+ /*
10
+ * This provider implements some form of synchronous debouncing through a lock pattern
11
+ * to avoid emitting multiple state changes for a single user action.
12
+ */
13
+ export class StateDebouncer {
14
+ constructor() {
15
+ /**
16
+ * The Observable that lets other classes subscribe to global state changes
17
+ */
18
+ this._change = new Subject();
19
+ /*
20
+ * This is the lock, to only emit once all the changes have finished processing
21
+ */
22
+ this.nbChanges = 0;
23
+ }
24
+ // We do not want to expose the Subject itself, but the Observable which is read-only
25
+ get change() {
26
+ return this._change.asObservable();
27
+ }
28
+ changeStart() {
29
+ this.nbChanges++;
30
+ }
31
+ changeDone() {
32
+ if (--this.nbChanges === 0) {
33
+ this._change.next();
34
+ }
35
+ }
36
+ }
37
+ StateDebouncer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: StateDebouncer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
+ StateDebouncer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: StateDebouncer });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: StateDebouncer, decorators: [{
40
+ type: Injectable
41
+ }] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZGVib3VuY2VyLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9wcm92aWRlcnMvc3RhdGUtZGVib3VuY2VyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRS9COzs7R0FHRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRUU7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU10Qzs7V0FFRztRQUNLLGNBQVMsR0FBRyxDQUFDLENBQUM7S0FXdkI7SUFuQkMscUZBQXFGO0lBQ3JGLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBT00sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7OzJHQXZCVSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vKlxuICogVGhpcyBwcm92aWRlciBpbXBsZW1lbnRzIHNvbWUgZm9ybSBvZiBzeW5jaHJvbm91cyBkZWJvdW5jaW5nIHRocm91Z2ggYSBsb2NrIHBhdHRlcm5cbiAqIHRvIGF2b2lkIGVtaXR0aW5nIG11bHRpcGxlIHN0YXRlIGNoYW5nZXMgZm9yIGEgc2luZ2xlIHVzZXIgYWN0aW9uLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVEZWJvdW5jZXIge1xuICAvKipcbiAgICogVGhlIE9ic2VydmFibGUgdGhhdCBsZXRzIG90aGVyIGNsYXNzZXMgc3Vic2NyaWJlIHRvIGdsb2JhbCBzdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIF9jaGFuZ2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAvLyBXZSBkbyBub3Qgd2FudCB0byBleHBvc2UgdGhlIFN1YmplY3QgaXRzZWxmLCBidXQgdGhlIE9ic2VydmFibGUgd2hpY2ggaXMgcmVhZC1vbmx5XG4gIHB1YmxpYyBnZXQgY2hhbmdlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIGlzIHRoZSBsb2NrLCB0byBvbmx5IGVtaXQgb25jZSBhbGwgdGhlIGNoYW5nZXMgaGF2ZSBmaW5pc2hlZCBwcm9jZXNzaW5nXG4gICAqL1xuICBwcml2YXRlIG5iQ2hhbmdlcyA9IDA7XG5cbiAgcHVibGljIGNoYW5nZVN0YXJ0KCkge1xuICAgIHRoaXMubmJDaGFuZ2VzKys7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRG9uZSgpIHtcbiAgICBpZiAoLS10aGlzLm5iQ2hhbmdlcyA9PT0gMCkge1xuICAgICAgdGhpcy5fY2hhbmdlLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==