@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,63 @@
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
+ export class ButtonHubService {
10
+ constructor() {
11
+ this.buttonsReady = false;
12
+ this._previousBtnClicked = new Subject();
13
+ this._nextBtnClicked = new Subject();
14
+ this._dangerBtnClicked = new Subject();
15
+ this._cancelBtnClicked = new Subject();
16
+ this._finishBtnClicked = new Subject();
17
+ this._customBtnClicked = new Subject();
18
+ }
19
+ get previousBtnClicked() {
20
+ return this._previousBtnClicked.asObservable();
21
+ }
22
+ get nextBtnClicked() {
23
+ return this._nextBtnClicked.asObservable();
24
+ }
25
+ get dangerBtnClicked() {
26
+ return this._dangerBtnClicked.asObservable();
27
+ }
28
+ get cancelBtnClicked() {
29
+ return this._cancelBtnClicked.asObservable();
30
+ }
31
+ get finishBtnClicked() {
32
+ return this._finishBtnClicked.asObservable();
33
+ }
34
+ get customBtnClicked() {
35
+ return this._customBtnClicked.asObservable();
36
+ }
37
+ buttonClicked(buttonType) {
38
+ if ('previous' === buttonType) {
39
+ this._previousBtnClicked.next();
40
+ }
41
+ else if ('next' === buttonType) {
42
+ this._nextBtnClicked.next();
43
+ }
44
+ else if ('finish' === buttonType) {
45
+ this._finishBtnClicked.next();
46
+ }
47
+ else if ('danger' === buttonType) {
48
+ this._dangerBtnClicked.next();
49
+ }
50
+ else if ('cancel' === buttonType) {
51
+ this._cancelBtnClicked.next();
52
+ }
53
+ else {
54
+ this._customBtnClicked.next(buttonType);
55
+ }
56
+ }
57
+ }
58
+ ButtonHubService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ButtonHubService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
59
+ ButtonHubService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ButtonHubService });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ButtonHubService, decorators: [{
61
+ type: Injectable
62
+ }] });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWh1Yi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvd2l6YXJkL3Byb3ZpZGVycy9idXR0b24taHViLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVTLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXBCLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFLekMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBS3JDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFLdkMsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUt2QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBS3ZDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7S0FvQmhEO0lBNUNDLElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFHRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUdELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFHRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWtCO1FBQ3JDLElBQUksVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakM7YUFBTSxJQUFJLE1BQU0sS0FBSyxVQUFVLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM3QjthQUFNLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQy9CO2FBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7OzZHQS9DVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCdXR0b25IdWJTZXJ2aWNlIHtcbiAgcHVibGljIGJ1dHRvbnNSZWFkeSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzQnRuQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIGdldCBwcmV2aW91c0J0bkNsaWNrZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNCdG5DbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbmV4dEJ0bkNsaWNrZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBnZXQgbmV4dEJ0bkNsaWNrZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fbmV4dEJ0bkNsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9kYW5nZXJCdG5DbGlja2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgZ2V0IGRhbmdlckJ0bkNsaWNrZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGFuZ2VyQnRuQ2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbmNlbEJ0bkNsaWNrZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBnZXQgY2FuY2VsQnRuQ2xpY2tlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jYW5jZWxCdG5DbGlja2VkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluaXNoQnRuQ2xpY2tlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHVibGljIGdldCBmaW5pc2hCdG5DbGlja2VkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbmlzaEJ0bkNsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9jdXN0b21CdG5DbGlja2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgZ2V0IGN1c3RvbUJ0bkNsaWNrZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tQnRuQ2xpY2tlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBidXR0b25DbGlja2VkKGJ1dHRvblR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICgncHJldmlvdXMnID09PSBidXR0b25UeXBlKSB7XG4gICAgICB0aGlzLl9wcmV2aW91c0J0bkNsaWNrZWQubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoJ25leHQnID09PSBidXR0b25UeXBlKSB7XG4gICAgICB0aGlzLl9uZXh0QnRuQ2xpY2tlZC5uZXh0KCk7XG4gICAgfSBlbHNlIGlmICgnZmluaXNoJyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fZmluaXNoQnRuQ2xpY2tlZC5uZXh0KCk7XG4gICAgfSBlbHNlIGlmICgnZGFuZ2VyJyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fZGFuZ2VyQnRuQ2xpY2tlZC5uZXh0KCk7XG4gICAgfSBlbHNlIGlmICgnY2FuY2VsJyA9PT0gYnV0dG9uVHlwZSkge1xuICAgICAgdGhpcy5fY2FuY2VsQnRuQ2xpY2tlZC5uZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2N1c3RvbUJ0bkNsaWNrZWQubmV4dChidXR0b25UeXBlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
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 * as i0 from "@angular/core";
8
+ import * as i1 from "./wizard-navigation.service";
9
+ export class HeaderActionService {
10
+ // this service communicates information about the presence/display of header actions
11
+ // across the wizard
12
+ constructor(navService) {
13
+ this.navService = navService;
14
+ }
15
+ get wizardHasHeaderActions() {
16
+ const wizardHdrActions = this.wizardHeaderActions;
17
+ if (!wizardHdrActions) {
18
+ return false;
19
+ }
20
+ return wizardHdrActions.toArray().length > 0;
21
+ }
22
+ get currentPageHasHeaderActions() {
23
+ return this.navService.currentPage ? this.navService.currentPage.hasHeaderActions : false;
24
+ }
25
+ get showWizardHeaderActions() {
26
+ return !this.currentPageHasHeaderActions && this.wizardHasHeaderActions;
27
+ }
28
+ get displayHeaderActionsWrapper() {
29
+ return this.currentPageHasHeaderActions || this.wizardHasHeaderActions;
30
+ }
31
+ }
32
+ HeaderActionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: HeaderActionService, deps: [{ token: i1.WizardNavigationService }], target: i0.ɵɵFactoryTarget.Injectable });
33
+ HeaderActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: HeaderActionService });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: HeaderActionService, decorators: [{
35
+ type: Injectable
36
+ }], ctorParameters: function () { return [{ type: i1.WizardNavigationService }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3dpemFyZC9wcm92aWRlcnMvaGVhZGVyLWFjdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7O0FBS3RELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIscUZBQXFGO0lBQ3JGLG9CQUFvQjtJQUVwQixZQUFtQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUFHLENBQUM7SUFJMUQsSUFBVyxzQkFBc0I7UUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsMkJBQTJCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUYsQ0FBQztJQUVELElBQVcsdUJBQXVCO1FBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFXLDJCQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDekUsQ0FBQzs7Z0hBMUJVLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xyV2l6YXJkSGVhZGVyQWN0aW9uIH0gZnJvbSAnLi4vd2l6YXJkLWhlYWRlci1hY3Rpb24nO1xuaW1wb3J0IHsgV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL3dpemFyZC1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGVhZGVyQWN0aW9uU2VydmljZSB7XG4gIC8vIHRoaXMgc2VydmljZSBjb21tdW5pY2F0ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByZXNlbmNlL2Rpc3BsYXkgb2YgaGVhZGVyIGFjdGlvbnNcbiAgLy8gYWNyb3NzIHRoZSB3aXphcmRcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmF2U2VydmljZTogV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UpIHt9XG5cbiAgcHVibGljIHdpemFyZEhlYWRlckFjdGlvbnM6IFF1ZXJ5TGlzdDxDbHJXaXphcmRIZWFkZXJBY3Rpb24+O1xuXG4gIHB1YmxpYyBnZXQgd2l6YXJkSGFzSGVhZGVyQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICBjb25zdCB3aXphcmRIZHJBY3Rpb25zID0gdGhpcy53aXphcmRIZWFkZXJBY3Rpb25zO1xuICAgIGlmICghd2l6YXJkSGRyQWN0aW9ucykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gd2l6YXJkSGRyQWN0aW9ucy50b0FycmF5KCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFBhZ2VIYXNIZWFkZXJBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdlNlcnZpY2UuY3VycmVudFBhZ2UgPyB0aGlzLm5hdlNlcnZpY2UuY3VycmVudFBhZ2UuaGFzSGVhZGVyQWN0aW9ucyA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93V2l6YXJkSGVhZGVyQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY3VycmVudFBhZ2VIYXNIZWFkZXJBY3Rpb25zICYmIHRoaXMud2l6YXJkSGFzSGVhZGVyQWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheUhlYWRlckFjdGlvbnNXcmFwcGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlSGFzSGVhZGVyQWN0aW9ucyB8fCB0aGlzLndpemFyZEhhc0hlYWRlckFjdGlvbnM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,361 @@
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
+ * PageCollectionService manages the collection of pages assigned to the wizard and offers
11
+ * a number of functions useful across the wizards providers and subcomponents -- all related
12
+ * to essentially lookups on the collection of pages.
13
+ *
14
+ * The easiest way to access PageCollectionService is via the wizard. The
15
+ * following example would allow you to access your instance of the wizard from your host
16
+ * component and thereby access the page collection via YourHostComponent.wizard.pageCollection.
17
+ *
18
+ * @example
19
+ * <clr-wizard #wizard ...>
20
+ *
21
+ * @example
22
+ * export class YourHostComponent {
23
+ * @ViewChild("wizard") wizard: Wizard;
24
+ * ...
25
+ * }
26
+ *
27
+ * The heart of the page collection is the query list of pages, which it is assigned as a
28
+ * reference to the Wizard.pages QueryList when the wizard is created.
29
+ *
30
+ */
31
+ export class PageCollectionService {
32
+ constructor() {
33
+ // used by the navService to navigate back to first possible step after
34
+ // pages are reset
35
+ /**
36
+ *
37
+ * @memberof PageCollectionService
38
+ */
39
+ this._pagesReset = new Subject();
40
+ }
41
+ /**
42
+ * Converts the PageCollectionService.pages QueryList to an array and returns it.
43
+ *
44
+ * Useful for many instances when you would prefer a QueryList to act like an array.
45
+ *
46
+ * @memberof PageCollectionService
47
+ */
48
+ get pagesAsArray() {
49
+ return this.pages ? this.pages.toArray() : [];
50
+ }
51
+ /**
52
+ * Returns the length of the pages query list.
53
+ *
54
+ * @memberof PageCollectionService
55
+ */
56
+ get pagesCount() {
57
+ return this.pages ? this.pages.length : 0;
58
+ }
59
+ /**
60
+ * Returns the next-to-last page in the query list of pages. Operates as a getter
61
+ * so that it isn't working with stale data.
62
+ *
63
+ * @memberof PageCollectionService
64
+ */
65
+ get penultimatePage() {
66
+ const pageCount = this.pagesCount;
67
+ if (pageCount < 2) {
68
+ return null;
69
+ }
70
+ return this.pagesAsArray[pageCount - 2];
71
+ }
72
+ /**
73
+ * Returns the last page in the query list of pages. Operates as a getter
74
+ * so that it isn't working with stale data.
75
+ *
76
+ * @memberof PageCollectionService
77
+ */
78
+ get lastPage() {
79
+ const pageCount = this.pagesCount;
80
+ if (pageCount < 1) {
81
+ return null;
82
+ }
83
+ return this.pagesAsArray[pageCount - 1];
84
+ }
85
+ /**
86
+ * Returns the first page in the query list of pages. Operates as a getter
87
+ * so that it isn't working with stale data.
88
+ *
89
+ * @memberof PageCollectionService
90
+ */
91
+ get firstPage() {
92
+ if (!this.pagesCount) {
93
+ return null;
94
+ }
95
+ return this.pagesAsArray[0];
96
+ }
97
+ /**
98
+ * Used mostly internally, but accepts a string ID and returns a ClrWizardPage
99
+ * object that matches the ID passed. Note that IDs here should include the prefix
100
+ * "clr-wizard-page-".
101
+ *
102
+ * Returns the next-to-last page in the query list of pages. Operates as a getter
103
+ * so that it isn't working with stale data.
104
+ *
105
+ * @memberof PageCollectionService
106
+ */
107
+ getPageById(id) {
108
+ const foundPages = this.pages.filter((page) => id === page.id);
109
+ return this.checkResults(foundPages, id);
110
+ }
111
+ /**
112
+ * Accepts s number as a parameter and treats that number as the index of the page
113
+ * you're looking for in the collection of pages. Returns a wizard page object.
114
+ *
115
+ * @memberof PageCollectionService
116
+ */
117
+ getPageByIndex(index) {
118
+ const pageCount = this.pagesCount;
119
+ const pagesLastIndex = pageCount > 1 ? pageCount - 1 : 0;
120
+ if (index < 0) {
121
+ throw new Error('Cannot retrieve page with index of ' + index);
122
+ }
123
+ if (index > pagesLastIndex) {
124
+ throw new Error('Page index is greater than length of pages array.');
125
+ }
126
+ return this.pagesAsArray[index];
127
+ }
128
+ /**
129
+ * Takes a wizard page object as a parameter and returns its index in the
130
+ * collection of pages.
131
+ *
132
+ * @memberof PageCollectionService
133
+ */
134
+ getPageIndex(page) {
135
+ const index = this.pagesAsArray.indexOf(page);
136
+ if (index < 0) {
137
+ throw new Error('Requested page cannot be found in collection of pages.');
138
+ }
139
+ return index;
140
+ }
141
+ /**
142
+ * Consolidates guard logic that prevents a couple of unfortunate edge cases with
143
+ * look ups on the collection of pages.
144
+ *
145
+ * @memberof PageCollectionService
146
+ */
147
+ checkResults(results, requestedPageId) {
148
+ const foundPagesCount = results.length || 0;
149
+ if (foundPagesCount > 1) {
150
+ throw new Error('More than one page has the requested id ' + requestedPageId + '.');
151
+ }
152
+ else if (foundPagesCount < 1) {
153
+ throw new Error('No page can be found with the id ' + requestedPageId + '.');
154
+ }
155
+ else {
156
+ return results[0];
157
+ }
158
+ }
159
+ /**
160
+ * Accepts two numeric indexes and returns an array of wizard page objects that include
161
+ * all wizard pages in the page collection from the first index to the second.
162
+ *
163
+ * @memberof PageCollectionService
164
+ */
165
+ pageRange(start, end) {
166
+ let pages = [];
167
+ if (start < 0 || end < 0) {
168
+ return [];
169
+ }
170
+ if (start === null || typeof start === 'undefined' || isNaN(start)) {
171
+ return [];
172
+ }
173
+ if (end === null || typeof end === 'undefined' || isNaN(end)) {
174
+ return [];
175
+ }
176
+ if (end > this.pagesCount) {
177
+ end = this.pagesCount;
178
+ }
179
+ pages = this.pagesAsArray;
180
+ if (end - start === 0) {
181
+ // just return the one page they want
182
+ return [this.getPageByIndex(start)];
183
+ }
184
+ // slice end does not include item referenced by end index, which is weird for users
185
+ // incrementing end index here to correct that so users and other methods
186
+ // don't have to think about it
187
+ end = end + 1;
188
+ // slice does not return the last one in the range but it does include the first one
189
+ // does not modify original array
190
+ return pages.slice(start, end);
191
+ }
192
+ /**
193
+ * Accepts two wizard page objects and returns those page objects with all other page
194
+ * objects between them in the page collection. It doesn't care which page is ahead of the
195
+ * other in the parameters. It will be smart enough to figure that out on its own.
196
+ *
197
+ * @memberof PageCollectionService
198
+ */
199
+ getPageRangeFromPages(page, otherPage) {
200
+ const pageIndex = this.getPageIndex(page);
201
+ const otherPageIndex = this.getPageIndex(otherPage);
202
+ let startIndex;
203
+ let endIndex;
204
+ if (pageIndex <= otherPageIndex) {
205
+ startIndex = pageIndex;
206
+ endIndex = otherPageIndex;
207
+ }
208
+ else {
209
+ startIndex = otherPageIndex;
210
+ endIndex = pageIndex;
211
+ }
212
+ return this.pageRange(startIndex, endIndex);
213
+ }
214
+ /**
215
+ * Takes a wizard page object as a parameter and returns the wizard page object of
216
+ * the page immediately before it in the page collection. Returns null if there is
217
+ * no page before the page it is passed.
218
+ *
219
+ * @memberof PageCollectionService
220
+ */
221
+ getPreviousPage(page) {
222
+ const myPageIndex = this.getPageIndex(page);
223
+ const previousPageIndex = myPageIndex - 1;
224
+ if (previousPageIndex < 0) {
225
+ return null;
226
+ }
227
+ return this.getPageByIndex(previousPageIndex);
228
+ }
229
+ /**
230
+ * Accepts a wizard page object as a parameter and returns a Boolean that says if
231
+ * the page you sent it is complete.
232
+ *
233
+ * @memberof PageCollectionService
234
+ */
235
+ previousPageIsCompleted(page) {
236
+ if (!page) {
237
+ return false;
238
+ }
239
+ const previousPage = this.getPreviousPage(page);
240
+ if (null === previousPage) {
241
+ // page is the first page. no previous page.
242
+ return true;
243
+ }
244
+ return previousPage.completed;
245
+ }
246
+ /**
247
+ * Takes a wizard page object as a parameter and returns the wizard page object of
248
+ * the page immediately after it in the page collection. Returns null if there is
249
+ * no page after the page it is passed.
250
+ *
251
+ * @memberof PageCollectionService
252
+ */
253
+ getNextPage(page) {
254
+ const myPageIndex = this.getPageIndex(page);
255
+ const nextPageIndex = myPageIndex + 1;
256
+ if (nextPageIndex >= this.pagesAsArray.length) {
257
+ return null;
258
+ }
259
+ return this.getPageByIndex(nextPageIndex);
260
+ }
261
+ /**
262
+ * Takes a wizard page object as a parameter and generates a step item id from the
263
+ * page ID. Returns the generated step item ID as a string.
264
+ *
265
+ * @memberof PageCollectionService
266
+ */
267
+ getStepItemIdForPage(page) {
268
+ const pageId = page.id;
269
+ const pageIdParts = pageId.split('-').reverse();
270
+ pageIdParts[1] = 'step';
271
+ return pageIdParts.reverse().join('-');
272
+ }
273
+ /**
274
+ * Generally only used internally to mark that a specific page has been "committed".
275
+ * This involves marking the page complete and firing the ClrWizardPage.onCommit
276
+ * (clrWizardPageOnCommit) output. Takes the wizard page object that you intend to
277
+ * mark completed as a parameter.
278
+ *
279
+ * @memberof PageCollectionService
280
+ */
281
+ commitPage(page) {
282
+ const pageHasOverrides = page.stopNext || page.preventDefault;
283
+ page.completed = true;
284
+ if (!pageHasOverrides) {
285
+ // prevent loop of event emission; alternate flows work off
286
+ // of event emitters this is how they break that cycle.
287
+ page.onCommit.emit(page.id);
288
+ }
289
+ }
290
+ /**
291
+ * An observable that the navigation service listens to in order to know when
292
+ * the page collection completed states have been reset to false so that way it
293
+ * can also reset the navigation to make the first page in the page collection
294
+ * current/active.
295
+ *
296
+ * @memberof PageCollectionService
297
+ */
298
+ get pagesReset() {
299
+ return this._pagesReset.asObservable();
300
+ }
301
+ /**
302
+ * Sets all completed states of the pages in the page collection to false and
303
+ * notifies the navigation service to likewise reset the navigation.
304
+ *
305
+ * @memberof PageCollectionService
306
+ */
307
+ reset() {
308
+ this.pagesAsArray.forEach((page) => {
309
+ page.completed = false;
310
+ });
311
+ this._pagesReset.next(true);
312
+ }
313
+ /**
314
+ * Rolls through all the pages in the page collection to make sure there are no
315
+ * incomplete pages sandwiched between completed pages in the workflow. Identifies
316
+ * the first incomplete page index and sets all pages behind it to a completed
317
+ * state of false.
318
+ *
319
+ * @memberof PageCollectionService
320
+ */
321
+ updateCompletedStates() {
322
+ const firstIncompleteIndex = this.findFirstIncompletePageIndex();
323
+ if (firstIncompleteIndex === this.pagesAsArray.length - 1) {
324
+ // all complete no need to do anything
325
+ return;
326
+ }
327
+ this.pagesAsArray.forEach((page, index) => {
328
+ if (index > firstIncompleteIndex) {
329
+ page.completed = false;
330
+ }
331
+ });
332
+ }
333
+ /**
334
+ * Retrieves the index of the first incomplete page in the page collection.
335
+ *
336
+ * @memberof PageCollectionService
337
+ */
338
+ findFirstIncompletePageIndex() {
339
+ let returnIndex = null;
340
+ this.pagesAsArray.forEach((page, index) => {
341
+ if (null === returnIndex && false === page.completed) {
342
+ returnIndex = index;
343
+ }
344
+ });
345
+ // fallthrough, all completed, return last page
346
+ if (null === returnIndex) {
347
+ returnIndex = this.pagesCount - 1;
348
+ }
349
+ return returnIndex;
350
+ }
351
+ findFirstIncompletePage() {
352
+ const myIncompleteIndex = this.findFirstIncompletePageIndex();
353
+ return this.pagesAsArray[myIncompleteIndex];
354
+ }
355
+ }
356
+ PageCollectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: PageCollectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
357
+ PageCollectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: PageCollectionService });
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: PageCollectionService, decorators: [{
359
+ type: Injectable
360
+ }] });
361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb2xsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy93aXphcmQvcHJvdmlkZXJzL3BhZ2UtY29sbGVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSS9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFFSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBMlNFLHVFQUF1RTtRQUN2RSxrQkFBa0I7UUFFbEI7OztXQUdHO1FBQ0ssZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0tBMkU5QztJQWxYQzs7Ozs7O09BTUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsZUFBZTtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRWxDLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJ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QUMvRCxJQUFJLEtBQUssR0FBRyxvQkFBb0IsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksNEJBQTRCO1FBQ2pDLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQW1CLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxJQUFJLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNwRCxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCwrQ0FBK0M7UUFDL0MsSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQ3hCLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDOztrSEEzWFUscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENscldpemFyZFBhZ2UgfSBmcm9tICcuLi93aXphcmQtcGFnZSc7XG5cbi8qKlxuICogUGFnZUNvbGxlY3Rpb25TZXJ2aWNlIG1hbmFnZXMgdGhlIGNvbGxlY3Rpb24gb2YgcGFnZXMgYXNzaWduZWQgdG8gdGhlIHdpemFyZCBhbmQgb2ZmZXJzXG4gKiBhIG51bWJlciBvZiBmdW5jdGlvbnMgdXNlZnVsIGFjcm9zcyB0aGUgd2l6YXJkcyBwcm92aWRlcnMgYW5kIHN1YmNvbXBvbmVudHMgLS0gYWxsIHJlbGF0ZWRcbiAqIHRvIGVzc2VudGlhbGx5IGxvb2t1cHMgb24gdGhlIGNvbGxlY3Rpb24gb2YgcGFnZXMuXG4gKlxuICogVGhlIGVhc2llc3Qgd2F5IHRvIGFjY2VzcyBQYWdlQ29sbGVjdGlvblNlcnZpY2UgaXMgdmlhIHRoZSB3aXphcmQuIFRoZVxuICogZm9sbG93aW5nIGV4YW1wbGUgd291bGQgYWxsb3cgeW91IHRvIGFjY2VzcyB5b3VyIGluc3RhbmNlIG9mIHRoZSB3aXphcmQgZnJvbSB5b3VyIGhvc3RcbiAqIGNvbXBvbmVudCBhbmQgdGhlcmVieSBhY2Nlc3MgdGhlIHBhZ2UgY29sbGVjdGlvbiB2aWEgWW91ckhvc3RDb21wb25lbnQud2l6YXJkLnBhZ2VDb2xsZWN0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8Y2xyLXdpemFyZCAjd2l6YXJkIC4uLj5cbiAqXG4gKiBAZXhhbXBsZVxuICogZXhwb3J0IGNsYXNzIFlvdXJIb3N0Q29tcG9uZW50IHtcbiAqICAgQFZpZXdDaGlsZChcIndpemFyZFwiKSB3aXphcmQ6IFdpemFyZDtcbiAqICAgLi4uXG4gKiB9XG4gKlxuICogVGhlIGhlYXJ0IG9mIHRoZSBwYWdlIGNvbGxlY3Rpb24gaXMgdGhlIHF1ZXJ5IGxpc3Qgb2YgcGFnZXMsIHdoaWNoIGl0IGlzIGFzc2lnbmVkIGFzIGFcbiAqIHJlZmVyZW5jZSB0byB0aGUgV2l6YXJkLnBhZ2VzIFF1ZXJ5TGlzdCB3aGVuIHRoZSB3aXphcmQgaXMgY3JlYXRlZC5cbiAqXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYWdlQ29sbGVjdGlvblNlcnZpY2Uge1xuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIFdpemFyZC5wYWdlcyBRdWVyeUxpc3QuXG4gICAqXG4gICAqIFBvcHVsYXRlZCB3aGVuIHRoZSB3aXphcmQgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIHBhZ2VzOiBRdWVyeUxpc3Q8Q2xyV2l6YXJkUGFnZT47XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBQYWdlQ29sbGVjdGlvblNlcnZpY2UucGFnZXMgUXVlcnlMaXN0IHRvIGFuIGFycmF5IGFuZCByZXR1cm5zIGl0LlxuICAgKlxuICAgKiBVc2VmdWwgZm9yIG1hbnkgaW5zdGFuY2VzIHdoZW4geW91IHdvdWxkIHByZWZlciBhIFF1ZXJ5TGlzdCB0byBhY3QgbGlrZSBhbiBhcnJheS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlc0FzQXJyYXkoKTogQ2xyV2l6YXJkUGFnZVtdIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlcyA/IHRoaXMucGFnZXMudG9BcnJheSgpIDogW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBwYWdlcyBxdWVyeSBsaXN0LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlcyA/IHRoaXMucGFnZXMubGVuZ3RoIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBuZXh0LXRvLWxhc3QgcGFnZSBpbiB0aGUgcXVlcnkgbGlzdCBvZiBwYWdlcy4gT3BlcmF0ZXMgYXMgYSBnZXR0ZXJcbiAgICogc28gdGhhdCBpdCBpc24ndCB3b3JraW5nIHdpdGggc3RhbGUgZGF0YS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldCBwZW51bHRpbWF0ZVBhZ2UoKTogQ2xyV2l6YXJkUGFnZSB7XG4gICAgY29uc3QgcGFnZUNvdW50ID0gdGhpcy5wYWdlc0NvdW50O1xuXG4gICAgaWYgKHBhZ2VDb3VudCA8IDIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVtwYWdlQ291bnQgLSAyXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsYXN0IHBhZ2UgaW4gdGhlIHF1ZXJ5IGxpc3Qgb2YgcGFnZXMuIE9wZXJhdGVzIGFzIGEgZ2V0dGVyXG4gICAqIHNvIHRoYXQgaXQgaXNuJ3Qgd29ya2luZyB3aXRoIHN0YWxlIGRhdGEuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgbGFzdFBhZ2UoKTogQ2xyV2l6YXJkUGFnZSB7XG4gICAgY29uc3QgcGFnZUNvdW50ID0gdGhpcy5wYWdlc0NvdW50O1xuXG4gICAgaWYgKHBhZ2VDb3VudCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVtwYWdlQ291bnQgLSAxXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaXJzdCBwYWdlIGluIHRoZSBxdWVyeSBsaXN0IG9mIHBhZ2VzLiBPcGVyYXRlcyBhcyBhIGdldHRlclxuICAgKiBzbyB0aGF0IGl0IGlzbid0IHdvcmtpbmcgd2l0aCBzdGFsZSBkYXRhLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpcnN0UGFnZSgpOiBDbHJXaXphcmRQYWdlIHtcbiAgICBpZiAoIXRoaXMucGFnZXNDb3VudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucGFnZXNBc0FycmF5WzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgbW9zdGx5IGludGVybmFsbHksIGJ1dCBhY2NlcHRzIGEgc3RyaW5nIElEIGFuZCByZXR1cm5zIGEgQ2xyV2l6YXJkUGFnZVxuICAgKiBvYmplY3QgdGhhdCBtYXRjaGVzIHRoZSBJRCBwYXNzZWQuIE5vdGUgdGhhdCBJRHMgaGVyZSBzaG91bGQgaW5jbHVkZSB0aGUgcHJlZml4XG4gICAqIFwiY2xyLXdpemFyZC1wYWdlLVwiLlxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBuZXh0LXRvLWxhc3QgcGFnZSBpbiB0aGUgcXVlcnkgbGlzdCBvZiBwYWdlcy4gT3BlcmF0ZXMgYXMgYSBnZXR0ZXJcbiAgICogc28gdGhhdCBpdCBpc24ndCB3b3JraW5nIHdpdGggc3RhbGUgZGF0YS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFBhZ2VCeUlkKGlkOiBzdHJpbmcpOiBDbHJXaXphcmRQYWdlIHtcbiAgICBjb25zdCBmb3VuZFBhZ2VzOiBDbHJXaXphcmRQYWdlW10gPSB0aGlzLnBhZ2VzLmZpbHRlcigocGFnZTogQ2xyV2l6YXJkUGFnZSkgPT4gaWQgPT09IHBhZ2UuaWQpO1xuICAgIHJldHVybiB0aGlzLmNoZWNrUmVzdWx0cyhmb3VuZFBhZ2VzLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0cyBzIG51bWJlciBhcyBhIHBhcmFtZXRlciBhbmQgdHJlYXRzIHRoYXQgbnVtYmVyIGFzIHRoZSBpbmRleCBvZiB0aGUgcGFnZVxuICAgKiB5b3UncmUgbG9va2luZyBmb3IgaW4gdGhlIGNvbGxlY3Rpb24gb2YgcGFnZXMuIFJldHVybnMgYSAgd2l6YXJkIHBhZ2Ugb2JqZWN0LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZUJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IENscldpemFyZFBhZ2Uge1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRoaXMucGFnZXNDb3VudDtcbiAgICBjb25zdCBwYWdlc0xhc3RJbmRleDogbnVtYmVyID0gcGFnZUNvdW50ID4gMSA/IHBhZ2VDb3VudCAtIDEgOiAwO1xuXG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmV0cmlldmUgcGFnZSB3aXRoIGluZGV4IG9mICcgKyBpbmRleCk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ID4gcGFnZXNMYXN0SW5kZXgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGFnZSBpbmRleCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIHBhZ2VzIGFycmF5LicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhZ2VzQXNBcnJheVtpbmRleF07XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSB3aXphcmQgcGFnZSBvYmplY3QgYXMgYSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgaXRzIGluZGV4IGluIHRoZVxuICAgKiBjb2xsZWN0aW9uIG9mIHBhZ2VzLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFnZUluZGV4KHBhZ2U6IENscldpemFyZFBhZ2UpOiBudW1iZXIge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYWdlc0FzQXJyYXkuaW5kZXhPZihwYWdlKTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWVzdGVkIHBhZ2UgY2Fubm90IGJlIGZvdW5kIGluIGNvbGxlY3Rpb24gb2YgcGFnZXMuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnNvbGlkYXRlcyBndWFyZCBsb2dpYyB0aGF0IHByZXZlbnRzIGEgY291cGxlIG9mIHVuZm9ydHVuYXRlIGVkZ2UgY2FzZXMgd2l0aFxuICAgKiBsb29rIHVwcyBvbiB0aGUgY29sbGVjdGlvbiBvZiBwYWdlcy5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja1Jlc3VsdHMocmVzdWx0czogQ2xyV2l6YXJkUGFnZVtdLCByZXF1ZXN0ZWRQYWdlSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZvdW5kUGFnZXNDb3VudDogbnVtYmVyID0gcmVzdWx0cy5sZW5ndGggfHwgMDtcblxuICAgIGlmIChmb3VuZFBhZ2VzQ291bnQgPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vcmUgdGhhbiBvbmUgcGFnZSBoYXMgdGhlIHJlcXVlc3RlZCBpZCAnICsgcmVxdWVzdGVkUGFnZUlkICsgJy4nKTtcbiAgICB9IGVsc2UgaWYgKGZvdW5kUGFnZXNDb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcGFnZSBjYW4gYmUgZm91bmQgd2l0aCB0aGUgaWQgJyArIHJlcXVlc3RlZFBhZ2VJZCArICcuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXN1bHRzWzBdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY2NlcHRzIHR3byBudW1lcmljIGluZGV4ZXMgYW5kIHJldHVybnMgYW4gYXJyYXkgb2Ygd2l6YXJkIHBhZ2Ugb2JqZWN0cyB0aGF0IGluY2x1ZGVcbiAgICogYWxsIHdpemFyZCBwYWdlcyBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uIGZyb20gdGhlIGZpcnN0IGluZGV4IHRvIHRoZSBzZWNvbmQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBwYWdlUmFuZ2Uoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBDbHJXaXphcmRQYWdlW10ge1xuICAgIGxldCBwYWdlczogQ2xyV2l6YXJkUGFnZVtdID0gW107XG5cbiAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA8IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoc3RhcnQgPT09IG51bGwgfHwgdHlwZW9mIHN0YXJ0ID09PSAndW5kZWZpbmVkJyB8fCBpc05hTihzdGFydCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoZW5kID09PSBudWxsIHx8IHR5cGVvZiBlbmQgPT09ICd1bmRlZmluZWQnIHx8IGlzTmFOKGVuZCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoZW5kID4gdGhpcy5wYWdlc0NvdW50KSB7XG4gICAgICBlbmQgPSB0aGlzLnBhZ2VzQ291bnQ7XG4gICAgfVxuXG4gICAgcGFnZXMgPSB0aGlzLnBhZ2VzQXNBcnJheTtcblxuICAgIGlmIChlbmQgLSBzdGFydCA9PT0gMCkge1xuICAgICAgLy8ganVzdCByZXR1cm4gdGhlIG9uZSBwYWdlIHRoZXkgd2FudFxuICAgICAgcmV0dXJuIFt0aGlzLmdldFBhZ2VCeUluZGV4KHN0YXJ0KV07XG4gICAgfVxuXG4gICAgLy8gc2xpY2UgZW5kIGRvZXMgbm90IGluY2x1ZGUgaXRlbSByZWZlcmVuY2VkIGJ5IGVuZCBpbmRleCwgd2hpY2ggaXMgd2VpcmQgZm9yIHVzZXJzXG4gICAgLy8gaW5jcmVtZW50aW5nIGVuZCBpbmRleCBoZXJlIHRvIGNvcnJlY3QgdGhhdCBzbyB1c2VycyBhbmQgb3RoZXIgbWV0aG9kc1xuICAgIC8vIGRvbid0IGhhdmUgdG8gdGhpbmsgYWJvdXQgaXRcbiAgICBlbmQgPSBlbmQgKyAxO1xuXG4gICAgLy8gc2xpY2UgZG9lcyBub3QgcmV0dXJuIHRoZSBsYXN0IG9uZSBpbiB0aGUgcmFuZ2UgYnV0IGl0IGRvZXMgaW5jbHVkZSB0aGUgZmlyc3Qgb25lXG4gICAgLy8gZG9lcyBub3QgbW9kaWZ5IG9yaWdpbmFsIGFycmF5XG4gICAgcmV0dXJuIHBhZ2VzLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdHMgdHdvIHdpemFyZCBwYWdlIG9iamVjdHMgYW5kIHJldHVybnMgdGhvc2UgcGFnZSBvYmplY3RzIHdpdGggYWxsIG90aGVyIHBhZ2VcbiAgICogb2JqZWN0cyBiZXR3ZWVuIHRoZW0gaW4gdGhlIHBhZ2UgY29sbGVjdGlvbi4gSXQgZG9lc24ndCBjYXJlIHdoaWNoIHBhZ2UgaXMgYWhlYWQgb2YgdGhlXG4gICAqIG90aGVyIGluIHRoZSBwYXJhbWV0ZXJzLiBJdCB3aWxsIGJlIHNtYXJ0IGVub3VnaCB0byBmaWd1cmUgdGhhdCBvdXQgIG9uIGl0cyBvd24uXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXRQYWdlUmFuZ2VGcm9tUGFnZXMocGFnZTogQ2xyV2l6YXJkUGFnZSwgb3RoZXJQYWdlOiBDbHJXaXphcmRQYWdlKTogQ2xyV2l6YXJkUGFnZVtdIHtcbiAgICBjb25zdCBwYWdlSW5kZXggPSB0aGlzLmdldFBhZ2VJbmRleChwYWdlKTtcbiAgICBjb25zdCBvdGhlclBhZ2VJbmRleCA9IHRoaXMuZ2V0UGFnZUluZGV4KG90aGVyUGFnZSk7XG4gICAgbGV0IHN0YXJ0SW5kZXg6IG51bWJlcjtcbiAgICBsZXQgZW5kSW5kZXg6IG51bWJlcjtcblxuICAgIGlmIChwYWdlSW5kZXggPD0gb3RoZXJQYWdlSW5kZXgpIHtcbiAgICAgIHN0YXJ0SW5kZXggPSBwYWdlSW5kZXg7XG4gICAgICBlbmRJbmRleCA9IG90aGVyUGFnZUluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydEluZGV4ID0gb3RoZXJQYWdlSW5kZXg7XG4gICAgICBlbmRJbmRleCA9IHBhZ2VJbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFnZVJhbmdlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHdpemFyZCBwYWdlIG9iamVjdCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyB0aGUgd2l6YXJkIHBhZ2Ugb2JqZWN0IG9mXG4gICAqIHRoZSBwYWdlIGltbWVkaWF0ZWx5IGJlZm9yZSBpdCBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uLiBSZXR1cm5zIG51bGwgaWYgdGhlcmUgaXNcbiAgICogbm8gcGFnZSBiZWZvcmUgdGhlIHBhZ2UgaXQgaXMgcGFzc2VkLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0UHJldmlvdXNQYWdlKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBjb25zdCBteVBhZ2VJbmRleCA9IHRoaXMuZ2V0UGFnZUluZGV4KHBhZ2UpO1xuICAgIGNvbnN0IHByZXZpb3VzUGFnZUluZGV4ID0gbXlQYWdlSW5kZXggLSAxO1xuICAgIGlmIChwcmV2aW91c1BhZ2VJbmRleCA8IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlQnlJbmRleChwcmV2aW91c1BhZ2VJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0cyBhIHdpemFyZCBwYWdlIG9iamVjdCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyBhIEJvb2xlYW4gdGhhdCBzYXlzIGlmXG4gICAqIHRoZSBwYWdlIHlvdSBzZW50IGl0IGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgcHJldmlvdXNQYWdlSXNDb21wbGV0ZWQocGFnZTogQ2xyV2l6YXJkUGFnZSkge1xuICAgIGlmICghcGFnZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzUGFnZSA9IHRoaXMuZ2V0UHJldmlvdXNQYWdlKHBhZ2UpO1xuXG4gICAgaWYgKG51bGwgPT09IHByZXZpb3VzUGFnZSkge1xuICAgICAgLy8gcGFnZSBpcyB0aGUgZmlyc3QgcGFnZS4gbm8gcHJldmlvdXMgcGFnZS5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBwcmV2aW91c1BhZ2UuY29tcGxldGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgd2l6YXJkIHBhZ2Ugb2JqZWN0IGFzIGEgcGFyYW1ldGVyIGFuZCByZXR1cm5zIHRoZSB3aXphcmQgcGFnZSBvYmplY3Qgb2ZcbiAgICogdGhlIHBhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgaXQgaW4gdGhlIHBhZ2UgY29sbGVjdGlvbi4gUmV0dXJucyBudWxsIGlmIHRoZXJlIGlzXG4gICAqIG5vIHBhZ2UgYWZ0ZXIgdGhlIHBhZ2UgaXQgaXMgcGFzc2VkLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0TmV4dFBhZ2UocGFnZTogQ2xyV2l6YXJkUGFnZSkge1xuICAgIGNvbnN0IG15UGFnZUluZGV4ID0gdGhpcy5nZXRQYWdlSW5kZXgocGFnZSk7XG4gICAgY29uc3QgbmV4dFBhZ2VJbmRleCA9IG15UGFnZUluZGV4ICsgMTtcblxuICAgIGlmIChuZXh0UGFnZUluZGV4ID49IHRoaXMucGFnZXNBc0FycmF5Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFBhZ2VCeUluZGV4KG5leHRQYWdlSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgd2l6YXJkIHBhZ2Ugb2JqZWN0IGFzIGEgcGFyYW1ldGVyIGFuZCBnZW5lcmF0ZXMgYSBzdGVwIGl0ZW0gaWQgZnJvbSB0aGVcbiAgICogcGFnZSBJRC4gUmV0dXJucyB0aGUgZ2VuZXJhdGVkIHN0ZXAgaXRlbSBJRCBhcyBhIHN0cmluZy5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGdldFN0ZXBJdGVtSWRGb3JQYWdlKHBhZ2U6IENscldpemFyZFBhZ2UpIHtcbiAgICBjb25zdCBwYWdlSWQgPSBwYWdlLmlkO1xuICAgIGNvbnN0IHBhZ2VJZFBhcnRzID0gcGFnZUlkLnNwbGl0KCctJykucmV2ZXJzZSgpO1xuXG4gICAgcGFnZUlkUGFydHNbMV0gPSAnc3RlcCc7XG4gICAgcmV0dXJuIHBhZ2VJZFBhcnRzLnJldmVyc2UoKS5qb2luKCctJyk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhbGx5IG9ubHkgdXNlZCBpbnRlcm5hbGx5IHRvIG1hcmsgdGhhdCBhIHNwZWNpZmljIHBhZ2UgaGFzIGJlZW4gXCJjb21taXR0ZWRcIi5cbiAgICogVGhpcyBpbnZvbHZlcyBtYXJraW5nIHRoZSBwYWdlIGNvbXBsZXRlIGFuZCBmaXJpbmcgdGhlIENscldpemFyZFBhZ2Uub25Db21taXRcbiAgICogKGNscldpemFyZFBhZ2VPbkNvbW1pdCkgb3V0cHV0LiBUYWtlcyB0aGUgd2l6YXJkIHBhZ2Ugb2JqZWN0IHRoYXQgeW91IGludGVuZCB0b1xuICAgKiBtYXJrIGNvbXBsZXRlZCBhcyBhIHBhcmFtZXRlci5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIGNvbW1pdFBhZ2UocGFnZTogQ2xyV2l6YXJkUGFnZSkge1xuICAgIGNvbnN0IHBhZ2VIYXNPdmVycmlkZXMgPSBwYWdlLnN0b3BOZXh0IHx8IHBhZ2UucHJldmVudERlZmF1bHQ7XG4gICAgcGFnZS5jb21wbGV0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKCFwYWdlSGFzT3ZlcnJpZGVzKSB7XG4gICAgICAvLyBwcmV2ZW50IGxvb3Agb2YgZXZlbnQgZW1pc3Npb247IGFsdGVybmF0ZSBmbG93cyB3b3JrIG9mZlxuICAgICAgLy8gb2YgZXZlbnQgZW1pdHRlcnMgdGhpcyBpcyBob3cgdGhleSBicmVhayB0aGF0IGN5Y2xlLlxuICAgICAgcGFnZS5vbkNvbW1pdC5lbWl0KHBhZ2UuaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVzZWQgYnkgdGhlIG5hdlNlcnZpY2UgdG8gbmF2aWdhdGUgYmFjayB0byBmaXJzdCBwb3NzaWJsZSBzdGVwIGFmdGVyXG4gIC8vIHBhZ2VzIGFyZSByZXNldFxuXG4gIC8qKlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwcml2YXRlIF9wYWdlc1Jlc2V0ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQW4gb2JzZXJ2YWJsZSB0aGF0IHRoZSBuYXZpZ2F0aW9uIHNlcnZpY2UgbGlzdGVucyB0byBpbiBvcmRlciB0byBrbm93IHdoZW5cbiAgICogdGhlIHBhZ2UgY29sbGVjdGlvbiBjb21wbGV0ZWQgc3RhdGVzIGhhdmUgYmVlbiByZXNldCB0byBmYWxzZSBzbyB0aGF0IHdheSBpdFxuICAgKiBjYW4gYWxzbyByZXNldCB0aGUgbmF2aWdhdGlvbiB0byBtYWtlIHRoZSBmaXJzdCBwYWdlIGluIHRoZSBwYWdlIGNvbGxlY3Rpb25cbiAgICogY3VycmVudC9hY3RpdmUuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZXNSZXNldCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZXNSZXNldC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFsbCBjb21wbGV0ZWQgc3RhdGVzIG9mIHRoZSBwYWdlcyBpbiB0aGUgcGFnZSBjb2xsZWN0aW9uIHRvIGZhbHNlIGFuZFxuICAgKiBub3RpZmllcyB0aGUgbmF2aWdhdGlvbiBzZXJ2aWNlIHRvIGxpa2V3aXNlIHJlc2V0IHRoZSBuYXZpZ2F0aW9uLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5wYWdlc0FzQXJyYXkuZm9yRWFjaCgocGFnZTogQ2xyV2l6YXJkUGFnZSkgPT4ge1xuICAgICAgcGFnZS5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLl9wYWdlc1Jlc2V0Lm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUm9sbHMgdGhyb3VnaCBhbGwgdGhlIHBhZ2VzIGluIHRoZSBwYWdlIGNvbGxlY3Rpb24gdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBub1xuICAgKiBpbmNvbXBsZXRlIHBhZ2VzIHNhbmR3aWNoZWQgYmV0d2VlbiBjb21wbGV0ZWQgcGFnZXMgaW4gdGhlIHdvcmtmbG93LiBJZGVudGlmaWVzXG4gICAqIHRoZSBmaXJzdCBpbmNvbXBsZXRlIHBhZ2UgaW5kZXggYW5kIHNldHMgYWxsIHBhZ2VzIGJlaGluZCBpdCB0byBhIGNvbXBsZXRlZFxuICAgKiBzdGF0ZSBvZiBmYWxzZS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFBhZ2VDb2xsZWN0aW9uU2VydmljZVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUNvbXBsZXRlZFN0YXRlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEluY29tcGxldGVJbmRleCA9IHRoaXMuZmluZEZpcnN0SW5jb21wbGV0ZVBhZ2VJbmRleCgpO1xuXG4gICAgaWYgKGZpcnN0SW5jb21wbGV0ZUluZGV4ID09PSB0aGlzLnBhZ2VzQXNBcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAvLyBhbGwgY29tcGxldGUgbm8gbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGFnZXNBc0FycmF5LmZvckVhY2goKHBhZ2U6IENscldpemFyZFBhZ2UsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpbmRleCA+IGZpcnN0SW5jb21wbGV0ZUluZGV4KSB7XG4gICAgICAgIHBhZ2UuY29tcGxldGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgaW5jb21wbGV0ZSBwYWdlIGluIHRoZSBwYWdlIGNvbGxlY3Rpb24uXG4gICAqXG4gICAqIEBtZW1iZXJvZiBQYWdlQ29sbGVjdGlvblNlcnZpY2VcbiAgICovXG4gIHB1YmxpYyBmaW5kRmlyc3RJbmNvbXBsZXRlUGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgbGV0IHJldHVybkluZGV4OiBudW1iZXIgPSBudWxsO1xuICAgIHRoaXMucGFnZXNBc0FycmF5LmZvckVhY2goKHBhZ2U6IENscldpemFyZFBhZ2UsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChudWxsID09PSByZXR1cm5JbmRleCAmJiBmYWxzZSA9PT0gcGFnZS5jb21wbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuSW5kZXggPSBpbmRleDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGZhbGx0aHJvdWdoLCBhbGwgY29tcGxldGVkLCByZXR1cm4gbGFzdCBwYWdlXG4gICAgaWYgKG51bGwgPT09IHJldHVybkluZGV4KSB7XG4gICAgICByZXR1cm5JbmRleCA9IHRoaXMucGFnZXNDb3VudCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHVybkluZGV4O1xuICB9XG5cbiAgcHVibGljIGZpbmRGaXJzdEluY29tcGxldGVQYWdlKCk6IENscldpemFyZFBhZ2Uge1xuICAgIGNvbnN0IG15SW5jb21wbGV0ZUluZGV4ID0gdGhpcy5maW5kRmlyc3RJbmNvbXBsZXRlUGFnZUluZGV4KCk7XG4gICAgcmV0dXJuIHRoaXMucGFnZXNBc0FycmF5W215SW5jb21wbGV0ZUluZGV4XTtcbiAgfVxufVxuIl19