@clr/angular 17.12.1 → 18.0.0-beta.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 (1157) hide show
  1. package/README.md +1 -5
  2. package/fesm2022/clr-angular-accordion.mjs +355 -0
  3. package/fesm2022/clr-angular-accordion.mjs.map +1 -0
  4. package/fesm2022/clr-angular-button.mjs +713 -0
  5. package/fesm2022/clr-angular-button.mjs.map +1 -0
  6. package/fesm2022/clr-angular-collapsible-panel.mjs +201 -0
  7. package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -0
  8. package/fesm2022/clr-angular-data-datagrid.mjs +7601 -0
  9. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -0
  10. package/fesm2022/clr-angular-data-stack-view.mjs +442 -0
  11. package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -0
  12. package/fesm2022/clr-angular-data-tree-view.mjs +1106 -0
  13. package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -0
  14. package/fesm2022/clr-angular-data.mjs +9145 -0
  15. package/fesm2022/clr-angular-data.mjs.map +1 -0
  16. package/fesm2022/clr-angular-emphasis-alert.mjs +624 -0
  17. package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -0
  18. package/fesm2022/clr-angular-emphasis-badge.mjs +69 -0
  19. package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -0
  20. package/fesm2022/clr-angular-emphasis-common.mjs +25 -0
  21. package/fesm2022/clr-angular-emphasis-common.mjs.map +1 -0
  22. package/fesm2022/clr-angular-emphasis-label.mjs +105 -0
  23. package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -0
  24. package/fesm2022/clr-angular-emphasis.mjs +807 -0
  25. package/fesm2022/clr-angular-emphasis.mjs.map +1 -0
  26. package/fesm2022/clr-angular-forms-checkbox.mjs +301 -0
  27. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -0
  28. package/fesm2022/clr-angular-forms-combobox.mjs +1445 -0
  29. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
  30. package/fesm2022/clr-angular-forms-common.mjs +1235 -0
  31. package/fesm2022/clr-angular-forms-common.mjs.map +1 -0
  32. package/fesm2022/clr-angular-forms-datalist.mjs +275 -0
  33. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -0
  34. package/fesm2022/clr-angular-forms-datepicker.mjs +3230 -0
  35. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -0
  36. package/fesm2022/clr-angular-forms-file-input.mjs +810 -0
  37. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -0
  38. package/fesm2022/clr-angular-forms-input.mjs +167 -0
  39. package/fesm2022/clr-angular-forms-input.mjs.map +1 -0
  40. package/fesm2022/clr-angular-forms-number-input.mjs +249 -0
  41. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -0
  42. package/fesm2022/clr-angular-forms-password.mjs +245 -0
  43. package/fesm2022/clr-angular-forms-password.mjs.map +1 -0
  44. package/fesm2022/clr-angular-forms-radio.mjs +262 -0
  45. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -0
  46. package/fesm2022/clr-angular-forms-range.mjs +199 -0
  47. package/fesm2022/clr-angular-forms-range.mjs.map +1 -0
  48. package/fesm2022/clr-angular-forms-select.mjs +166 -0
  49. package/fesm2022/clr-angular-forms-select.mjs.map +1 -0
  50. package/fesm2022/clr-angular-forms-textarea.mjs +149 -0
  51. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -0
  52. package/fesm2022/clr-angular-forms.mjs +8592 -0
  53. package/fesm2022/clr-angular-forms.mjs.map +1 -0
  54. package/fesm2022/clr-angular-icon.mjs +7387 -0
  55. package/fesm2022/clr-angular-icon.mjs.map +1 -0
  56. package/fesm2022/clr-angular-layout-breadcrumbs.mjs +120 -0
  57. package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -0
  58. package/fesm2022/clr-angular-layout-main-container.mjs +100 -0
  59. package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -0
  60. package/fesm2022/clr-angular-layout-nav.mjs +580 -0
  61. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -0
  62. package/fesm2022/clr-angular-layout-tabs.mjs +807 -0
  63. package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -0
  64. package/fesm2022/clr-angular-layout-vertical-nav.mjs +507 -0
  65. package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -0
  66. package/fesm2022/clr-angular-layout.mjs +2086 -0
  67. package/fesm2022/clr-angular-layout.mjs.map +1 -0
  68. package/fesm2022/clr-angular-modal.mjs +618 -0
  69. package/fesm2022/clr-angular-modal.mjs.map +1 -0
  70. package/fesm2022/clr-angular-popover-common.mjs +1027 -0
  71. package/fesm2022/clr-angular-popover-common.mjs.map +1 -0
  72. package/fesm2022/clr-angular-popover-dropdown.mjs +489 -0
  73. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -0
  74. package/fesm2022/clr-angular-popover-signpost.mjs +478 -0
  75. package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -0
  76. package/fesm2022/clr-angular-popover-tooltip.mjs +293 -0
  77. package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -0
  78. package/fesm2022/clr-angular-popover.mjs +2271 -0
  79. package/fesm2022/clr-angular-popover.mjs.map +1 -0
  80. package/fesm2022/clr-angular-progress-progress-bars.mjs +217 -0
  81. package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -0
  82. package/fesm2022/clr-angular-progress-spinner.mjs +132 -0
  83. package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -0
  84. package/fesm2022/clr-angular-stepper.mjs +688 -0
  85. package/fesm2022/clr-angular-stepper.mjs.map +1 -0
  86. package/fesm2022/clr-angular-timeline.mjs +316 -0
  87. package/fesm2022/clr-angular-timeline.mjs.map +1 -0
  88. package/fesm2022/clr-angular-utils-conditional.mjs +351 -0
  89. package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -0
  90. package/fesm2022/clr-angular-utils-loading.mjs +107 -0
  91. package/fesm2022/clr-angular-utils-loading.mjs.map +1 -0
  92. package/fesm2022/clr-angular-utils.mjs +2544 -0
  93. package/fesm2022/clr-angular-utils.mjs.map +1 -0
  94. package/fesm2022/clr-angular-wizard.mjs +2863 -0
  95. package/fesm2022/clr-angular-wizard.mjs.map +1 -0
  96. package/fesm2022/clr-angular.mjs +38771 -0
  97. package/fesm2022/clr-angular.mjs.map +1 -0
  98. package/package.json +197 -18
  99. package/popover/common/README.md +110 -0
  100. package/types/clr-angular-accordion.d.ts +100 -0
  101. package/types/clr-angular-button.d.ts +169 -0
  102. package/types/clr-angular-collapsible-panel.d.ts +73 -0
  103. package/types/clr-angular-data-datagrid.d.ts +1850 -0
  104. package/types/clr-angular-data-stack-view.d.ts +87 -0
  105. package/types/clr-angular-data-tree-view.d.ts +220 -0
  106. package/types/clr-angular-data.d.ts +2147 -0
  107. package/types/clr-angular-emphasis-alert.d.ts +175 -0
  108. package/types/clr-angular-emphasis-badge.d.ts +25 -0
  109. package/types/clr-angular-emphasis-common.d.ts +6 -0
  110. package/types/clr-angular-emphasis-label.d.ts +29 -0
  111. package/types/clr-angular-emphasis.d.ts +231 -0
  112. package/types/clr-angular-forms-checkbox.d.ts +69 -0
  113. package/types/clr-angular-forms-combobox.d.ts +300 -0
  114. package/types/clr-angular-forms-common.d.ts +336 -0
  115. package/types/clr-angular-forms-datalist.d.ts +59 -0
  116. package/types/clr-angular-forms-datepicker.d.ts +951 -0
  117. package/types/clr-angular-forms-file-input.d.ts +190 -0
  118. package/types/clr-angular-forms-input.d.ts +29 -0
  119. package/types/clr-angular-forms-number-input.d.ts +43 -0
  120. package/types/clr-angular-forms-password.d.ts +52 -0
  121. package/types/clr-angular-forms-radio.d.ts +50 -0
  122. package/types/clr-angular-forms-range.d.ts +37 -0
  123. package/types/clr-angular-forms-select.d.ts +36 -0
  124. package/types/clr-angular-forms-textarea.d.ts +29 -0
  125. package/types/clr-angular-forms.d.ts +2072 -0
  126. package/types/clr-angular-icon.d.ts +1498 -0
  127. package/types/clr-angular-layout-breadcrumbs.d.ts +45 -0
  128. package/types/clr-angular-layout-main-container.d.ts +28 -0
  129. package/types/clr-angular-layout-nav.d.ts +138 -0
  130. package/types/clr-angular-layout-tabs.d.ts +158 -0
  131. package/types/clr-angular-layout-vertical-nav.d.ts +128 -0
  132. package/types/clr-angular-layout.d.ts +476 -0
  133. package/types/clr-angular-modal.d.ts +160 -0
  134. package/types/clr-angular-popover-common.d.ts +230 -0
  135. package/types/clr-angular-popover-dropdown.d.ts +122 -0
  136. package/types/clr-angular-popover-signpost.d.ts +149 -0
  137. package/types/clr-angular-popover-tooltip.d.ts +83 -0
  138. package/types/clr-angular-popover.d.ts +568 -0
  139. package/{progress/progress-bars/progress-bar.d.ts → types/clr-angular-progress-progress-bars.d.ts} +15 -3
  140. package/{progress/spinner/spinner.d.ts → types/clr-angular-progress-spinner.d.ts} +15 -3
  141. package/types/clr-angular-stepper.d.ts +179 -0
  142. package/types/clr-angular-timeline.d.ts +86 -0
  143. package/types/clr-angular-utils-conditional.d.ts +132 -0
  144. package/types/clr-angular-utils-loading.d.ts +38 -0
  145. package/types/clr-angular-utils.d.ts +1075 -0
  146. package/types/clr-angular-wizard.d.ts +1451 -0
  147. package/types/clr-angular.d.ts +10257 -0
  148. package/accordion/accordion-content.d.ts +0 -5
  149. package/accordion/accordion-description.d.ts +0 -5
  150. package/accordion/accordion-panel.d.ts +0 -45
  151. package/accordion/accordion-title.d.ts +0 -5
  152. package/accordion/accordion.d.ts +0 -20
  153. package/accordion/accordion.module.d.ts +0 -16
  154. package/accordion/chocolate/accordion-oompa-loompa.d.ts +0 -12
  155. package/accordion/chocolate/accordion-willy-wonka.d.ts +0 -6
  156. package/accordion/enums/accordion-status.enum.d.ts +0 -5
  157. package/accordion/enums/accordion-strategy.enum.d.ts +0 -4
  158. package/accordion/index.d.ts +0 -10
  159. package/accordion/models/accordion.model.d.ts +0 -27
  160. package/accordion/providers/accordion.service.d.ts +0 -17
  161. package/accordion/stepper/chocolate/stepper-oompa-loompa.d.ts +0 -12
  162. package/accordion/stepper/chocolate/stepper-willy-wonka.d.ts +0 -6
  163. package/accordion/stepper/index.d.ts +0 -4
  164. package/accordion/stepper/models/stepper.model.d.ts +0 -29
  165. package/accordion/stepper/providers/stepper.service.d.ts +0 -23
  166. package/accordion/stepper/step-button.d.ts +0 -21
  167. package/accordion/stepper/stepper-panel.d.ts +0 -28
  168. package/accordion/stepper/stepper.d.ts +0 -26
  169. package/accordion/stepper/stepper.module.d.ts +0 -14
  170. package/accordion/utils/animation.d.ts +0 -2
  171. package/button/button-group/button-group.d.ts +0 -60
  172. package/button/button-group/button-group.module.d.ts +0 -13
  173. package/button/button-group/button.d.ts +0 -40
  174. package/button/button-group/index.d.ts +0 -3
  175. package/button/button-loading/index.d.ts +0 -2
  176. package/button/button-loading/loading-button.d.ts +0 -17
  177. package/button/button-loading/loading-button.module.d.ts +0 -10
  178. package/button/button.module.d.ts +0 -9
  179. package/button/index.d.ts +0 -3
  180. package/button/providers/button-group-focus-handler.service.d.ts +0 -32
  181. package/button/providers/button-group-focus.enum.d.ts +0 -4
  182. package/button/providers/button-in-group.service.d.ts +0 -10
  183. package/clr-angular.module.d.ts +0 -25
  184. package/data/data.module.d.ts +0 -9
  185. package/data/datagrid/built-in/comparators/datagrid-property-comparator.d.ts +0 -7
  186. package/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.d.ts +0 -37
  187. package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +0 -58
  188. package/data/datagrid/built-in/filters/datagrid-property-numeric-filter.d.ts +0 -8
  189. package/data/datagrid/built-in/filters/datagrid-property-string-filter.d.ts +0 -8
  190. package/data/datagrid/built-in/filters/datagrid-string-filter-impl.d.ts +0 -39
  191. package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +0 -60
  192. package/data/datagrid/built-in/nested-property.d.ts +0 -10
  193. package/data/datagrid/chocolate/actionable-oompa-loompa.d.ts +0 -12
  194. package/data/datagrid/chocolate/datagrid-willy-wonka.d.ts +0 -6
  195. package/data/datagrid/chocolate/expandable-oompa-loompa.d.ts +0 -12
  196. package/data/datagrid/datagrid-action-bar.d.ts +0 -5
  197. package/data/datagrid/datagrid-action-overflow.d.ts +0 -28
  198. package/data/datagrid/datagrid-cell.d.ts +0 -21
  199. package/data/datagrid/datagrid-column-separator.d.ts +0 -36
  200. package/data/datagrid/datagrid-column-toggle-button.d.ts +0 -16
  201. package/data/datagrid/datagrid-column-toggle-trackby.d.ts +0 -6
  202. package/data/datagrid/datagrid-column-toggle.d.ts +0 -30
  203. package/data/datagrid/datagrid-column.d.ts +0 -92
  204. package/data/datagrid/datagrid-detail-body.d.ts +0 -5
  205. package/data/datagrid/datagrid-detail-header.d.ts +0 -14
  206. package/data/datagrid/datagrid-detail-registerer.d.ts +0 -9
  207. package/data/datagrid/datagrid-detail.d.ts +0 -17
  208. package/data/datagrid/datagrid-filter.d.ts +0 -40
  209. package/data/datagrid/datagrid-footer.d.ts +0 -17
  210. package/data/datagrid/datagrid-hideable-column.d.ts +0 -41
  211. package/data/datagrid/datagrid-if-detail.d.ts +0 -28
  212. package/data/datagrid/datagrid-if-expanded.service.d.ts +0 -18
  213. package/data/datagrid/datagrid-items.d.ts +0 -28
  214. package/data/datagrid/datagrid-page-size.d.ts +0 -13
  215. package/data/datagrid/datagrid-pagination.d.ts +0 -73
  216. package/data/datagrid/datagrid-placeholder.d.ts +0 -12
  217. package/data/datagrid/datagrid-row-detail.d.ts +0 -34
  218. package/data/datagrid/datagrid-row.d.ts +0 -109
  219. package/data/datagrid/datagrid-selection-cell.directive.d.ts +0 -9
  220. package/data/datagrid/datagrid-single-selection.directive.d.ts +0 -21
  221. package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +0 -80
  222. package/data/datagrid/datagrid.d.ts +0 -149
  223. package/data/datagrid/datagrid.module.d.ts +0 -60
  224. package/data/datagrid/enums/column-changes.enum.d.ts +0 -6
  225. package/data/datagrid/enums/display-mode.enum.d.ts +0 -4
  226. package/data/datagrid/enums/render-step.enum.d.ts +0 -7
  227. package/data/datagrid/enums/selection-type.d.ts +0 -5
  228. package/data/datagrid/enums/sort-order.enum.d.ts +0 -12
  229. package/data/datagrid/index.d.ts +0 -50
  230. package/data/datagrid/interfaces/column-state.interface.d.ts +0 -14
  231. package/data/datagrid/interfaces/comparator.interface.d.ts +0 -3
  232. package/data/datagrid/interfaces/filter.interface.d.ts +0 -8
  233. package/data/datagrid/interfaces/key-nav-grid-strategy.interface.d.ts +0 -11
  234. package/data/datagrid/interfaces/numeric-filter.interface.d.ts +0 -3
  235. package/data/datagrid/interfaces/state.interface.d.ts +0 -14
  236. package/data/datagrid/interfaces/string-filter.interface.d.ts +0 -3
  237. package/data/datagrid/interfaces/virtual-scroll-data-range.interface.d.ts +0 -5
  238. package/data/datagrid/providers/column-resizer.service.d.ts +0 -22
  239. package/data/datagrid/providers/column-state.provider.d.ts +0 -9
  240. package/data/datagrid/providers/columns.service.d.ts +0 -18
  241. package/data/datagrid/providers/custom-filter.d.ts +0 -2
  242. package/data/datagrid/providers/detail.service.d.ts +0 -28
  243. package/data/datagrid/providers/display-mode.service.d.ts +0 -14
  244. package/data/datagrid/providers/filters.d.ts +0 -44
  245. package/data/datagrid/providers/global-expandable-rows.d.ts +0 -16
  246. package/data/datagrid/providers/items.d.ts +0 -84
  247. package/data/datagrid/providers/page.d.ts +0 -62
  248. package/data/datagrid/providers/row-action-service.d.ts +0 -12
  249. package/data/datagrid/providers/selection.d.ts +0 -105
  250. package/data/datagrid/providers/sort.d.ts +0 -44
  251. package/data/datagrid/providers/state-debouncer.provider.d.ts +0 -14
  252. package/data/datagrid/providers/state.provider.d.ts +0 -24
  253. package/data/datagrid/providers/table-size.service.d.ts +0 -17
  254. package/data/datagrid/render/cell-renderer.d.ts +0 -18
  255. package/data/datagrid/render/constants.d.ts +0 -4
  256. package/data/datagrid/render/header-renderer.d.ts +0 -34
  257. package/data/datagrid/render/main-renderer.d.ts +0 -71
  258. package/data/datagrid/render/noop-dom-adapter.d.ts +0 -13
  259. package/data/datagrid/render/render-organizer.d.ts +0 -12
  260. package/data/datagrid/render/row-detail-renderer.d.ts +0 -11
  261. package/data/datagrid/render/row-renderer.d.ts +0 -17
  262. package/data/datagrid/utils/datagrid-filter-registrar.d.ts +0 -18
  263. package/data/datagrid/utils/key-navigation-grid.controller.d.ts +0 -32
  264. package/data/datagrid/utils/key-navigation-strategies/default.d.ts +0 -15
  265. package/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.d.ts +0 -12
  266. package/data/datagrid/utils/key-navigation-strategies/expanded-row.d.ts +0 -12
  267. package/data/datagrid/utils/key-navigation-utils.d.ts +0 -24
  268. package/data/datagrid/wrapped-cell.d.ts +0 -10
  269. package/data/datagrid/wrapped-column.d.ts +0 -10
  270. package/data/datagrid/wrapped-row.d.ts +0 -10
  271. package/data/index.d.ts +0 -4
  272. package/data/stack-view/index.d.ts +0 -6
  273. package/data/stack-view/stack-block.d.ts +0 -37
  274. package/data/stack-view/stack-content-input.d.ts +0 -6
  275. package/data/stack-view/stack-header.d.ts +0 -8
  276. package/data/stack-view/stack-view-custom-tags.d.ts +0 -15
  277. package/data/stack-view/stack-view.d.ts +0 -5
  278. package/data/stack-view/stack-view.module.d.ts +0 -18
  279. package/data/tree-view/index.d.ts +0 -6
  280. package/data/tree-view/models/async-array.d.ts +0 -3
  281. package/data/tree-view/models/declarative-tree-node.model.d.ts +0 -9
  282. package/data/tree-view/models/recursive-tree-node.model.d.ts +0 -18
  283. package/data/tree-view/models/selected-state.enum.d.ts +0 -5
  284. package/data/tree-view/models/tree-node.model.d.ts +0 -23
  285. package/data/tree-view/recursive-children.d.ts +0 -22
  286. package/data/tree-view/recursive-for-of.d.ts +0 -22
  287. package/data/tree-view/tree-features.service.d.ts +0 -22
  288. package/data/tree-view/tree-focus-manager.service.d.ts +0 -32
  289. package/data/tree-view/tree-node-link.d.ts +0 -10
  290. package/data/tree-view/tree-node.d.ts +0 -59
  291. package/data/tree-view/tree-view.module.d.ts +0 -17
  292. package/data/tree-view/tree.d.ts +0 -22
  293. package/emphasis/alert/alert-item.d.ts +0 -8
  294. package/emphasis/alert/alert-text.d.ts +0 -9
  295. package/emphasis/alert/alert.d.ts +0 -40
  296. package/emphasis/alert/alert.module.d.ts +0 -18
  297. package/emphasis/alert/alerts-pager.d.ts +0 -31
  298. package/emphasis/alert/alerts.d.ts +0 -32
  299. package/emphasis/alert/index.d.ts +0 -6
  300. package/emphasis/alert/providers/icon-and-types.service.d.ts +0 -18
  301. package/emphasis/alert/providers/multi-alert.service.d.ts +0 -28
  302. package/emphasis/alert/utils/alert-info-object.d.ts +0 -5
  303. package/emphasis/alert/utils/alert-types.d.ts +0 -1
  304. package/emphasis/emphasis.module.d.ts +0 -7
  305. package/emphasis/index.d.ts +0 -2
  306. package/esm2020/accordion/accordion-content.mjs +0 -21
  307. package/esm2020/accordion/accordion-description.mjs +0 -22
  308. package/esm2020/accordion/accordion-panel.mjs +0 -141
  309. package/esm2020/accordion/accordion-title.mjs +0 -22
  310. package/esm2020/accordion/accordion.mjs +0 -62
  311. package/esm2020/accordion/accordion.module.mjs +0 -56
  312. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +0 -34
  313. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +0 -20
  314. package/esm2020/accordion/enums/accordion-status.enum.mjs +0 -13
  315. package/esm2020/accordion/enums/accordion-strategy.enum.mjs +0 -12
  316. package/esm2020/accordion/index.mjs +0 -17
  317. package/esm2020/accordion/models/accordion.model.mjs +0 -61
  318. package/esm2020/accordion/providers/accordion.service.mjs +0 -48
  319. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +0 -34
  320. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +0 -20
  321. package/esm2020/accordion/stepper/index.mjs +0 -11
  322. package/esm2020/accordion/stepper/models/stepper.model.mjs +0 -146
  323. package/esm2020/accordion/stepper/providers/stepper.service.mjs +0 -75
  324. package/esm2020/accordion/stepper/step-button.mjs +0 -62
  325. package/esm2020/accordion/stepper/stepper-panel.mjs +0 -96
  326. package/esm2020/accordion/stepper/stepper.mjs +0 -105
  327. package/esm2020/accordion/stepper/stepper.module.mjs +0 -31
  328. package/esm2020/accordion/utils/animation.mjs +0 -31
  329. package/esm2020/button/button-group/button-group.mjs +0 -164
  330. package/esm2020/button/button-group/button-group.module.mjs +0 -28
  331. package/esm2020/button/button-group/button.mjs +0 -175
  332. package/esm2020/button/button-group/index.mjs +0 -10
  333. package/esm2020/button/button-loading/index.mjs +0 -9
  334. package/esm2020/button/button-loading/loading-button.mjs +0 -164
  335. package/esm2020/button/button-loading/loading-button.module.mjs +0 -25
  336. package/esm2020/button/button.module.mjs +0 -26
  337. package/esm2020/button/index.mjs +0 -10
  338. package/esm2020/button/providers/button-group-focus-handler.service.mjs +0 -97
  339. package/esm2020/button/providers/button-group-focus.enum.mjs +0 -12
  340. package/esm2020/button/providers/button-in-group.service.mjs +0 -26
  341. package/esm2020/clr-angular.mjs +0 -5
  342. package/esm2020/clr-angular.module.mjs +0 -93
  343. package/esm2020/data/data.module.mjs +0 -23
  344. package/esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs +0 -46
  345. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs +0 -93
  346. package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +0 -259
  347. package/esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs +0 -28
  348. package/esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs +0 -27
  349. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs +0 -82
  350. package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +0 -185
  351. package/esm2020/data/datagrid/built-in/nested-property.mjs +0 -38
  352. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +0 -34
  353. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +0 -20
  354. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +0 -34
  355. package/esm2020/data/datagrid/datagrid-action-bar.mjs +0 -21
  356. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +0 -166
  357. package/esm2020/data/datagrid/datagrid-cell.mjs +0 -40
  358. package/esm2020/data/datagrid/datagrid-column-separator.mjs +0 -171
  359. package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +0 -65
  360. package/esm2020/data/datagrid/datagrid-column-toggle-trackby.mjs +0 -8
  361. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +0 -204
  362. package/esm2020/data/datagrid/datagrid-column.mjs +0 -420
  363. package/esm2020/data/datagrid/datagrid-detail-body.mjs +0 -31
  364. package/esm2020/data/datagrid/datagrid-detail-header.mjs +0 -67
  365. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +0 -37
  366. package/esm2020/data/datagrid/datagrid-detail.mjs +0 -98
  367. package/esm2020/data/datagrid/datagrid-filter.mjs +0 -186
  368. package/esm2020/data/datagrid/datagrid-footer.mjs +0 -78
  369. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +0 -106
  370. package/esm2020/data/datagrid/datagrid-if-detail.mjs +0 -96
  371. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +0 -55
  372. package/esm2020/data/datagrid/datagrid-items.mjs +0 -72
  373. package/esm2020/data/datagrid/datagrid-page-size.mjs +0 -63
  374. package/esm2020/data/datagrid/datagrid-pagination.mjs +0 -388
  375. package/esm2020/data/datagrid/datagrid-placeholder.mjs +0 -42
  376. package/esm2020/data/datagrid/datagrid-row-detail.mjs +0 -116
  377. package/esm2020/data/datagrid/datagrid-row.mjs +0 -372
  378. package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +0 -37
  379. package/esm2020/data/datagrid/datagrid-single-selection.directive.mjs +0 -74
  380. package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +0 -340
  381. package/esm2020/data/datagrid/datagrid.mjs +0 -556
  382. package/esm2020/data/datagrid/datagrid.module.mjs +0 -238
  383. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +0 -16
  384. package/esm2020/data/datagrid/enums/display-mode.enum.mjs +0 -12
  385. package/esm2020/data/datagrid/enums/render-step.enum.mjs +0 -15
  386. package/esm2020/data/datagrid/enums/selection-type.mjs +0 -13
  387. package/esm2020/data/datagrid/enums/sort-order.enum.mjs +0 -20
  388. package/esm2020/data/datagrid/index.mjs +0 -56
  389. package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +0 -8
  390. package/esm2020/data/datagrid/interfaces/comparator.interface.mjs +0 -8
  391. package/esm2020/data/datagrid/interfaces/filter.interface.mjs +0 -8
  392. package/esm2020/data/datagrid/interfaces/key-nav-grid-strategy.interface.mjs +0 -8
  393. package/esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs +0 -8
  394. package/esm2020/data/datagrid/interfaces/state.interface.mjs +0 -8
  395. package/esm2020/data/datagrid/interfaces/string-filter.interface.mjs +0 -8
  396. package/esm2020/data/datagrid/interfaces/virtual-scroll-data-range.interface.mjs +0 -8
  397. package/esm2020/data/datagrid/providers/column-resizer.service.mjs +0 -58
  398. package/esm2020/data/datagrid/providers/column-state.provider.mjs +0 -19
  399. package/esm2020/data/datagrid/providers/columns.service.mjs +0 -63
  400. package/esm2020/data/datagrid/providers/custom-filter.mjs +0 -9
  401. package/esm2020/data/datagrid/providers/detail.service.mjs +0 -76
  402. package/esm2020/data/datagrid/providers/display-mode.service.mjs +0 -36
  403. package/esm2020/data/datagrid/providers/filters.mjs +0 -112
  404. package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +0 -34
  405. package/esm2020/data/datagrid/providers/items.mjs +0 -177
  406. package/esm2020/data/datagrid/providers/page.mjs +0 -156
  407. package/esm2020/data/datagrid/providers/row-action-service.mjs +0 -31
  408. package/esm2020/data/datagrid/providers/selection.mjs +0 -365
  409. package/esm2020/data/datagrid/providers/sort.mjs +0 -86
  410. package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +0 -43
  411. package/esm2020/data/datagrid/providers/state.provider.mjs +0 -75
  412. package/esm2020/data/datagrid/providers/table-size.service.mjs +0 -45
  413. package/esm2020/data/datagrid/render/cell-renderer.mjs +0 -59
  414. package/esm2020/data/datagrid/render/constants.mjs +0 -13
  415. package/esm2020/data/datagrid/render/header-renderer.mjs +0 -117
  416. package/esm2020/data/datagrid/render/main-renderer.mjs +0 -285
  417. package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +0 -48
  418. package/esm2020/data/datagrid/render/render-organizer.mjs +0 -39
  419. package/esm2020/data/datagrid/render/row-detail-renderer.mjs +0 -31
  420. package/esm2020/data/datagrid/render/row-renderer.mjs +0 -62
  421. package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +0 -43
  422. package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +0 -155
  423. package/esm2020/data/datagrid/utils/key-navigation-strategies/default.mjs +0 -132
  424. package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-columns-row.mjs +0 -129
  425. package/esm2020/data/datagrid/utils/key-navigation-strategies/expanded-row.mjs +0 -165
  426. package/esm2020/data/datagrid/utils/key-navigation-utils.mjs +0 -121
  427. package/esm2020/data/datagrid/wrapped-cell.mjs +0 -37
  428. package/esm2020/data/datagrid/wrapped-column.mjs +0 -38
  429. package/esm2020/data/datagrid/wrapped-row.mjs +0 -38
  430. package/esm2020/data/index.mjs +0 -11
  431. package/esm2020/data/stack-view/index.mjs +0 -13
  432. package/esm2020/data/stack-view/stack-block.mjs +0 -236
  433. package/esm2020/data/stack-view/stack-content-input.mjs +0 -27
  434. package/esm2020/data/stack-view/stack-header.mjs +0 -37
  435. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +0 -57
  436. package/esm2020/data/stack-view/stack-view.mjs +0 -23
  437. package/esm2020/data/stack-view/stack-view.module.mjs +0 -53
  438. package/esm2020/data/tree-view/index.mjs +0 -13
  439. package/esm2020/data/tree-view/models/async-array.mjs +0 -11
  440. package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +0 -37
  441. package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +0 -77
  442. package/esm2020/data/tree-view/models/selected-state.enum.mjs +0 -17
  443. package/esm2020/data/tree-view/models/tree-node.model.mjs +0 -116
  444. package/esm2020/data/tree-view/recursive-children.mjs +0 -88
  445. package/esm2020/data/tree-view/recursive-for-of.mjs +0 -57
  446. package/esm2020/data/tree-view/tree-features.service.mjs +0 -38
  447. package/esm2020/data/tree-view/tree-focus-manager.service.mjs +0 -190
  448. package/esm2020/data/tree-view/tree-node-link.mjs +0 -30
  449. package/esm2020/data/tree-view/tree-node.mjs +0 -348
  450. package/esm2020/data/tree-view/tree-view.module.mjs +0 -35
  451. package/esm2020/data/tree-view/tree.mjs +0 -102
  452. package/esm2020/emphasis/alert/alert-item.mjs +0 -52
  453. package/esm2020/emphasis/alert/alert-text.mjs +0 -23
  454. package/esm2020/emphasis/alert/alert.mjs +0 -142
  455. package/esm2020/emphasis/alert/alert.module.mjs +0 -36
  456. package/esm2020/emphasis/alert/alerts-pager.mjs +0 -87
  457. package/esm2020/emphasis/alert/alerts.mjs +0 -102
  458. package/esm2020/emphasis/alert/index.mjs +0 -13
  459. package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +0 -90
  460. package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +0 -97
  461. package/esm2020/emphasis/alert/utils/alert-info-object.mjs +0 -8
  462. package/esm2020/emphasis/alert/utils/alert-types.mjs +0 -9
  463. package/esm2020/emphasis/emphasis.module.mjs +0 -21
  464. package/esm2020/emphasis/index.mjs +0 -9
  465. package/esm2020/forms/checkbox/checkbox-container.mjs +0 -136
  466. package/esm2020/forms/checkbox/checkbox-wrapper.mjs +0 -70
  467. package/esm2020/forms/checkbox/checkbox.mjs +0 -53
  468. package/esm2020/forms/checkbox/checkbox.module.mjs +0 -33
  469. package/esm2020/forms/checkbox/index.mjs +0 -11
  470. package/esm2020/forms/combobox/combobox-container.mjs +0 -106
  471. package/esm2020/forms/combobox/combobox.mjs +0 -360
  472. package/esm2020/forms/combobox/combobox.module.mjs +0 -97
  473. package/esm2020/forms/combobox/index.mjs +0 -15
  474. package/esm2020/forms/combobox/model/combobox.model.mjs +0 -9
  475. package/esm2020/forms/combobox/model/multi-select-combobox.model.mjs +0 -82
  476. package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +0 -24
  477. package/esm2020/forms/combobox/model/single-select-combobox.model.mjs +0 -39
  478. package/esm2020/forms/combobox/option-group.mjs +0 -42
  479. package/esm2020/forms/combobox/option-items.directive.mjs +0 -110
  480. package/esm2020/forms/combobox/option-selected.directive.mjs +0 -25
  481. package/esm2020/forms/combobox/option.mjs +0 -103
  482. package/esm2020/forms/combobox/options.mjs +0 -156
  483. package/esm2020/forms/combobox/providers/combobox-container.service.mjs +0 -19
  484. package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +0 -222
  485. package/esm2020/forms/combobox/providers/option-selection.service.mjs +0 -85
  486. package/esm2020/forms/common/abstract-container.mjs +0 -135
  487. package/esm2020/forms/common/abstract-control.mjs +0 -51
  488. package/esm2020/forms/common/common.module.mjs +0 -78
  489. package/esm2020/forms/common/control-container.mjs +0 -84
  490. package/esm2020/forms/common/control.mjs +0 -31
  491. package/esm2020/forms/common/error.mjs +0 -38
  492. package/esm2020/forms/common/form.mjs +0 -54
  493. package/esm2020/forms/common/helper.mjs +0 -37
  494. package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +0 -46
  495. package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +0 -57
  496. package/esm2020/forms/common/if-control-state/if-error.mjs +0 -75
  497. package/esm2020/forms/common/if-control-state/if-success.mjs +0 -48
  498. package/esm2020/forms/common/index.mjs +0 -21
  499. package/esm2020/forms/common/label.mjs +0 -102
  500. package/esm2020/forms/common/layout.mjs +0 -32
  501. package/esm2020/forms/common/providers/container-id.service.mjs +0 -39
  502. package/esm2020/forms/common/providers/control-class.service.mjs +0 -53
  503. package/esm2020/forms/common/providers/control-id.service.mjs +0 -32
  504. package/esm2020/forms/common/providers/focus.service.mjs +0 -26
  505. package/esm2020/forms/common/providers/layout.service.mjs +0 -58
  506. package/esm2020/forms/common/providers/mark-control.service.mjs +0 -26
  507. package/esm2020/forms/common/providers/ng-control.service.mjs +0 -53
  508. package/esm2020/forms/common/success.mjs +0 -38
  509. package/esm2020/forms/common/wrapped-control.mjs +0 -191
  510. package/esm2020/forms/datalist/datalist-container.mjs +0 -121
  511. package/esm2020/forms/datalist/datalist-input.mjs +0 -63
  512. package/esm2020/forms/datalist/datalist.mjs +0 -49
  513. package/esm2020/forms/datalist/datalist.module.mjs +0 -32
  514. package/esm2020/forms/datalist/index.mjs +0 -11
  515. package/esm2020/forms/datalist/providers/datalist-id.service.mjs +0 -32
  516. package/esm2020/forms/datepicker/calendar.mjs +0 -175
  517. package/esm2020/forms/datepicker/date-container.mjs +0 -365
  518. package/esm2020/forms/datepicker/date-end-input.mjs +0 -60
  519. package/esm2020/forms/datepicker/date-input.mjs +0 -294
  520. package/esm2020/forms/datepicker/date-input.validator.mjs +0 -100
  521. package/esm2020/forms/datepicker/date-single-input.mjs +0 -63
  522. package/esm2020/forms/datepicker/date-start-input.mjs +0 -61
  523. package/esm2020/forms/datepicker/datepicker-action-buttons.mjs +0 -59
  524. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +0 -74
  525. package/esm2020/forms/datepicker/datepicker.module.mjs +0 -111
  526. package/esm2020/forms/datepicker/day.mjs +0 -145
  527. package/esm2020/forms/datepicker/daypicker.mjs +0 -81
  528. package/esm2020/forms/datepicker/index.mjs +0 -21
  529. package/esm2020/forms/datepicker/interfaces/date-range.interface.mjs +0 -8
  530. package/esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs +0 -8
  531. package/esm2020/forms/datepicker/model/calendar-view.model.mjs +0 -182
  532. package/esm2020/forms/datepicker/model/calendar.model.mjs +0 -79
  533. package/esm2020/forms/datepicker/model/day-view.model.mjs +0 -25
  534. package/esm2020/forms/datepicker/model/day.model.mjs +0 -72
  535. package/esm2020/forms/datepicker/model/year-range.model.mjs +0 -61
  536. package/esm2020/forms/datepicker/monthpicker.mjs +0 -325
  537. package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +0 -37
  538. package/esm2020/forms/datepicker/providers/date-io.service.mjs +0 -195
  539. package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +0 -195
  540. package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +0 -47
  541. package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +0 -48
  542. package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +0 -102
  543. package/esm2020/forms/datepicker/providers/view-manager.service.mjs +0 -42
  544. package/esm2020/forms/datepicker/utils/constants.mjs +0 -38
  545. package/esm2020/forms/datepicker/utils/date-utils.mjs +0 -50
  546. package/esm2020/forms/datepicker/yearpicker.mjs +0 -304
  547. package/esm2020/forms/file-input/file-input-container.mjs +0 -245
  548. package/esm2020/forms/file-input/file-input-validator-errors.mjs +0 -8
  549. package/esm2020/forms/file-input/file-input-validator.mjs +0 -64
  550. package/esm2020/forms/file-input/file-input-value-accessor.mjs +0 -53
  551. package/esm2020/forms/file-input/file-input.helpers.mjs +0 -22
  552. package/esm2020/forms/file-input/file-input.mjs +0 -77
  553. package/esm2020/forms/file-input/file-input.module.mjs +0 -74
  554. package/esm2020/forms/file-input/file-list.mjs +0 -160
  555. package/esm2020/forms/file-input/file-messages-template.mjs +0 -26
  556. package/esm2020/forms/file-input/file-messages.mjs +0 -61
  557. package/esm2020/forms/file-input/index.mjs +0 -16
  558. package/esm2020/forms/forms.module.mjs +0 -73
  559. package/esm2020/forms/index.mjs +0 -21
  560. package/esm2020/forms/input/index.mjs +0 -10
  561. package/esm2020/forms/input/input-container.mjs +0 -92
  562. package/esm2020/forms/input/input.mjs +0 -40
  563. package/esm2020/forms/input/input.module.mjs +0 -33
  564. package/esm2020/forms/number-input/index.mjs +0 -10
  565. package/esm2020/forms/number-input/number-input-container.mjs +0 -148
  566. package/esm2020/forms/number-input/number-input.mjs +0 -79
  567. package/esm2020/forms/number-input/number-input.module.mjs +0 -32
  568. package/esm2020/forms/password/index.mjs +0 -10
  569. package/esm2020/forms/password/password-container.mjs +0 -180
  570. package/esm2020/forms/password/password.mjs +0 -64
  571. package/esm2020/forms/password/password.module.mjs +0 -32
  572. package/esm2020/forms/radio/index.mjs +0 -11
  573. package/esm2020/forms/radio/radio-container.mjs +0 -150
  574. package/esm2020/forms/radio/radio-wrapper.mjs +0 -44
  575. package/esm2020/forms/radio/radio.mjs +0 -29
  576. package/esm2020/forms/radio/radio.module.mjs +0 -33
  577. package/esm2020/forms/range/index.mjs +0 -10
  578. package/esm2020/forms/range/range-container.mjs +0 -137
  579. package/esm2020/forms/range/range.mjs +0 -30
  580. package/esm2020/forms/range/range.module.mjs +0 -32
  581. package/esm2020/forms/select/index.mjs +0 -10
  582. package/esm2020/forms/select/select-container.mjs +0 -114
  583. package/esm2020/forms/select/select.mjs +0 -31
  584. package/esm2020/forms/select/select.module.mjs +0 -32
  585. package/esm2020/forms/textarea/index.mjs +0 -10
  586. package/esm2020/forms/textarea/textarea-container.mjs +0 -84
  587. package/esm2020/forms/textarea/textarea.mjs +0 -31
  588. package/esm2020/forms/textarea/textarea.module.mjs +0 -32
  589. package/esm2020/icon/icon.mjs +0 -29
  590. package/esm2020/icon/icon.module.mjs +0 -25
  591. package/esm2020/icon/index.mjs +0 -9
  592. package/esm2020/index.mjs +0 -23
  593. package/esm2020/layout/breadcrumbs/breadcrumb-item.mjs +0 -24
  594. package/esm2020/layout/breadcrumbs/breadcrumbs.constants.mjs +0 -8
  595. package/esm2020/layout/breadcrumbs/breadcrumbs.mjs +0 -46
  596. package/esm2020/layout/breadcrumbs/breadcrumbs.module.mjs +0 -28
  597. package/esm2020/layout/breadcrumbs/index.mjs +0 -11
  598. package/esm2020/layout/breadcrumbs/model/breadcrumbs.model.mjs +0 -8
  599. package/esm2020/layout/index.mjs +0 -13
  600. package/esm2020/layout/layout.module.mjs +0 -25
  601. package/esm2020/layout/main-container/index.mjs +0 -9
  602. package/esm2020/layout/main-container/main-container.mjs +0 -62
  603. package/esm2020/layout/main-container/main-container.module.mjs +0 -26
  604. package/esm2020/layout/nav/aria-current-link.mjs +0 -32
  605. package/esm2020/layout/nav/chocolate/index.mjs +0 -9
  606. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +0 -20
  607. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +0 -36
  608. package/esm2020/layout/nav/header.mjs +0 -154
  609. package/esm2020/layout/nav/index.mjs +0 -12
  610. package/esm2020/layout/nav/nav-level.mjs +0 -197
  611. package/esm2020/layout/nav/navigation.module.mjs +0 -45
  612. package/esm2020/layout/nav/providers/responsive-navigation.service.mjs +0 -61
  613. package/esm2020/layout/nav/responsive-nav-codes.mjs +0 -21
  614. package/esm2020/layout/nav/responsive-nav-control-message.mjs +0 -19
  615. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +0 -39
  616. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +0 -20
  617. package/esm2020/layout/tabs/enums/tabs-layout.enum.mjs +0 -12
  618. package/esm2020/layout/tabs/index.mjs +0 -17
  619. package/esm2020/layout/tabs/providers/tabs.service.mjs +0 -46
  620. package/esm2020/layout/tabs/tab-action.directive.mjs +0 -22
  621. package/esm2020/layout/tabs/tab-content.mjs +0 -87
  622. package/esm2020/layout/tabs/tab-link.directive.mjs +0 -105
  623. package/esm2020/layout/tabs/tab-overflow-content.mjs +0 -23
  624. package/esm2020/layout/tabs/tab.mjs +0 -47
  625. package/esm2020/layout/tabs/tabs-actions.mjs +0 -39
  626. package/esm2020/layout/tabs/tabs-id.provider.mjs +0 -17
  627. package/esm2020/layout/tabs/tabs.mjs +0 -327
  628. package/esm2020/layout/tabs/tabs.module.mjs +0 -67
  629. package/esm2020/layout/vertical-nav/index.mjs +0 -13
  630. package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +0 -25
  631. package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +0 -26
  632. package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +0 -28
  633. package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +0 -55
  634. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +0 -20
  635. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +0 -162
  636. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +0 -28
  637. package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +0 -57
  638. package/esm2020/layout/vertical-nav/vertical-nav.mjs +0 -85
  639. package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +0 -50
  640. package/esm2020/modal/index.mjs +0 -14
  641. package/esm2020/modal/modal-body.mjs +0 -65
  642. package/esm2020/modal/modal-configuration.service.mjs +0 -21
  643. package/esm2020/modal/modal-host.component.mjs +0 -29
  644. package/esm2020/modal/modal-stack.service.mjs +0 -53
  645. package/esm2020/modal/modal.mjs +0 -185
  646. package/esm2020/modal/modal.module.mjs +0 -33
  647. package/esm2020/modal/side-panel.mjs +0 -227
  648. package/esm2020/modal/side-panel.module.mjs +0 -28
  649. package/esm2020/popover/common/abstract-popover.mjs +0 -138
  650. package/esm2020/popover/common/popover-host-anchor.token.mjs +0 -9
  651. package/esm2020/popover/common/popover-options.interface.mjs +0 -8
  652. package/esm2020/popover/common/popover.mjs +0 -267
  653. package/esm2020/popover/dropdown/dropdown-item.mjs +0 -105
  654. package/esm2020/popover/dropdown/dropdown-menu.mjs +0 -115
  655. package/esm2020/popover/dropdown/dropdown-trigger.mjs +0 -51
  656. package/esm2020/popover/dropdown/dropdown.mjs +0 -53
  657. package/esm2020/popover/dropdown/dropdown.module.mjs +0 -30
  658. package/esm2020/popover/dropdown/index.mjs +0 -13
  659. package/esm2020/popover/dropdown/menu-positions.mjs +0 -17
  660. package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +0 -186
  661. package/esm2020/popover/dropdown/providers/dropdown.service.mjs +0 -34
  662. package/esm2020/popover/index.mjs +0 -11
  663. package/esm2020/popover/popover.module.mjs +0 -23
  664. package/esm2020/popover/signpost/index.mjs +0 -12
  665. package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +0 -24
  666. package/esm2020/popover/signpost/providers/signpost-id.service.mjs +0 -26
  667. package/esm2020/popover/signpost/signpost-content.mjs +0 -179
  668. package/esm2020/popover/signpost/signpost-positions.mjs +0 -23
  669. package/esm2020/popover/signpost/signpost-title.mjs +0 -21
  670. package/esm2020/popover/signpost/signpost-trigger.mjs +0 -90
  671. package/esm2020/popover/signpost/signpost.mjs +0 -94
  672. package/esm2020/popover/signpost/signpost.module.mjs +0 -46
  673. package/esm2020/popover/tooltip/index.mjs +0 -11
  674. package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +0 -26
  675. package/esm2020/popover/tooltip/providers/tooltip-mouse.service.mjs +0 -44
  676. package/esm2020/popover/tooltip/tooltip-content.mjs +0 -135
  677. package/esm2020/popover/tooltip/tooltip-trigger.mjs +0 -62
  678. package/esm2020/popover/tooltip/tooltip.mjs +0 -29
  679. package/esm2020/popover/tooltip/tooltip.module.mjs +0 -29
  680. package/esm2020/progress/progress-bars/index.mjs +0 -9
  681. package/esm2020/progress/progress-bars/progress-bar.mjs +0 -177
  682. package/esm2020/progress/progress-bars/progress-bar.module.mjs +0 -25
  683. package/esm2020/progress/spinner/index.mjs +0 -9
  684. package/esm2020/progress/spinner/spinner.mjs +0 -95
  685. package/esm2020/progress/spinner/spinner.module.mjs +0 -25
  686. package/esm2020/timeline/enums/timeline-layout.enum.mjs +0 -12
  687. package/esm2020/timeline/enums/timeline-step-state.enum.mjs +0 -15
  688. package/esm2020/timeline/index.mjs +0 -15
  689. package/esm2020/timeline/interface/icon-attribute.interface.mjs +0 -8
  690. package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +0 -55
  691. package/esm2020/timeline/timeline-step-description.mjs +0 -21
  692. package/esm2020/timeline/timeline-step-header.mjs +0 -21
  693. package/esm2020/timeline/timeline-step-title.mjs +0 -31
  694. package/esm2020/timeline/timeline-step.mjs +0 -97
  695. package/esm2020/timeline/timeline.mjs +0 -36
  696. package/esm2020/timeline/timeline.module.mjs +0 -49
  697. package/esm2020/utils/animations/collapse/collapse.mjs +0 -17
  698. package/esm2020/utils/animations/collapse/index.mjs +0 -8
  699. package/esm2020/utils/animations/constants.mjs +0 -14
  700. package/esm2020/utils/animations/expandable-animation/base-expandable-animation.mjs +0 -46
  701. package/esm2020/utils/animations/expandable-animation/expandable-animation.directive.mjs +0 -56
  702. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +0 -49
  703. package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +0 -26
  704. package/esm2020/utils/animations/expandable-animation/index.mjs +0 -12
  705. package/esm2020/utils/animations/fade/fade.mjs +0 -15
  706. package/esm2020/utils/animations/fade/index.mjs +0 -8
  707. package/esm2020/utils/animations/fade-slide/fade-slide.mjs +0 -31
  708. package/esm2020/utils/animations/fade-slide/index.mjs +0 -8
  709. package/esm2020/utils/animations/index.mjs +0 -12
  710. package/esm2020/utils/animations/slide/index.mjs +0 -8
  711. package/esm2020/utils/animations/slide/slide.mjs +0 -31
  712. package/esm2020/utils/assert/assert.helpers.mjs +0 -10
  713. package/esm2020/utils/breakpoints/breakpoints.mjs +0 -24
  714. package/esm2020/utils/cdk/cdk-drag.module.mjs +0 -58
  715. package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +0 -53
  716. package/esm2020/utils/chocolate/oompa-loompa.mjs +0 -33
  717. package/esm2020/utils/chocolate/willy-wonka.mjs +0 -37
  718. package/esm2020/utils/component/is-boolean-attribute-set.mjs +0 -19
  719. package/esm2020/utils/conditional/conditional.module.mjs +0 -27
  720. package/esm2020/utils/conditional/if-active.directive.mjs +0 -98
  721. package/esm2020/utils/conditional/if-active.service.mjs +0 -71
  722. package/esm2020/utils/conditional/if-expanded.directive.mjs +0 -96
  723. package/esm2020/utils/conditional/if-expanded.service.mjs +0 -60
  724. package/esm2020/utils/conditional/if-open.directive.mjs +0 -81
  725. package/esm2020/utils/conditional/index.mjs +0 -11
  726. package/esm2020/utils/destroy/destroy.service.mjs +0 -45
  727. package/esm2020/utils/destroy/index.mjs +0 -8
  728. package/esm2020/utils/dom-adapter/dom-adapter.mjs +0 -62
  729. package/esm2020/utils/enums/keys.enum.mjs +0 -33
  730. package/esm2020/utils/focus/arrow-key-direction.enum.mjs +0 -14
  731. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +0 -90
  732. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +0 -27
  733. package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs +0 -15
  734. package/esm2020/utils/focus/focus-on-view-init/index.mjs +0 -10
  735. package/esm2020/utils/focus/focus-trap/index.mjs +0 -8
  736. package/esm2020/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.mjs +0 -35
  737. package/esm2020/utils/focus/focus.service.mjs +0 -95
  738. package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +0 -55
  739. package/esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs +0 -17
  740. package/esm2020/utils/focus/focusable-item/focusable-item.mjs +0 -9
  741. package/esm2020/utils/focus/focusable-item/linkers.mjs +0 -35
  742. package/esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs +0 -13
  743. package/esm2020/utils/focus/key-focus/index.mjs +0 -9
  744. package/esm2020/utils/focus/key-focus/interfaces.mjs +0 -8
  745. package/esm2020/utils/focus/key-focus/key-focus-item.mjs +0 -35
  746. package/esm2020/utils/focus/key-focus/key-focus.mjs +0 -199
  747. package/esm2020/utils/focus/key-focus/key-focus.module.mjs +0 -27
  748. package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +0 -103
  749. package/esm2020/utils/focus/key-focus/util.mjs +0 -45
  750. package/esm2020/utils/focus/wrap-observable.mjs +0 -20
  751. package/esm2020/utils/forms/validation.mjs +0 -21
  752. package/esm2020/utils/host-wrapping/empty-anchor.mjs +0 -19
  753. package/esm2020/utils/host-wrapping/host-wrapper.mjs +0 -42
  754. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +0 -25
  755. package/esm2020/utils/i18n/common-strings.default.mjs +0 -137
  756. package/esm2020/utils/i18n/common-strings.interface.mjs +0 -8
  757. package/esm2020/utils/i18n/common-strings.service.mjs +0 -48
  758. package/esm2020/utils/i18n/index.mjs +0 -10
  759. package/esm2020/utils/id-generator/id-generator.service.mjs +0 -11
  760. package/esm2020/utils/index.mjs +0 -15
  761. package/esm2020/utils/loading/index.mjs +0 -10
  762. package/esm2020/utils/loading/loading-listener.mjs +0 -13
  763. package/esm2020/utils/loading/loading.mjs +0 -58
  764. package/esm2020/utils/loading/loading.module.mjs +0 -25
  765. package/esm2020/utils/outside-click/index.mjs +0 -10
  766. package/esm2020/utils/outside-click/outside-click.mjs +0 -49
  767. package/esm2020/utils/outside-click/outside-click.module.mjs +0 -25
  768. package/esm2020/utils/popover/enums/alignment.enum.mjs +0 -13
  769. package/esm2020/utils/popover/enums/axis.enum.mjs +0 -12
  770. package/esm2020/utils/popover/enums/positions.enum.mjs +0 -60
  771. package/esm2020/utils/popover/enums/side.enum.mjs +0 -12
  772. package/esm2020/utils/popover/enums/viewport-violation.enum.mjs +0 -14
  773. package/esm2020/utils/popover/index.mjs +0 -21
  774. package/esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs +0 -8
  775. package/esm2020/utils/popover/interfaces/popover-position.interface.mjs +0 -8
  776. package/esm2020/utils/popover/interfaces/visibility-coords.interface.mjs +0 -8
  777. package/esm2020/utils/popover/popover-anchor.mjs +0 -26
  778. package/esm2020/utils/popover/popover-close-button.mjs +0 -52
  779. package/esm2020/utils/popover/popover-content.mjs +0 -161
  780. package/esm2020/utils/popover/popover-host.directive.mjs +0 -37
  781. package/esm2020/utils/popover/popover-open-close-button.mjs +0 -43
  782. package/esm2020/utils/popover/popover.module.mjs +0 -26
  783. package/esm2020/utils/popover/position-operators.mjs +0 -180
  784. package/esm2020/utils/popover/providers/popover-events.service.mjs +0 -142
  785. package/esm2020/utils/popover/providers/popover-position.service.mjs +0 -230
  786. package/esm2020/utils/popover/providers/popover-toggle.service.mjs +0 -75
  787. package/esm2020/utils/popover/stop-escape-propagation.directive.mjs +0 -43
  788. package/esm2020/utils/scrolling/scrolling-service.mjs +0 -31
  789. package/esm2020/utils/template-ref/index.mjs +0 -10
  790. package/esm2020/utils/template-ref/template-ref-container.mjs +0 -30
  791. package/esm2020/utils/template-ref/template-ref.module.mjs +0 -25
  792. package/esm2020/wizard/heading-level.mjs +0 -8
  793. package/esm2020/wizard/index.mjs +0 -20
  794. package/esm2020/wizard/providers/button-hub.service.mjs +0 -64
  795. package/esm2020/wizard/providers/header-actions.service.mjs +0 -36
  796. package/esm2020/wizard/providers/page-collection.service.mjs +0 -360
  797. package/esm2020/wizard/providers/wizard-navigation.service.mjs +0 -575
  798. package/esm2020/wizard/wizard-button.mjs +0 -188
  799. package/esm2020/wizard/wizard-header-action.mjs +0 -77
  800. package/esm2020/wizard/wizard-page-buttons.mjs +0 -22
  801. package/esm2020/wizard/wizard-page-header-actions.mjs +0 -22
  802. package/esm2020/wizard/wizard-page-navtitle.mjs +0 -22
  803. package/esm2020/wizard/wizard-page-title.mjs +0 -25
  804. package/esm2020/wizard/wizard-page.mjs +0 -652
  805. package/esm2020/wizard/wizard-stepnav-item.mjs +0 -204
  806. package/esm2020/wizard/wizard-stepnav.mjs +0 -55
  807. package/esm2020/wizard/wizard-title.mjs +0 -22
  808. package/esm2020/wizard/wizard.mjs +0 -525
  809. package/esm2020/wizard/wizard.module.mjs +0 -73
  810. package/fesm2015/clr-angular.mjs +0 -31490
  811. package/fesm2015/clr-angular.mjs.map +0 -1
  812. package/fesm2020/clr-angular.mjs +0 -31306
  813. package/fesm2020/clr-angular.mjs.map +0 -1
  814. package/forms/checkbox/checkbox-container.d.ts +0 -25
  815. package/forms/checkbox/checkbox-wrapper.d.ts +0 -22
  816. package/forms/checkbox/checkbox.d.ts +0 -20
  817. package/forms/checkbox/checkbox.module.d.ts +0 -14
  818. package/forms/checkbox/index.d.ts +0 -4
  819. package/forms/combobox/combobox-container.d.ts +0 -18
  820. package/forms/combobox/combobox.d.ts +0 -87
  821. package/forms/combobox/combobox.module.d.ts +0 -22
  822. package/forms/combobox/index.d.ts +0 -8
  823. package/forms/combobox/model/combobox.model.d.ts +0 -9
  824. package/forms/combobox/model/multi-select-combobox.model.d.ts +0 -12
  825. package/forms/combobox/model/pseudo-focus.model.d.ts +0 -7
  826. package/forms/combobox/model/single-select-combobox.model.d.ts +0 -10
  827. package/forms/combobox/option-group.d.ts +0 -9
  828. package/forms/combobox/option-items.directive.d.ts +0 -28
  829. package/forms/combobox/option-selected.directive.d.ts +0 -13
  830. package/forms/combobox/option.d.ts +0 -25
  831. package/forms/combobox/options.d.ts +0 -36
  832. package/forms/combobox/providers/combobox-container.service.d.ts +0 -7
  833. package/forms/combobox/providers/combobox-focus-handler.service.d.ts +0 -48
  834. package/forms/combobox/providers/option-selection.service.d.ts +0 -24
  835. package/forms/common/abstract-container.d.ts +0 -47
  836. package/forms/common/abstract-control.d.ts +0 -18
  837. package/forms/common/common.module.d.ts +0 -19
  838. package/forms/common/control-container.d.ts +0 -6
  839. package/forms/common/control.d.ts +0 -11
  840. package/forms/common/error.d.ts +0 -12
  841. package/forms/common/form.d.ts +0 -16
  842. package/forms/common/helper.d.ts +0 -12
  843. package/forms/common/if-control-state/abstract-if-state.d.ts +0 -18
  844. package/forms/common/if-control-state/if-control-state.service.d.ts +0 -17
  845. package/forms/common/if-control-state/if-error.d.ts +0 -19
  846. package/forms/common/if-control-state/if-success.d.ts +0 -16
  847. package/forms/common/index.d.ts +0 -14
  848. package/forms/common/label.d.ts +0 -32
  849. package/forms/common/layout.d.ts +0 -11
  850. package/forms/common/providers/container-id.service.d.ts +0 -18
  851. package/forms/common/providers/control-class.service.d.ts +0 -13
  852. package/forms/common/providers/control-id.service.d.ts +0 -11
  853. package/forms/common/providers/focus.service.d.ts +0 -9
  854. package/forms/common/providers/layout.service.d.ts +0 -23
  855. package/forms/common/providers/mark-control.service.d.ts +0 -9
  856. package/forms/common/providers/ng-control.service.d.ts +0 -27
  857. package/forms/common/success.d.ts +0 -12
  858. package/forms/common/wrapped-control.d.ts +0 -46
  859. package/forms/datalist/datalist-container.d.ts +0 -14
  860. package/forms/datalist/datalist-input.d.ts +0 -18
  861. package/forms/datalist/datalist.d.ts +0 -14
  862. package/forms/datalist/datalist.module.d.ts +0 -13
  863. package/forms/datalist/index.d.ts +0 -4
  864. package/forms/datalist/providers/datalist-id.service.d.ts +0 -11
  865. package/forms/datepicker/calendar.d.ts +0 -65
  866. package/forms/datepicker/date-container.d.ts +0 -72
  867. package/forms/datepicker/date-end-input.d.ts +0 -15
  868. package/forms/datepicker/date-input.d.ts +0 -67
  869. package/forms/datepicker/date-input.validator.d.ts +0 -27
  870. package/forms/datepicker/date-single-input.d.ts +0 -15
  871. package/forms/datepicker/date-start-input.d.ts +0 -15
  872. package/forms/datepicker/datepicker-action-buttons.d.ts +0 -16
  873. package/forms/datepicker/datepicker-view-manager.d.ts +0 -30
  874. package/forms/datepicker/datepicker.module.d.ts +0 -29
  875. package/forms/datepicker/day.d.ts +0 -40
  876. package/forms/datepicker/daypicker.d.ts +0 -44
  877. package/forms/datepicker/index.d.ts +0 -14
  878. package/forms/datepicker/interfaces/date-range.interface.d.ts +0 -13
  879. package/forms/datepicker/interfaces/day-of-week.interface.d.ts +0 -4
  880. package/forms/datepicker/model/calendar-view.model.d.ts +0 -74
  881. package/forms/datepicker/model/calendar.model.d.ts +0 -35
  882. package/forms/datepicker/model/day-view.model.d.ts +0 -16
  883. package/forms/datepicker/model/day.model.d.ts +0 -30
  884. package/forms/datepicker/model/year-range.model.d.ts +0 -34
  885. package/forms/datepicker/monthpicker.d.ts +0 -87
  886. package/forms/datepicker/providers/date-form-control.service.d.ts +0 -14
  887. package/forms/datepicker/providers/date-io.service.d.ts +0 -39
  888. package/forms/datepicker/providers/date-navigation.service.d.ts +0 -94
  889. package/forms/datepicker/providers/datepicker-enabled.service.d.ts +0 -15
  890. package/forms/datepicker/providers/datepicker-focus.service.d.ts +0 -16
  891. package/forms/datepicker/providers/locale-helper.service.d.ts +0 -46
  892. package/forms/datepicker/providers/view-manager.service.d.ts +0 -17
  893. package/forms/datepicker/utils/constants.d.ts +0 -24
  894. package/forms/datepicker/utils/date-utils.d.ts +0 -16
  895. package/forms/datepicker/yearpicker.d.ts +0 -78
  896. package/forms/file-input/file-input-container.d.ts +0 -27
  897. package/forms/file-input/file-input-validator-errors.d.ts +0 -52
  898. package/forms/file-input/file-input-validator.d.ts +0 -12
  899. package/forms/file-input/file-input-value-accessor.d.ts +0 -15
  900. package/forms/file-input/file-input.d.ts +0 -23
  901. package/forms/file-input/file-input.helpers.d.ts +0 -3
  902. package/forms/file-input/file-input.module.d.ts +0 -17
  903. package/forms/file-input/file-list.d.ts +0 -18
  904. package/forms/file-input/file-messages-template.d.ts +0 -19
  905. package/forms/file-input/file-messages.d.ts +0 -17
  906. package/forms/file-input/index.d.ts +0 -9
  907. package/forms/forms.module.d.ts +0 -20
  908. package/forms/index.d.ts +0 -14
  909. package/forms/input/index.d.ts +0 -3
  910. package/forms/input/input-container.d.ts +0 -6
  911. package/forms/input/input.d.ts +0 -11
  912. package/forms/input/input.module.d.ts +0 -13
  913. package/forms/number-input/index.d.ts +0 -3
  914. package/forms/number-input/number-input-container.d.ts +0 -17
  915. package/forms/number-input/number-input.d.ts +0 -22
  916. package/forms/number-input/number-input.module.d.ts +0 -13
  917. package/forms/password/index.d.ts +0 -3
  918. package/forms/password/password-container.d.ts +0 -32
  919. package/forms/password/password.d.ts +0 -16
  920. package/forms/password/password.module.d.ts +0 -13
  921. package/forms/radio/index.d.ts +0 -4
  922. package/forms/radio/radio-container.d.ts +0 -28
  923. package/forms/radio/radio-wrapper.d.ts +0 -9
  924. package/forms/radio/radio.d.ts +0 -10
  925. package/forms/radio/radio.module.d.ts +0 -14
  926. package/forms/range/index.d.ts +0 -3
  927. package/forms/range/range-container.d.ts +0 -22
  928. package/forms/range/range.d.ts +0 -10
  929. package/forms/range/range.module.d.ts +0 -13
  930. package/forms/select/index.d.ts +0 -3
  931. package/forms/select/select-container.d.ts +0 -20
  932. package/forms/select/select.d.ts +0 -11
  933. package/forms/select/select.module.d.ts +0 -13
  934. package/forms/textarea/index.d.ts +0 -3
  935. package/forms/textarea/textarea-container.d.ts +0 -6
  936. package/forms/textarea/textarea.d.ts +0 -11
  937. package/forms/textarea/textarea.module.d.ts +0 -13
  938. package/icon/icon.d.ts +0 -9
  939. package/icon/icon.module.d.ts +0 -10
  940. package/icon/index.d.ts +0 -2
  941. package/index.d.ts +0 -16
  942. package/layout/breadcrumbs/breadcrumb-item.d.ts +0 -5
  943. package/layout/breadcrumbs/breadcrumbs.constants.d.ts +0 -1
  944. package/layout/breadcrumbs/breadcrumbs.d.ts +0 -17
  945. package/layout/breadcrumbs/breadcrumbs.module.d.ts +0 -12
  946. package/layout/breadcrumbs/index.d.ts +0 -4
  947. package/layout/breadcrumbs/model/breadcrumbs.model.d.ts +0 -9
  948. package/layout/index.d.ts +0 -6
  949. package/layout/layout.module.d.ts +0 -11
  950. package/layout/main-container/index.d.ts +0 -2
  951. package/layout/main-container/main-container.d.ts +0 -17
  952. package/layout/main-container/main-container.module.d.ts +0 -11
  953. package/layout/nav/aria-current-link.d.ts +0 -13
  954. package/layout/nav/chocolate/index.d.ts +0 -2
  955. package/layout/nav/chocolate/main-container-willy-wonka.d.ts +0 -6
  956. package/layout/nav/chocolate/nav-detection-oompa-loompa.d.ts +0 -12
  957. package/layout/nav/header.d.ts +0 -31
  958. package/layout/nav/index.d.ts +0 -5
  959. package/layout/nav/nav-level.d.ts +0 -35
  960. package/layout/nav/navigation.module.d.ts +0 -16
  961. package/layout/nav/providers/responsive-navigation.service.d.ts +0 -18
  962. package/layout/nav/responsive-nav-codes.d.ts +0 -14
  963. package/layout/nav/responsive-nav-control-message.d.ts +0 -7
  964. package/layout/tabs/chocolate/active-oompa-loompa.d.ts +0 -13
  965. package/layout/tabs/chocolate/tabs-willy-wonka.d.ts +0 -6
  966. package/layout/tabs/enums/tabs-layout.enum.d.ts +0 -4
  967. package/layout/tabs/index.d.ts +0 -11
  968. package/layout/tabs/providers/tabs.service.d.ts +0 -16
  969. package/layout/tabs/tab-action.directive.d.ts +0 -5
  970. package/layout/tabs/tab-content.d.ts +0 -18
  971. package/layout/tabs/tab-link.directive.d.ts +0 -25
  972. package/layout/tabs/tab-overflow-content.d.ts +0 -5
  973. package/layout/tabs/tab.d.ts +0 -17
  974. package/layout/tabs/tabs-actions.d.ts +0 -7
  975. package/layout/tabs/tabs-id.provider.d.ts +0 -7
  976. package/layout/tabs/tabs.d.ts +0 -50
  977. package/layout/tabs/tabs.module.d.ts +0 -23
  978. package/layout/vertical-nav/index.d.ts +0 -6
  979. package/layout/vertical-nav/providers/vertical-nav-group-registration.service.d.ts +0 -8
  980. package/layout/vertical-nav/providers/vertical-nav-group.service.d.ts +0 -9
  981. package/layout/vertical-nav/providers/vertical-nav-icon.service.d.ts +0 -9
  982. package/layout/vertical-nav/providers/vertical-nav.service.d.ts +0 -17
  983. package/layout/vertical-nav/vertical-nav-group-children.d.ts +0 -5
  984. package/layout/vertical-nav/vertical-nav-group.d.ts +0 -32
  985. package/layout/vertical-nav/vertical-nav-icon.d.ts +0 -10
  986. package/layout/vertical-nav/vertical-nav-link.d.ts +0 -10
  987. package/layout/vertical-nav/vertical-nav.d.ts +0 -28
  988. package/layout/vertical-nav/vertical-nav.module.d.ts +0 -18
  989. package/modal/index.d.ts +0 -7
  990. package/modal/modal-body.d.ts +0 -22
  991. package/modal/modal-configuration.service.d.ts +0 -7
  992. package/modal/modal-host.component.d.ts +0 -5
  993. package/modal/modal-stack.service.d.ts +0 -15
  994. package/modal/modal.d.ts +0 -43
  995. package/modal/modal.module.d.ts +0 -15
  996. package/modal/side-panel.d.ts +0 -53
  997. package/modal/side-panel.module.d.ts +0 -13
  998. package/popover/common/abstract-popover.d.ts +0 -35
  999. package/popover/common/popover-host-anchor.token.d.ts +0 -2
  1000. package/popover/common/popover-options.interface.d.ts +0 -7
  1001. package/popover/common/popover.d.ts +0 -30
  1002. package/popover/dropdown/dropdown-item.d.ts +0 -27
  1003. package/popover/dropdown/dropdown-menu.d.ts +0 -15
  1004. package/popover/dropdown/dropdown-trigger.d.ts +0 -16
  1005. package/popover/dropdown/dropdown.d.ts +0 -17
  1006. package/popover/dropdown/dropdown.module.d.ts +0 -15
  1007. package/popover/dropdown/index.d.ts +0 -6
  1008. package/popover/dropdown/menu-positions.d.ts +0 -1
  1009. package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +0 -49
  1010. package/popover/dropdown/providers/dropdown.service.d.ts +0 -16
  1011. package/popover/index.d.ts +0 -4
  1012. package/popover/popover.module.d.ts +0 -9
  1013. package/popover/signpost/index.d.ts +0 -5
  1014. package/popover/signpost/providers/signpost-focus-manager.service.d.ts +0 -8
  1015. package/popover/signpost/providers/signpost-id.service.d.ts +0 -9
  1016. package/popover/signpost/signpost-content.d.ts +0 -57
  1017. package/popover/signpost/signpost-positions.d.ts +0 -10
  1018. package/popover/signpost/signpost-title.d.ts +0 -5
  1019. package/popover/signpost/signpost-trigger.d.ts +0 -29
  1020. package/popover/signpost/signpost.d.ts +0 -27
  1021. package/popover/signpost/signpost.module.d.ts +0 -17
  1022. package/popover/tooltip/index.d.ts +0 -4
  1023. package/popover/tooltip/providers/tooltip-id.service.d.ts +0 -9
  1024. package/popover/tooltip/providers/tooltip-mouse.service.d.ts +0 -15
  1025. package/popover/tooltip/tooltip-content.d.ts +0 -25
  1026. package/popover/tooltip/tooltip-trigger.d.ts +0 -18
  1027. package/popover/tooltip/tooltip.d.ts +0 -6
  1028. package/popover/tooltip/tooltip.module.d.ts +0 -14
  1029. package/progress/progress-bars/index.d.ts +0 -2
  1030. package/progress/progress-bars/progress-bar.module.d.ts +0 -10
  1031. package/progress/spinner/index.d.ts +0 -2
  1032. package/progress/spinner/spinner.module.d.ts +0 -10
  1033. package/src/utils/popover/README.md +0 -139
  1034. package/timeline/enums/timeline-layout.enum.d.ts +0 -4
  1035. package/timeline/enums/timeline-step-state.enum.d.ts +0 -7
  1036. package/timeline/index.d.ts +0 -8
  1037. package/timeline/interface/icon-attribute.interface.d.ts +0 -6
  1038. package/timeline/providers/timeline-icon-attribute.service.d.ts +0 -12
  1039. package/timeline/timeline-step-description.d.ts +0 -5
  1040. package/timeline/timeline-step-header.d.ts +0 -5
  1041. package/timeline/timeline-step-title.d.ts +0 -15
  1042. package/timeline/timeline-step.d.ts +0 -19
  1043. package/timeline/timeline.d.ts +0 -8
  1044. package/timeline/timeline.module.d.ts +0 -15
  1045. package/utils/animations/collapse/collapse.d.ts +0 -2
  1046. package/utils/animations/collapse/index.d.ts +0 -1
  1047. package/utils/animations/constants.d.ts +0 -2
  1048. package/utils/animations/expandable-animation/base-expandable-animation.d.ts +0 -16
  1049. package/utils/animations/expandable-animation/expandable-animation.d.ts +0 -16
  1050. package/utils/animations/expandable-animation/expandable-animation.directive.d.ts +0 -16
  1051. package/utils/animations/expandable-animation/expandable-animation.module.d.ts +0 -9
  1052. package/utils/animations/expandable-animation/index.d.ts +0 -4
  1053. package/utils/animations/fade/fade.d.ts +0 -2
  1054. package/utils/animations/fade/index.d.ts +0 -1
  1055. package/utils/animations/fade-slide/fade-slide.d.ts +0 -2
  1056. package/utils/animations/fade-slide/index.d.ts +0 -1
  1057. package/utils/animations/index.d.ts +0 -5
  1058. package/utils/animations/slide/index.d.ts +0 -1
  1059. package/utils/animations/slide/slide.d.ts +0 -2
  1060. package/utils/assert/assert.helpers.d.ts +0 -1
  1061. package/utils/breakpoints/breakpoints.d.ts +0 -15
  1062. package/utils/cdk/cdk-drag.module.d.ts +0 -25
  1063. package/utils/cdk/cdk-trap-focus.module.d.ts +0 -24
  1064. package/utils/chocolate/oompa-loompa.d.ts +0 -13
  1065. package/utils/chocolate/willy-wonka.d.ts +0 -11
  1066. package/utils/component/is-boolean-attribute-set.d.ts +0 -1
  1067. package/utils/conditional/conditional.module.d.ts +0 -12
  1068. package/utils/conditional/if-active.directive.d.ts +0 -38
  1069. package/utils/conditional/if-active.service.d.ts +0 -45
  1070. package/utils/conditional/if-expanded.directive.d.ts +0 -24
  1071. package/utils/conditional/if-expanded.service.d.ts +0 -20
  1072. package/utils/conditional/if-open.directive.d.ts +0 -36
  1073. package/utils/conditional/index.d.ts +0 -4
  1074. package/utils/destroy/destroy.service.d.ts +0 -32
  1075. package/utils/destroy/index.d.ts +0 -1
  1076. package/utils/dom-adapter/dom-adapter.d.ts +0 -12
  1077. package/utils/enums/keys.enum.d.ts +0 -24
  1078. package/utils/focus/arrow-key-direction.enum.d.ts +0 -6
  1079. package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +0 -19
  1080. package/utils/focus/focus-on-view-init/focus-on-view-init.module.d.ts +0 -10
  1081. package/utils/focus/focus-on-view-init/focus-on-view-init.provider.d.ts +0 -6
  1082. package/utils/focus/focus-on-view-init/index.d.ts +0 -3
  1083. package/utils/focus/focus-trap/index.d.ts +0 -1
  1084. package/utils/focus/focus-trap/standalone-cdk-trap-focus.directive.d.ts +0 -13
  1085. package/utils/focus/focus.service.d.ts +0 -26
  1086. package/utils/focus/focusable-item/basic-focusable-item.service.d.ts +0 -20
  1087. package/utils/focus/focusable-item/custom-focusable-item-provider.d.ts +0 -6
  1088. package/utils/focus/focusable-item/focusable-item.d.ts +0 -12
  1089. package/utils/focus/focusable-item/linkers.d.ts +0 -13
  1090. package/utils/focus/key-focus/enums/focus-direction.enum.d.ts +0 -5
  1091. package/utils/focus/key-focus/index.d.ts +0 -2
  1092. package/utils/focus/key-focus/interfaces.d.ts +0 -5
  1093. package/utils/focus/key-focus/key-focus-item.d.ts +0 -11
  1094. package/utils/focus/key-focus/key-focus.d.ts +0 -44
  1095. package/utils/focus/key-focus/key-focus.module.d.ts +0 -10
  1096. package/utils/focus/key-focus/roving-tabindex.d.ts +0 -19
  1097. package/utils/focus/key-focus/util.d.ts +0 -3
  1098. package/utils/focus/wrap-observable.d.ts +0 -2
  1099. package/utils/forms/validation.d.ts +0 -2
  1100. package/utils/host-wrapping/empty-anchor.d.ts +0 -5
  1101. package/utils/host-wrapping/host-wrapper.d.ts +0 -11
  1102. package/utils/host-wrapping/host-wrapping.module.d.ts +0 -10
  1103. package/utils/i18n/common-strings.default.d.ts +0 -2
  1104. package/utils/i18n/common-strings.interface.d.ts +0 -309
  1105. package/utils/i18n/common-strings.service.d.ts +0 -21
  1106. package/utils/i18n/index.d.ts +0 -3
  1107. package/utils/id-generator/id-generator.service.d.ts +0 -1
  1108. package/utils/index.d.ts +0 -8
  1109. package/utils/loading/index.d.ts +0 -3
  1110. package/utils/loading/loading-listener.d.ts +0 -8
  1111. package/utils/loading/loading.d.ts +0 -20
  1112. package/utils/loading/loading.module.d.ts +0 -10
  1113. package/utils/outside-click/index.d.ts +0 -3
  1114. package/utils/outside-click/outside-click.d.ts +0 -11
  1115. package/utils/outside-click/outside-click.module.d.ts +0 -8
  1116. package/utils/popover/enums/alignment.enum.d.ts +0 -5
  1117. package/utils/popover/enums/axis.enum.d.ts +0 -4
  1118. package/utils/popover/enums/positions.enum.d.ts +0 -23
  1119. package/utils/popover/enums/side.enum.d.ts +0 -4
  1120. package/utils/popover/enums/viewport-violation.enum.d.ts +0 -6
  1121. package/utils/popover/index.d.ts +0 -14
  1122. package/utils/popover/interfaces/popover-content-offset.interface.d.ts +0 -4
  1123. package/utils/popover/interfaces/popover-position.interface.d.ts +0 -16
  1124. package/utils/popover/interfaces/visibility-coords.interface.d.ts +0 -6
  1125. package/utils/popover/popover-anchor.d.ts +0 -8
  1126. package/utils/popover/popover-close-button.d.ts +0 -17
  1127. package/utils/popover/popover-content.d.ts +0 -42
  1128. package/utils/popover/popover-host.directive.d.ts +0 -6
  1129. package/utils/popover/popover-open-close-button.d.ts +0 -13
  1130. package/utils/popover/popover.module.d.ts +0 -10
  1131. package/utils/popover/position-operators.d.ts +0 -10
  1132. package/utils/popover/providers/popover-events.service.d.ts +0 -34
  1133. package/utils/popover/providers/popover-position.service.d.ts +0 -24
  1134. package/utils/popover/providers/popover-toggle.service.d.ts +0 -28
  1135. package/utils/popover/stop-escape-propagation.directive.d.ts +0 -14
  1136. package/utils/scrolling/scrolling-service.d.ts +0 -9
  1137. package/utils/template-ref/index.d.ts +0 -3
  1138. package/utils/template-ref/template-ref-container.d.ts +0 -7
  1139. package/utils/template-ref/template-ref.module.d.ts +0 -8
  1140. package/wizard/heading-level.d.ts +0 -1
  1141. package/wizard/index.d.ts +0 -13
  1142. package/wizard/providers/button-hub.service.d.ts +0 -20
  1143. package/wizard/providers/header-actions.service.d.ts +0 -15
  1144. package/wizard/providers/page-collection.service.d.ts +0 -196
  1145. package/wizard/providers/wizard-navigation.service.d.ts +0 -366
  1146. package/wizard/wizard-button.d.ts +0 -28
  1147. package/wizard/wizard-header-action.d.ts +0 -12
  1148. package/wizard/wizard-page-buttons.d.ts +0 -8
  1149. package/wizard/wizard-page-header-actions.d.ts +0 -8
  1150. package/wizard/wizard-page-navtitle.d.ts +0 -8
  1151. package/wizard/wizard-page-title.d.ts +0 -10
  1152. package/wizard/wizard-page.d.ts +0 -494
  1153. package/wizard/wizard-stepnav-item.d.ts +0 -42
  1154. package/wizard/wizard-stepnav.d.ts +0 -9
  1155. package/wizard/wizard-title.d.ts +0 -7
  1156. package/wizard/wizard.d.ts +0 -256
  1157. package/wizard/wizard.module.d.ts +0 -22
@@ -1,652 +0,0 @@
1
- /*
2
- * Copyright (c) 2016-2025 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
- import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
8
- import { ClrWizardPageButtons } from './wizard-page-buttons';
9
- import { ClrWizardPageHeaderActions } from './wizard-page-header-actions';
10
- import { ClrWizardPageNavTitle } from './wizard-page-navtitle';
11
- import { ClrWizardPageTitle } from './wizard-page-title';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "./providers/wizard-navigation.service";
14
- import * as i2 from "./providers/page-collection.service";
15
- import * as i3 from "./providers/button-hub.service";
16
- let wizardPageIndex = 0;
17
- /**
18
- * The ClrWizardPage component is responsible for displaying the content of each step
19
- * in the wizard workflow.
20
- *
21
- * ClrWizardPage component has hooks into the navigation service (ClrWizardPage.navService),
22
- * page collection (ClrWizardPage.pageCollection), and button service
23
- * (ClrWizardPage.buttonService). These three providers are shared across the components
24
- * within each instance of a Wizard.
25
- *
26
- */
27
- export class ClrWizardPage {
28
- /**
29
- * Creates an instance of ClrWizardPage.
30
- *
31
- * @memberof WizardPage
32
- */
33
- constructor(navService, pageCollection, buttonService) {
34
- this.navService = navService;
35
- this.pageCollection = pageCollection;
36
- this.buttonService = buttonService;
37
- /**
38
- * An input value that is used internally to generate the ClrWizardPage ID as
39
- * well as the step nav item ID.
40
- *
41
- * Typed as any because it should be able to accept numbers as well as
42
- * strings. Passing an index for wizard whose pages are created with an
43
- * ngFor loop is a common use case.
44
- *
45
- * @memberof WizardPage
46
- *
47
- */
48
- this._id = (wizardPageIndex++).toString();
49
- /**
50
- * Overrides all actions from the page level, so you can use an alternate function for
51
- * validation or data-munging with a ClrWizardPage.onCommit (clrWizardPageOnCommit output),
52
- * ClrWizardPage.onCancel (clrWizardPageOnCancel output), or one
53
- * of the granular page-level button click event emitters.
54
- *
55
- * @memberof WizardPage
56
- *
57
- */
58
- this.preventDefault = false;
59
- /**
60
- * Emits when the value of ClrWizardPage.nextStepDisabled changes.
61
- * Should emit the new value of nextStepDisabled.
62
- *
63
- * @memberof WizardPage
64
- *
65
- */
66
- this.nextStepDisabledChange = new EventEmitter();
67
- /**
68
- * Emits when the value of ClrWizardPage.previousStepDisabled changes.
69
- * Should emit the new value of previousStepDisabled.
70
- *
71
- * @memberof WizardPage
72
- *
73
- */
74
- this.previousStepDisabledChange = new EventEmitter();
75
- /**
76
- *
77
- * @memberof WizardPage
78
- *
79
- */
80
- this.stopCancelChange = new EventEmitter();
81
- /**
82
- * An event emitter carried over from a legacy version of ClrWizardPage.
83
- * Fires an event on ClrWizardPage whenever the next or finish buttons
84
- * are clicked and the page is the current page of the Wizard.
85
- *
86
- * Note that this does not automatically emit an event when a custom
87
- * button is used in place of a next or finish button.
88
- *
89
- * @memberof WizardPage
90
- *
91
- */
92
- this.onCommit = new EventEmitter(false);
93
- /**
94
- * Emits an event when ClrWizardPage becomes the current page of the
95
- * Wizard.
96
- *
97
- * @memberof WizardPage
98
- *
99
- */
100
- this.onLoad = new EventEmitter();
101
- /**
102
- * Emits an event when the ClrWizardPage invokes the cancel routine for the wizard.
103
- *
104
- * Can be used in conjunction with the ClrWizardPage.stopCancel
105
- * (clrWizardPagePreventDefaultCancel) or ClrWizardPage.preventDefault
106
- * (clrWizardPagePagePreventDefault) inputs to implement custom cancel
107
- * functionality at the page level. This is useful if you would like to do
108
- * validation, save data, or warn users before cancelling the wizard.
109
- *
110
- * Note that this requires you to call Wizard.close() from the host component.
111
- * This constitues a full replacement of the cancel functionality.
112
- *
113
- * @memberof WizardPage
114
- *
115
- */
116
- this.pageOnCancel = new EventEmitter();
117
- /**
118
- * Emits an event when the finish button is clicked and the ClrWizardPage is
119
- * the wizard's current page.
120
- *
121
- * Can be used in conjunction with the ClrWizardPage.preventDefault
122
- * (clrWizardPagePagePreventDefault) input to implement custom finish
123
- * functionality at the page level. This is useful if you would like to do
124
- * validation, save data, or warn users before allowing them to complete
125
- * the wizard.
126
- *
127
- * Note that this requires you to call Wizard.finish() or Wizard.forceFinish()
128
- * from the host component. This combination creates a full replacement of
129
- * the finish functionality.
130
- *
131
- * @memberof WizardPage
132
- *
133
- */
134
- this.finishButtonClicked = new EventEmitter();
135
- /**
136
- * Emits an event when the previous button is clicked and the ClrWizardPage is
137
- * the wizard's current page.
138
- *
139
- * Can be used in conjunction with the ClrWizardPage.preventDefault
140
- * (clrWizardPagePagePreventDefault) input to implement custom backwards
141
- * navigation at the page level. This is useful if you would like to do
142
- * validation, save data, or warn users before allowing them to go
143
- * backwards in the wizard.
144
- *
145
- * Note that this requires you to call Wizard.previous()
146
- * from the host component. This combination creates a full replacement of
147
- * the backwards navigation functionality.
148
- *
149
- * @memberof WizardPage
150
- *
151
- */
152
- this.previousButtonClicked = new EventEmitter();
153
- /**
154
- * Emits an event when the next button is clicked and the ClrWizardPage is
155
- * the wizard's current page.
156
- *
157
- * Can be used in conjunction with the ClrWizardPage.preventDefault
158
- * (clrWizardPagePagePreventDefault) input to implement custom forwards
159
- * navigation at the page level. This is useful if you would like to do
160
- * validation, save data, or warn users before allowing them to go
161
- * to the next page in the wizard.
162
- *
163
- * Note that this requires you to call Wizard.forceNext() or Wizard.next()
164
- * from the host component. This combination creates a full replacement of
165
- * the forward navigation functionality.
166
- *
167
- * @memberof WizardPage
168
- *
169
- */
170
- this.nextButtonClicked = new EventEmitter();
171
- /**
172
- * Emits an event when a danger button is clicked and the ClrWizardPage is
173
- * the wizard's current page. By default, a danger button will act as
174
- * either a "next" or "finish" button depending on if the ClrWizardPage is the
175
- * last page or not.
176
- *
177
- * Can be used in conjunction with the ClrWizardPage.preventDefault
178
- * (clrWizardPagePagePreventDefault) input to implement custom forwards
179
- * or finish navigation at the page level when the danger button is clicked.
180
- * This is useful if you would like to do validation, save data, or warn
181
- * users before allowing them to go to the next page in the wizard or
182
- * finish the wizard.
183
- *
184
- * Note that this requires you to call Wizard.finish(), Wizard.forceFinish(),
185
- * Wizard.forceNext() or Wizard.next() from the host component. This
186
- * combination creates a full replacement of the forward navigation and
187
- * finish functionality.
188
- *
189
- * @memberof WizardPage
190
- *
191
- */
192
- this.dangerButtonClicked = new EventEmitter();
193
- /**
194
- * Emits an event when a next, finish, or danger button is clicked and the
195
- * ClrWizardPage is the wizard's current page.
196
- *
197
- * Can be used in conjunction with the ClrWizardPage.preventDefault
198
- * (clrWizardPagePagePreventDefault) input to implement custom forwards
199
- * or finish navigation at the page level, regardless of the type of
200
- * primary button.
201
- *
202
- * This is useful if you would like to do validation, save data, or warn
203
- * users before allowing them to go to the next page in the wizard or
204
- * finish the wizard.
205
- *
206
- * Note that this requires you to call Wizard.finish(), Wizard.forceFinish(),
207
- * Wizard.forceNext() or Wizard.next() from the host component. This
208
- * combination creates a full replacement of the forward navigation and
209
- * finish functionality.
210
- *
211
- * @memberof WizardPage
212
- *
213
- */
214
- this.primaryButtonClicked = new EventEmitter();
215
- this.customButtonClicked = new EventEmitter();
216
- /**
217
- *
218
- * @memberof WizardPage
219
- *
220
- */
221
- this._nextStepDisabled = false;
222
- /**
223
- *
224
- * @memberof WizardPage
225
- *
226
- */
227
- this._previousStepDisabled = false;
228
- /**
229
- *
230
- * @memberof WizardPage
231
- *
232
- */
233
- this._hasError = false;
234
- /**
235
- *
236
- * @memberof WizardPage
237
- *
238
- */
239
- this._stopCancel = false;
240
- /**
241
- *
242
- * @memberof WizardPage
243
- *
244
- */
245
- this._stopNext = false;
246
- /**
247
- *
248
- * @memberof WizardPage
249
- *
250
- */
251
- this._complete = false;
252
- }
253
- /**
254
- * A property that tells whether or not the wizard should be allowed
255
- * to move to the next page.
256
- *
257
- * Useful for in-page validation because it prevents forward navigation
258
- * and visibly disables the next button.
259
- *
260
- * Does not require that you re-implement navigation routines like you
261
- * would if you were using ClrWizardPage.preventDefault or
262
- * Wizard.preventDefault.
263
- *
264
- * @memberof WizardPage
265
- *
266
- */
267
- get nextStepDisabled() {
268
- return this._nextStepDisabled;
269
- }
270
- set nextStepDisabled(val) {
271
- const valBool = !!val;
272
- if (valBool !== this._nextStepDisabled) {
273
- this._nextStepDisabled = valBool;
274
- this.nextStepDisabledChange.emit(valBool);
275
- }
276
- }
277
- /**
278
- * A property that tells whether or not the wizard should be allowed
279
- * to move to the previous page.
280
- *
281
- * Useful for in-page validation because it prevents backward navigation
282
- * and visibly disables the previous button.
283
- *
284
- * Does not require that you re-implement navigation routines like you
285
- * would if you were using ClrWizardPage.preventDefault or
286
- * Wizard.preventDefault.
287
- *
288
- * @memberof WizardPage
289
- *
290
- */
291
- get previousStepDisabled() {
292
- return this._previousStepDisabled;
293
- }
294
- set previousStepDisabled(val) {
295
- const valBool = !!val;
296
- if (valBool !== this._previousStepDisabled) {
297
- this._previousStepDisabled = valBool;
298
- this.previousStepDisabledChange.emit(valBool);
299
- }
300
- }
301
- /**
302
- * Whether the page has an error and also resolve the "falsy" value. The
303
- * current logic treat a "0" or an empty string as false and likewise will treat any
304
- * "truthy" value as true.
305
- *
306
- * @memberof WizardPage
307
- *
308
- */
309
- get hasError() {
310
- return this._hasError;
311
- }
312
- set hasError(val) {
313
- const valBool = !!val;
314
- if (valBool !== this._hasError) {
315
- this._hasError = valBool;
316
- }
317
- }
318
- /**
319
- * Overrides the cancel action from the page level. Allows you to use an
320
- * alternate function for validation or data-munging before cancelling the
321
- * wizard when combined with the ClrWizardPage.onCancel
322
- * (the clrWizardPageOnCancel output).
323
- *
324
- * Requires that you manually close the wizard from your host component,
325
- * usually with a call to Wizard.forceNext() or wizard.next();
326
- *
327
- * @memberof ClrWizardPage
328
- */
329
- get stopCancel() {
330
- return this._stopCancel;
331
- }
332
- set stopCancel(val) {
333
- const valBool = !!val;
334
- if (valBool !== this._stopCancel) {
335
- this._stopCancel = valBool;
336
- this.stopCancelChange.emit(valBool);
337
- }
338
- }
339
- /**
340
- * Overrides forward navigation from the page level. Allows you to use an
341
- * alternate function for validation or data-munging before moving the
342
- * wizard to the next pagewhen combined with the ClrWizardPage.onCommit
343
- * (clrWizardPageOnCommit) or ClrWizardPage.nextButtonClicked
344
- * (clrWizardPageNext) outputs.
345
- *
346
- * Requires that you manually tell the wizard to navigate forward from
347
- * the hostComponent, usually with a call to Wizard.forceNext() or
348
- * wizard.next();
349
- *
350
- * @memberof ClrWizardPage
351
- */
352
- get stopNext() {
353
- return this._stopNext;
354
- }
355
- set stopNext(val) {
356
- const valBool = !!val;
357
- if (valBool !== this._stopNext) {
358
- this._stopNext = valBool;
359
- }
360
- }
361
- /**
362
- * A read-only getter that generates an ID string for the wizard page from
363
- * either the value passed to the ClrWizardPage "id" input or a wizard page
364
- * counter shared across all wizard pages in the application.
365
- *
366
- * Note that the value passed into the ID input Will be prefixed with
367
- * "clr-wizard-page-".
368
- *
369
- * @readonly
370
- *
371
- * @memberof ClrWizardPage
372
- */
373
- get id() {
374
- // covers things like null, undefined, false, and empty string
375
- // while allowing zero to pass
376
- const idIsNonZeroFalsy = !this._id && this._id !== 0;
377
- // in addition to non-zero falsy we also want to make sure _id is not a negative
378
- // number.
379
- if (idIsNonZeroFalsy || this._id < 0) {
380
- // guard here in the event that input becomes undefined or null by accident
381
- this._id = (wizardPageIndex++).toString();
382
- }
383
- return `clr-wizard-page-${this._id}`;
384
- }
385
- /**
386
- * A read-only getter that serves as a convenience for those who would rather
387
- * not think in the terms of !ClrWizardPage.nextStepDisabled. For some use cases,
388
- * ClrWizardPage.readyToComplete is more logical and declarative.
389
- *
390
- * @memberof WizardPage
391
- *
392
- */
393
- get readyToComplete() {
394
- return !this.nextStepDisabled;
395
- }
396
- /**
397
- * A page is marked as completed if it is both readyToComplete and completed,
398
- * as in the next or finish action has been executed while this page was current.
399
- *
400
- * Note there is and open question about how to handle pages that are marked
401
- * complete but who are no longer readyToComplete. This might indicate an error
402
- * state for the ClrWizardPage. Currently, the wizard does not acknowledge this state
403
- * and only returns that the page is incomplete.
404
- *
405
- * @memberof WizardPage
406
- *
407
- */
408
- get completed() {
409
- return this._complete && this.readyToComplete;
410
- // FOR V2: UNWIND COMPLETED, READYTOCOMPLETE, AND ERRORS
411
- // SUCH THAT ERRORS IS ITS OWN INPUT. IF A STEP IS
412
- // INCOMPLETE AND ERRORED, ERRORED WILL NOT SHOW.
413
- // FIRST QUESTION: AM I GREY OR COLORED?
414
- // SECOND QUESTION: AM I GREEN OR RED?
415
- }
416
- /**
417
- * A ClrWizardPage can be manually set to completed using this boolean setter.
418
- * It is recommended that users rely on the convenience functions in the wizard
419
- * and navigation service instead of manually setting pages’ completion state.
420
- *
421
- * @memberof ClrWizardPage
422
- */
423
- set completed(value) {
424
- this._complete = value;
425
- }
426
- /**
427
- * Checks with the navigation service to see if it is the current page.
428
- *
429
- * @memberof WizardPage
430
- *
431
- */
432
- get current() {
433
- return this.navService.currentPage === this;
434
- }
435
- get disabled() {
436
- return !this.enabled;
437
- }
438
- /**
439
- * A read-only getter that returns whether or not the page is navigable
440
- * in the wizard. A wizard page can be navigated to if it is completed
441
- * or the page before it is completed.
442
- *
443
- * This getter handles the logic for enabling or disabling the links in
444
- * the step nav on the left Side of the wizard.
445
- *
446
- * @memberof WizardPage
447
- *
448
- */
449
- get enabled() {
450
- return this.current || this.completed || this.previousCompleted;
451
- }
452
- /**
453
- * A read-only getter that returns whether or not the page before this
454
- * ClrWizardPage is completed. This is useful for determining whether or not
455
- * a page is navigable if it is not current or already completed.
456
- *
457
- * @memberof WizardPage
458
- *
459
- */
460
- get previousCompleted() {
461
- const previousPage = this.pageCollection.getPreviousPage(this);
462
- if (!previousPage) {
463
- return true;
464
- }
465
- return previousPage.completed;
466
- }
467
- /**
468
- *
469
- * @memberof WizardPage
470
- *
471
- */
472
- get title() {
473
- return this.pageTitle.pageTitleTemplateRef;
474
- }
475
- /**
476
- *
477
- * @memberof WizardPage
478
- *
479
- */
480
- get navTitle() {
481
- if (this.pageNavTitle) {
482
- return this.pageNavTitle.pageNavTitleTemplateRef;
483
- }
484
- return this.pageTitle.pageTitleTemplateRef;
485
- }
486
- /**
487
- *
488
- * @memberof WizardPage
489
- *
490
- */
491
- get headerActions() {
492
- if (!this._headerActions) {
493
- return undefined;
494
- }
495
- return this._headerActions.pageHeaderActionsTemplateRef;
496
- }
497
- /**
498
- *
499
- * @memberof WizardPage
500
- *
501
- */
502
- get hasHeaderActions() {
503
- return !!this._headerActions;
504
- }
505
- /**
506
- *
507
- * @memberof WizardPage
508
- *
509
- */
510
- get buttons() {
511
- if (!this._buttons) {
512
- return undefined;
513
- }
514
- return this._buttons.pageButtonsTemplateRef;
515
- }
516
- /**
517
- * A read-only getter that returns a boolean that says whether or
518
- * not the ClrWizardPage includes buttons. Used to determine if the
519
- * Wizard should override the default button set defined as
520
- * its direct children.
521
- *
522
- * @memberof WizardPage
523
- *
524
- */
525
- get hasButtons() {
526
- return !!this._buttons;
527
- }
528
- /**
529
- * A read-only getter that returns the id used by the step nav item associated with the page.
530
- *
531
- * ClrWizardPage needs this ID string for aria information.
532
- *
533
- * @memberof WizardPage
534
- *
535
- */
536
- get stepItemId() {
537
- return this.pageCollection.getStepItemIdForPage(this);
538
- }
539
- /**
540
- * Links the nav service and establishes the current page if one is not defined.
541
- *
542
- * @memberof WizardPage
543
- *
544
- */
545
- ngOnInit() {
546
- const navService = this.navService;
547
- if (!navService.currentPage && !navService.navServiceLoaded) {
548
- this.makeCurrent();
549
- this.navService.navServiceLoaded = true;
550
- }
551
- }
552
- /**
553
- * Uses the nav service to make the ClrWizardPage the current page in the
554
- * wizard. Bypasses all checks but still emits the ClrWizardPage.onLoad
555
- * (clrWizardPageOnLoad) output.
556
- *
557
- * In most cases, it is better to use the default navigation functions
558
- * in Wizard.
559
- *
560
- * @memberof WizardPage
561
- *
562
- */
563
- makeCurrent() {
564
- this.navService.currentPage = this;
565
- }
566
- }
567
- ClrWizardPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizardPage, deps: [{ token: i1.WizardNavigationService }, { token: i2.PageCollectionService }, { token: i3.ButtonHubService }], target: i0.ɵɵFactoryTarget.Component });
568
- ClrWizardPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrWizardPage, selector: "clr-wizard-page", inputs: { _id: ["id", "_id"], preventDefault: ["clrWizardPagePreventDefault", "preventDefault"], nextStepDisabled: ["clrWizardPageNextDisabled", "nextStepDisabled"], previousStepDisabled: ["clrWizardPagePreviousDisabled", "previousStepDisabled"], hasError: ["clrWizardPageHasError", "hasError"], stopCancel: ["clrWizardPagePreventDefaultCancel", "stopCancel"], stopNext: ["clrWizardPagePreventDefaultNext", "stopNext"] }, outputs: { nextStepDisabledChange: "clrWizardPageNextDisabledChange", previousStepDisabledChange: "clrWizardPagePreviousDisabledChange", stopCancelChange: "clrWizardPagePreventDefaultCancelChange", onCommit: "clrWizardPageOnCommit", onLoad: "clrWizardPageOnLoad", pageOnCancel: "clrWizardPageOnCancel", finishButtonClicked: "clrWizardPageFinish", previousButtonClicked: "clrWizardPagePrevious", nextButtonClicked: "clrWizardPageNext", dangerButtonClicked: "clrWizardPageDanger", primaryButtonClicked: "clrWizardPagePrimary", customButtonClicked: "clrWizardPageCustomButton" }, host: { properties: { "id": "id", "attr.aria-hidden": "!current", "attr.aria-labelledby": "stepItemId", "class.active": "current", "class.clr-wizard-page": "true" } }, queries: [{ propertyName: "pageTitle", first: true, predicate: ClrWizardPageTitle, descendants: true, static: true }, { propertyName: "pageNavTitle", first: true, predicate: ClrWizardPageNavTitle, descendants: true, static: true }, { propertyName: "_buttons", first: true, predicate: ClrWizardPageButtons, descendants: true, static: true }, { propertyName: "_headerActions", first: true, predicate: ClrWizardPageHeaderActions, descendants: true, static: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizardPage, decorators: [{
570
- type: Component,
571
- args: [{
572
- selector: 'clr-wizard-page',
573
- template: '<ng-content></ng-content>',
574
- host: {
575
- '[id]': 'id',
576
- '[attr.aria-hidden]': '!current',
577
- '[attr.aria-labelledby]': 'stepItemId',
578
- '[class.active]': 'current',
579
- '[class.clr-wizard-page]': 'true',
580
- },
581
- }]
582
- }], ctorParameters: function () { return [{ type: i1.WizardNavigationService }, { type: i2.PageCollectionService }, { type: i3.ButtonHubService }]; }, propDecorators: { _id: [{
583
- type: Input,
584
- args: ['id']
585
- }], preventDefault: [{
586
- type: Input,
587
- args: ['clrWizardPagePreventDefault']
588
- }], nextStepDisabledChange: [{
589
- type: Output,
590
- args: ['clrWizardPageNextDisabledChange']
591
- }], previousStepDisabledChange: [{
592
- type: Output,
593
- args: ['clrWizardPagePreviousDisabledChange']
594
- }], stopCancelChange: [{
595
- type: Output,
596
- args: ['clrWizardPagePreventDefaultCancelChange']
597
- }], onCommit: [{
598
- type: Output,
599
- args: ['clrWizardPageOnCommit']
600
- }], onLoad: [{
601
- type: Output,
602
- args: ['clrWizardPageOnLoad']
603
- }], pageOnCancel: [{
604
- type: Output,
605
- args: ['clrWizardPageOnCancel']
606
- }], finishButtonClicked: [{
607
- type: Output,
608
- args: ['clrWizardPageFinish']
609
- }], previousButtonClicked: [{
610
- type: Output,
611
- args: ['clrWizardPagePrevious']
612
- }], nextButtonClicked: [{
613
- type: Output,
614
- args: ['clrWizardPageNext']
615
- }], dangerButtonClicked: [{
616
- type: Output,
617
- args: ['clrWizardPageDanger']
618
- }], primaryButtonClicked: [{
619
- type: Output,
620
- args: ['clrWizardPagePrimary']
621
- }], customButtonClicked: [{
622
- type: Output,
623
- args: ['clrWizardPageCustomButton']
624
- }], pageTitle: [{
625
- type: ContentChild,
626
- args: [ClrWizardPageTitle, { static: true }]
627
- }], pageNavTitle: [{
628
- type: ContentChild,
629
- args: [ClrWizardPageNavTitle, { static: true }]
630
- }], _buttons: [{
631
- type: ContentChild,
632
- args: [ClrWizardPageButtons, { static: true }]
633
- }], _headerActions: [{
634
- type: ContentChild,
635
- args: [ClrWizardPageHeaderActions, { static: true }]
636
- }], nextStepDisabled: [{
637
- type: Input,
638
- args: ['clrWizardPageNextDisabled']
639
- }], previousStepDisabled: [{
640
- type: Input,
641
- args: ['clrWizardPagePreviousDisabled']
642
- }], hasError: [{
643
- type: Input,
644
- args: ['clrWizardPageHasError']
645
- }], stopCancel: [{
646
- type: Input,
647
- args: ['clrWizardPagePreventDefaultCancel']
648
- }], stopNext: [{
649
- type: Input,
650
- args: ['clrWizardPagePreventDefaultNext']
651
- }] } });
652
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy93aXphcmQvd2l6YXJkLXBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUsxRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFFekQsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBRXhCOzs7Ozs7Ozs7R0FTRztBQVlILE1BQU0sT0FBTyxhQUFhO0lBcVJ4Qjs7OztPQUlHO0lBQ0gsWUFDVSxVQUFtQyxFQUNwQyxjQUFxQyxFQUNyQyxhQUErQjtRQUY5QixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBNVJ4Qzs7Ozs7Ozs7OztXQVVHO1FBQ1UsUUFBRyxHQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2RDs7Ozs7Ozs7V0FRRztRQUNtQyxtQkFBYyxHQUFxQixLQUFLLENBQUM7UUFFL0U7Ozs7OztXQU1HO1FBQ3dDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFaEc7Ozs7OztXQU1HO1FBQzRDLCtCQUEwQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFeEc7Ozs7V0FJRztRQUNnRCxxQkFBZ0IsR0FBRyxJQUFJLFlB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QUFRO3NCQUE3RCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFVUSxjQUFjO3NCQUF6RSxZQUFZO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFzRXRELGdCQUFnQjtzQkFEbkIsS0FBSzt1QkFBQywyQkFBMkI7Z0JBMkI5QixvQkFBb0I7c0JBRHZCLEtBQUs7dUJBQUMsK0JBQStCO2dCQXFCbEMsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLHVCQUF1QjtnQkF1QjFCLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxtQ0FBbUM7Z0JBMEJ0QyxRQUFRO3NCQURYLEtBQUs7dUJBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJ1dHRvbkh1YlNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9idXR0b24taHViLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnZUNvbGxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcGFnZS1jb2xsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy93aXphcmQtbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENscldpemFyZFBhZ2VCdXR0b25zIH0gZnJvbSAnLi93aXphcmQtcGFnZS1idXR0b25zJztcbmltcG9ydCB7IENscldpemFyZFBhZ2VIZWFkZXJBY3Rpb25zIH0gZnJvbSAnLi93aXphcmQtcGFnZS1oZWFkZXItYWN0aW9ucyc7XG5pbXBvcnQgeyBDbHJXaXphcmRQYWdlTmF2VGl0bGUgfSBmcm9tICcuL3dpemFyZC1wYWdlLW5hdnRpdGxlJztcbmltcG9ydCB7IENscldpemFyZFBhZ2VUaXRsZSB9IGZyb20gJy4vd2l6YXJkLXBhZ2UtdGl0bGUnO1xuXG5sZXQgd2l6YXJkUGFnZUluZGV4ID0gMDtcblxuLyoqXG4gKiBUaGUgQ2xyV2l6YXJkUGFnZSBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgZm9yIGRpc3BsYXlpbmcgdGhlIGNvbnRlbnQgb2YgZWFjaCBzdGVwXG4gKiBpbiB0aGUgd2l6YXJkIHdvcmtmbG93LlxuICpcbiAqIENscldpemFyZFBhZ2UgY29tcG9uZW50IGhhcyBob29rcyBpbnRvIHRoZSBuYXZpZ2F0aW9uIHNlcnZpY2UgKENscldpemFyZFBhZ2UubmF2U2VydmljZSksXG4gKiBwYWdlIGNvbGxlY3Rpb24gKENscldpemFyZFBhZ2UucGFnZUNvbGxlY3Rpb24pLCBhbmQgYnV0dG9uIHNlcnZpY2VcbiAqIChDbHJXaXphcmRQYWdlLmJ1dHRvblNlcnZpY2UpLiBUaGVzZSB0aHJlZSBwcm92aWRlcnMgYXJlIHNoYXJlZCBhY3Jvc3MgdGhlIGNvbXBvbmVudHNcbiAqIHdpdGhpbiBlYWNoIGluc3RhbmNlIG9mIGEgV2l6YXJkLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLXdpemFyZC1wYWdlJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaG9zdDoge1xuICAgICdbaWRdJzogJ2lkJyxcbiAgICAnW2F0dHIuYXJpYS1oaWRkZW5dJzogJyFjdXJyZW50JyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdzdGVwSXRlbUlkJyxcbiAgICAnW2NsYXNzLmFjdGl2ZV0nOiAnY3VycmVudCcsXG4gICAgJ1tjbGFzcy5jbHItd2l6YXJkLXBhZ2VdJzogJ3RydWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJXaXphcmRQYWdlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIEFuIGlucHV0IHZhbHVlIHRoYXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGdlbmVyYXRlIHRoZSBDbHJXaXphcmRQYWdlIElEIGFzXG4gICAqIHdlbGwgYXMgdGhlIHN0ZXAgbmF2IGl0ZW0gSUQuXG4gICAqXG4gICAqIFR5cGVkIGFzIGFueSBiZWNhdXNlIGl0IHNob3VsZCBiZSBhYmxlIHRvIGFjY2VwdCBudW1iZXJzIGFzIHdlbGwgYXNcbiAgICogc3RyaW5ncy4gUGFzc2luZyBhbiBpbmRleCBmb3Igd2l6YXJkIHdob3NlIHBhZ2VzIGFyZSBjcmVhdGVkIHdpdGggYW5cbiAgICogbmdGb3IgbG9vcCBpcyBhIGNvbW1vbiB1c2UgY2FzZS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBJbnB1dCgnaWQnKSBfaWQ6IGFueSA9ICh3aXphcmRQYWdlSW5kZXgrKykudG9TdHJpbmcoKTtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGFsbCBhY3Rpb25zIGZyb20gdGhlIHBhZ2UgbGV2ZWwsIHNvIHlvdSBjYW4gdXNlIGFuIGFsdGVybmF0ZSBmdW5jdGlvbiBmb3JcbiAgICogdmFsaWRhdGlvbiBvciBkYXRhLW11bmdpbmcgd2l0aCBhIENscldpemFyZFBhZ2Uub25Db21taXQgKGNscldpemFyZFBhZ2VPbkNvbW1pdCBvdXRwdXQpLFxuICAgKiBDbHJXaXphcmRQYWdlLm9uQ2FuY2VsIChjbHJXaXphcmRQYWdlT25DYW5jZWwgb3V0cHV0KSwgb3Igb25lXG4gICAqIG9mIHRoZSBncmFudWxhciBwYWdlLWxldmVsIGJ1dHRvbiBjbGljayBldmVudCBlbWl0dGVycy5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBJbnB1dCgnY2xyV2l6YXJkUGFnZVByZXZlbnREZWZhdWx0JykgcHJldmVudERlZmF1bHQ6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdmFsdWUgb2YgQ2xyV2l6YXJkUGFnZS5uZXh0U3RlcERpc2FibGVkIGNoYW5nZXMuXG4gICAqIFNob3VsZCBlbWl0IHRoZSBuZXcgdmFsdWUgb2YgbmV4dFN0ZXBEaXNhYmxlZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBPdXRwdXQoJ2NscldpemFyZFBhZ2VOZXh0RGlzYWJsZWRDaGFuZ2UnKSBuZXh0U3RlcERpc2FibGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB2YWx1ZSBvZiBDbHJXaXphcmRQYWdlLnByZXZpb3VzU3RlcERpc2FibGVkIGNoYW5nZXMuXG4gICAqIFNob3VsZCBlbWl0IHRoZSBuZXcgdmFsdWUgb2YgcHJldmlvdXNTdGVwRGlzYWJsZWQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCdjbHJXaXphcmRQYWdlUHJldmlvdXNEaXNhYmxlZENoYW5nZScpIHByZXZpb3VzU3RlcERpc2FibGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQE91dHB1dCgnY2xyV2l6YXJkUGFnZVByZXZlbnREZWZhdWx0Q2FuY2VsQ2hhbmdlJykgc3RvcENhbmNlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBjYXJyaWVkIG92ZXIgZnJvbSBhIGxlZ2FjeSB2ZXJzaW9uIG9mIENscldpemFyZFBhZ2UuXG4gICAqIEZpcmVzIGFuIGV2ZW50IG9uIENscldpemFyZFBhZ2Ugd2hlbmV2ZXIgdGhlIG5leHQgb3IgZmluaXNoIGJ1dHRvbnNcbiAgICogYXJlIGNsaWNrZWQgYW5kIHRoZSBwYWdlIGlzIHRoZSBjdXJyZW50IHBhZ2Ugb2YgdGhlIFdpemFyZC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYXV0b21hdGljYWxseSBlbWl0IGFuIGV2ZW50IHdoZW4gYSBjdXN0b21cbiAgICogYnV0dG9uIGlzIHVzZWQgaW4gcGxhY2Ugb2YgYSBuZXh0IG9yIGZpbmlzaCBidXR0b24uXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBAT3V0cHV0KCdjbHJXaXphcmRQYWdlT25Db21taXQnKSBvbkNvbW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPihmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gQ2xyV2l6YXJkUGFnZSBiZWNvbWVzIHRoZSBjdXJyZW50IHBhZ2Ugb2YgdGhlXG4gICAqIFdpemFyZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBPdXRwdXQoJ2NscldpemFyZFBhZ2VPbkxvYWQnKSBvbkxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgQ2xyV2l6YXJkUGFnZSBpbnZva2VzIHRoZSBjYW5jZWwgcm91dGluZSBmb3IgdGhlIHdpemFyZC5cbiAgICpcbiAgICogQ2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgQ2xyV2l6YXJkUGFnZS5zdG9wQ2FuY2VsXG4gICAqIChjbHJXaXphcmRQYWdlUHJldmVudERlZmF1bHRDYW5jZWwpIG9yIENscldpemFyZFBhZ2UucHJldmVudERlZmF1bHRcbiAgICogKGNscldpemFyZFBhZ2VQYWdlUHJldmVudERlZmF1bHQpIGlucHV0cyB0byBpbXBsZW1lbnQgY3VzdG9tIGNhbmNlbFxuICAgKiBmdW5jdGlvbmFsaXR5IGF0IHRoZSBwYWdlIGxldmVsLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBkb1xuICAgKiB2YWxpZGF0aW9uLCBzYXZlIGRhdGEsIG9yIHdhcm4gdXNlcnMgYmVmb3JlIGNhbmNlbGxpbmcgdGhlIHdpemFyZC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgeW91IHRvIGNhbGwgV2l6YXJkLmNsb3NlKCkgZnJvbSB0aGUgaG9zdCBjb21wb25lbnQuXG4gICAqIFRoaXMgY29uc3RpdHVlcyBhIGZ1bGwgcmVwbGFjZW1lbnQgb2YgdGhlIGNhbmNlbCBmdW5jdGlvbmFsaXR5LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQE91dHB1dCgnY2xyV2l6YXJkUGFnZU9uQ2FuY2VsJykgcGFnZU9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJXaXphcmRQYWdlPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBmaW5pc2ggYnV0dG9uIGlzIGNsaWNrZWQgYW5kIHRoZSBDbHJXaXphcmRQYWdlIGlzXG4gICAqIHRoZSB3aXphcmQncyBjdXJyZW50IHBhZ2UuXG4gICAqXG4gICAqIENhbiBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIENscldpemFyZFBhZ2UucHJldmVudERlZmF1bHRcbiAgICogKGNscldpemFyZFBhZ2VQYWdlUHJldmVudERlZmF1bHQpIGlucHV0IHRvIGltcGxlbWVudCBjdXN0b20gZmluaXNoXG4gICAqIGZ1bmN0aW9uYWxpdHkgYXQgdGhlIHBhZ2UgbGV2ZWwuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIGRvXG4gICAqIHZhbGlkYXRpb24sIHNhdmUgZGF0YSwgb3Igd2FybiB1c2VycyBiZWZvcmUgYWxsb3dpbmcgdGhlbSB0byBjb21wbGV0ZVxuICAgKiB0aGUgd2l6YXJkLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyB5b3UgdG8gY2FsbCBXaXphcmQuZmluaXNoKCkgb3IgV2l6YXJkLmZvcmNlRmluaXNoKClcbiAgICogZnJvbSB0aGUgaG9zdCBjb21wb25lbnQuIFRoaXMgY29tYmluYXRpb24gY3JlYXRlcyBhIGZ1bGwgcmVwbGFjZW1lbnQgb2ZcbiAgICogdGhlIGZpbmlzaCBmdW5jdGlvbmFsaXR5LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQE91dHB1dCgnY2xyV2l6YXJkUGFnZUZpbmlzaCcpIGZpbmlzaEJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENscldpemFyZFBhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHByZXZpb3VzIGJ1dHRvbiBpcyBjbGlja2VkIGFuZCB0aGUgQ2xyV2l6YXJkUGFnZSBpc1xuICAgKiB0aGUgd2l6YXJkJ3MgY3VycmVudCBwYWdlLlxuICAgKlxuICAgKiBDYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBDbHJXaXphcmRQYWdlLnByZXZlbnREZWZhdWx0XG4gICAqIChjbHJXaXphcmRQYWdlUGFnZVByZXZlbnREZWZhdWx0KSBpbnB1dCB0byBpbXBsZW1lbnQgY3VzdG9tIGJhY2t3YXJkc1xuICAgKiBuYXZpZ2F0aW9uIGF0IHRoZSBwYWdlIGxldmVsLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBkb1xuICAgKiB2YWxpZGF0aW9uLCBzYXZlIGRhdGEsIG9yIHdhcm4gdXNlcnMgYmVmb3JlIGFsbG93aW5nIHRoZW0gdG8gZ29cbiAgICogYmFja3dhcmRzIGluIHRoZSB3aXphcmQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIHlvdSB0byBjYWxsIFdpemFyZC5wcmV2aW91cygpXG4gICAqIGZyb20gdGhlIGhvc3QgY29tcG9uZW50LiBUaGlzIGNvbWJpbmF0aW9uIGNyZWF0ZXMgYSBmdWxsIHJlcGxhY2VtZW50IG9mXG4gICAqIHRoZSBiYWNrd2FyZHMgbmF2aWdhdGlvbiBmdW5jdGlvbmFsaXR5LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQE91dHB1dCgnY2xyV2l6YXJkUGFnZVByZXZpb3VzJykgcHJldmlvdXNCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJXaXphcmRQYWdlPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBuZXh0IGJ1dHRvbiBpcyBjbGlja2VkIGFuZCB0aGUgQ2xyV2l6YXJkUGFnZSBpc1xuICAgKiB0aGUgd2l6YXJkJ3MgY3VycmVudCBwYWdlLlxuICAgKlxuICAgKiBDYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBDbHJXaXphcmRQYWdlLnByZXZlbnREZWZhdWx0XG4gICAqIChjbHJXaXphcmRQYWdlUGFnZVByZXZlbnREZWZhdWx0KSBpbnB1dCB0byBpbXBsZW1lbnQgY3VzdG9tIGZvcndhcmRzXG4gICAqIG5hdmlnYXRpb24gYXQgdGhlIHBhZ2UgbGV2ZWwuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIGRvXG4gICAqIHZhbGlkYXRpb24sIHNhdmUgZGF0YSwgb3Igd2FybiB1c2VycyBiZWZvcmUgYWxsb3dpbmcgdGhlbSB0byBnb1xuICAgKiB0byB0aGUgbmV4dCBwYWdlIGluIHRoZSB3aXphcmQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIHlvdSB0byBjYWxsIFdpemFyZC5mb3JjZU5leHQoKSBvciBXaXphcmQubmV4dCgpXG4gICAqIGZyb20gdGhlIGhvc3QgY29tcG9uZW50LiBUaGlzIGNvbWJpbmF0aW9uIGNyZWF0ZXMgYSBmdWxsIHJlcGxhY2VtZW50IG9mXG4gICAqIHRoZSBmb3J3YXJkIG5hdmlnYXRpb24gZnVuY3Rpb25hbGl0eS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBPdXRwdXQoJ2NscldpemFyZFBhZ2VOZXh0JykgbmV4dEJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENscldpemFyZFBhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYSBkYW5nZXIgYnV0dG9uIGlzIGNsaWNrZWQgYW5kIHRoZSBDbHJXaXphcmRQYWdlIGlzXG4gICAqIHRoZSB3aXphcmQncyBjdXJyZW50IHBhZ2UuIEJ5IGRlZmF1bHQsIGEgZGFuZ2VyIGJ1dHRvbiB3aWxsIGFjdCBhc1xuICAgKiBlaXRoZXIgYSBcIm5leHRcIiBvciBcImZpbmlzaFwiIGJ1dHRvbiBkZXBlbmRpbmcgb24gaWYgdGhlIENscldpemFyZFBhZ2UgaXMgdGhlXG4gICAqIGxhc3QgcGFnZSBvciBub3QuXG4gICAqXG4gICAqIENhbiBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIENscldpemFyZFBhZ2UucHJldmVudERlZmF1bHRcbiAgICogKGNscldpemFyZFBhZ2VQYWdlUHJldmVudERlZmF1bHQpIGlucHV0IHRvIGltcGxlbWVudCBjdXN0b20gZm9yd2FyZHNcbiAgICogb3IgZmluaXNoIG5hdmlnYXRpb24gYXQgdGhlIHBhZ2UgbGV2ZWwgd2hlbiB0aGUgZGFuZ2VyIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBkbyB2YWxpZGF0aW9uLCBzYXZlIGRhdGEsIG9yIHdhcm5cbiAgICogdXNlcnMgYmVmb3JlIGFsbG93aW5nIHRoZW0gdG8gZ28gdG8gdGhlIG5leHQgcGFnZSBpbiB0aGUgd2l6YXJkIG9yXG4gICAqIGZpbmlzaCB0aGUgd2l6YXJkLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyB5b3UgdG8gY2FsbCBXaXphcmQuZmluaXNoKCksIFdpemFyZC5mb3JjZUZpbmlzaCgpLFxuICAgKiBXaXphcmQuZm9yY2VOZXh0KCkgb3IgV2l6YXJkLm5leHQoKSBmcm9tIHRoZSBob3N0IGNvbXBvbmVudC4gVGhpc1xuICAgKiBjb21iaW5hdGlvbiBjcmVhdGVzIGEgZnVsbCByZXBsYWNlbWVudCBvZiB0aGUgZm9yd2FyZCBuYXZpZ2F0aW9uIGFuZFxuICAgKiBmaW5pc2ggZnVuY3Rpb25hbGl0eS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBPdXRwdXQoJ2NscldpemFyZFBhZ2VEYW5nZXInKSBkYW5nZXJCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDbHJXaXphcmRQYWdlPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIGEgbmV4dCwgZmluaXNoLCBvciBkYW5nZXIgYnV0dG9uIGlzIGNsaWNrZWQgYW5kIHRoZVxuICAgKiBDbHJXaXphcmRQYWdlIGlzIHRoZSB3aXphcmQncyBjdXJyZW50IHBhZ2UuXG4gICAqXG4gICAqIENhbiBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIENscldpemFyZFBhZ2UucHJldmVudERlZmF1bHRcbiAgICogKGNscldpemFyZFBhZ2VQYWdlUHJldmVudERlZmF1bHQpIGlucHV0IHRvIGltcGxlbWVudCBjdXN0b20gZm9yd2FyZHNcbiAgICogb3IgZmluaXNoIG5hdmlnYXRpb24gYXQgdGhlIHBhZ2UgbGV2ZWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHR5cGUgb2ZcbiAgICogcHJpbWFyeSBidXR0b24uXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIGRvIHZhbGlkYXRpb24sIHNhdmUgZGF0YSwgb3Igd2FyblxuICAgKiB1c2VycyBiZWZvcmUgYWxsb3dpbmcgdGhlbSB0byBnbyB0byB0aGUgbmV4dCBwYWdlIGluIHRoZSB3aXphcmQgb3JcbiAgICogZmluaXNoIHRoZSB3aXphcmQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIHlvdSB0byBjYWxsIFdpemFyZC5maW5pc2goKSwgV2l6YXJkLmZvcmNlRmluaXNoKCksXG4gICAqIFdpemFyZC5mb3JjZU5leHQoKSBvciBXaXphcmQubmV4dCgpIGZyb20gdGhlIGhvc3QgY29tcG9uZW50LiBUaGlzXG4gICAqIGNvbWJpbmF0aW9uIGNyZWF0ZXMgYSBmdWxsIHJlcGxhY2VtZW50IG9mIHRoZSBmb3J3YXJkIG5hdmlnYXRpb24gYW5kXG4gICAqIGZpbmlzaCBmdW5jdGlvbmFsaXR5LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQE91dHB1dCgnY2xyV2l6YXJkUGFnZVByaW1hcnknKSBwcmltYXJ5QnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoJ2NscldpemFyZFBhZ2VDdXN0b21CdXR0b24nKSBjdXN0b21CdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBwYWdlIHRpdGxlIHdoaWNoIGlzIHVzZWQgZm9yIGEgbnVtYmVyXG4gICAqIG9mIGRpZmZlcmVudCB0YXNrcyBmb3IgZGlzcGxheSBpbiB0aGUgd2l6YXJkLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChDbHJXaXphcmRQYWdlVGl0bGUsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2VUaXRsZTogQ2xyV2l6YXJkUGFnZVRpdGxlO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgZGVzaXJlZCB0aXRsZSBmb3IgdGhlIHBhZ2UncyBzdGVwIGluIHRoZVxuICAgKiBuYXZpZ2F0aW9uIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHdpemFyZC4gQ2FuIGJlIHByb2plY3RlZCB0byBjaGFuZ2UgdGhlXG4gICAqIG5hdmlnYXRpb24gbGluaydzIHRleHQuXG4gICAqXG4gICAqIElmIG5vdCBkZWZpbmVkLCB0aGVuIENscldpemFyZFBhZ2UucGFnZVRpdGxlIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBzdGVwbmF2LlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChDbHJXaXphcmRQYWdlTmF2VGl0bGUsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2VOYXZUaXRsZTogQ2xyV2l6YXJkUGFnZU5hdlRpdGxlO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgYnV0dG9ucyBkZWZpbmVkIHdpdGhpbiB0aGUgcGFnZS4gSWYgbm90IGRlZmluZWQsXG4gICAqIHRoZSB3aXphcmQgZGVmYXVsdHMgdG8gdGhlIHNldCBvZiBidXR0b25zIGRlZmluZWQgYXMgYSBkaXJlY3QgY2hpbGQgb2YgdGhlXG4gICAqIHdpemFyZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoQ2xyV2l6YXJkUGFnZUJ1dHRvbnMsIHsgc3RhdGljOiB0cnVlIH0pIF9idXR0b25zOiBDbHJXaXphcmRQYWdlQnV0dG9ucztcblxuICAvKipcbiAgICogQ29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGhlYWRlciBhY3Rpb25zIGRlZmluZWQgd2l0aGluIHRoZSBwYWdlLiBJZiBub3QgZGVmaW5lZCxcbiAgICogdGhlIHdpemFyZCBkZWZhdWx0cyB0byB0aGUgc2V0IG9mIGhlYWRlciBhY3Rpb25zIGRlZmluZWQgYXMgYSBkaXJlY3QgY2hpbGQgb2YgdGhlXG4gICAqIHdpemFyZC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBDb250ZW50Q2hpbGQoQ2xyV2l6YXJkUGFnZUhlYWRlckFjdGlvbnMsIHsgc3RhdGljOiB0cnVlIH0pIF9oZWFkZXJBY3Rpb25zOiBDbHJXaXphcmRQYWdlSGVhZGVyQWN0aW9ucztcblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIHByaXZhdGUgX25leHRTdGVwRGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIHByaXZhdGUgX3ByZXZpb3VzU3RlcERpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBwcml2YXRlIF9oYXNFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBfc3RvcENhbmNlbCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBfc3RvcE5leHQgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIHByaXZhdGUgX2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ2xyV2l6YXJkUGFnZS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmF2U2VydmljZTogV2l6YXJkTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIHBhZ2VDb2xsZWN0aW9uOiBQYWdlQ29sbGVjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGJ1dHRvblNlcnZpY2U6IEJ1dHRvbkh1YlNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBBIHByb3BlcnR5IHRoYXQgdGVsbHMgd2hldGhlciBvciBub3QgdGhlIHdpemFyZCBzaG91bGQgYmUgYWxsb3dlZFxuICAgKiB0byBtb3ZlIHRvIHRoZSBuZXh0IHBhZ2UuXG4gICAqXG4gICAqIFVzZWZ1bCBmb3IgaW4tcGFnZSB2YWxpZGF0aW9uIGJlY2F1c2UgaXQgcHJldmVudHMgZm9yd2FyZCBuYXZpZ2F0aW9uXG4gICAqIGFuZCB2aXNpYmx5IGRpc2FibGVzIHRoZSBuZXh0IGJ1dHRvbi5cbiAgICpcbiAgICogRG9lcyBub3QgcmVxdWlyZSB0aGF0IHlvdSByZS1pbXBsZW1lbnQgbmF2aWdhdGlvbiByb3V0aW5lcyBsaWtlIHlvdVxuICAgKiB3b3VsZCBpZiB5b3Ugd2VyZSB1c2luZyBDbHJXaXphcmRQYWdlLnByZXZlbnREZWZhdWx0IG9yXG4gICAqIFdpemFyZC5wcmV2ZW50RGVmYXVsdC5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIEBJbnB1dCgnY2xyV2l6YXJkUGFnZU5leHREaXNhYmxlZCcpXG4gIGdldCBuZXh0U3RlcERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9uZXh0U3RlcERpc2FibGVkO1xuICB9XG4gIHNldCBuZXh0U3RlcERpc2FibGVkKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IHZhbEJvb2wgPSAhIXZhbDtcbiAgICBpZiAodmFsQm9vbCAhPT0gdGhpcy5fbmV4dFN0ZXBEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fbmV4dFN0ZXBEaXNhYmxlZCA9IHZhbEJvb2w7XG4gICAgICB0aGlzLm5leHRTdGVwRGlzYWJsZWRDaGFuZ2UuZW1pdCh2YWxCb29sKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQSBwcm9wZXJ0eSB0aGF0IHRlbGxzIHdoZXRoZXIgb3Igbm90IHRoZSB3aXphcmQgc2hvdWxkIGJlIGFsbG93ZWRcbiAgICogdG8gbW92ZSB0byB0aGUgcHJldmlvdXMgcGFnZS5cbiAgICpcbiAgICogVXNlZnVsIGZvciBpbi1wYWdlIHZhbGlkYXRpb24gYmVjYXVzZSBpdCBwcmV2ZW50cyBiYWNrd2FyZCBuYXZpZ2F0aW9uXG4gICAqIGFuZCB2aXNpYmx5IGRpc2FibGVzIHRoZSBwcmV2aW91cyBidXR0b24uXG4gICAqXG4gICAqIERvZXMgbm90IHJlcXVpcmUgdGhhdCB5b3UgcmUtaW1wbGVtZW50IG5hdmlnYXRpb24gcm91dGluZXMgbGlrZSB5b3VcbiAgICogd291bGQgaWYgeW91IHdlcmUgdXNpbmcgQ2xyV2l6YXJkUGFnZS5wcmV2ZW50RGVmYXVsdCBvclxuICAgKiBXaXphcmQucHJldmVudERlZmF1bHQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ2NscldpemFyZFBhZ2VQcmV2aW91c0Rpc2FibGVkJylcbiAgZ2V0IHByZXZpb3VzU3RlcERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wcmV2aW91c1N0ZXBEaXNhYmxlZDtcbiAgfVxuICBzZXQgcHJldmlvdXNTdGVwRGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgY29uc3QgdmFsQm9vbCA9ICEhdmFsO1xuICAgIGlmICh2YWxCb29sICE9PSB0aGlzLl9wcmV2aW91c1N0ZXBEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fcHJldmlvdXNTdGVwRGlzYWJsZWQgPSB2YWxCb29sO1xuICAgICAgdGhpcy5wcmV2aW91c1N0ZXBEaXNhYmxlZENoYW5nZS5lbWl0KHZhbEJvb2wpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwYWdlIGhhcyBhbiBlcnJvciBhbmQgYWxzbyByZXNvbHZlIHRoZSBcImZhbHN5XCIgdmFsdWUuIFRoZVxuICAgKiBjdXJyZW50IGxvZ2ljIHRyZWF0IGEgXCIwXCIgb3IgYW4gZW1wdHkgc3RyaW5nIGFzIGZhbHNlIGFuZCBsaWtld2lzZSB3aWxsIHRyZWF0IGFueVxuICAgKiBcInRydXRoeVwiIHZhbHVlIGFzIHRydWUuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ2NscldpemFyZFBhZ2VIYXNFcnJvcicpXG4gIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzRXJyb3I7XG4gIH1cbiAgc2V0IGhhc0Vycm9yKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IHZhbEJvb2wgPSAhIXZhbDtcbiAgICBpZiAodmFsQm9vbCAhPT0gdGhpcy5faGFzRXJyb3IpIHtcbiAgICAgIHRoaXMuX2hhc0Vycm9yID0gdmFsQm9vbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBjYW5jZWwgYWN0aW9uIGZyb20gdGhlIHBhZ2UgbGV2ZWwuIEFsbG93cyB5b3UgdG8gdXNlIGFuXG4gICAqIGFsdGVybmF0ZSBmdW5jdGlvbiBmb3IgdmFsaWRhdGlvbiBvciBkYXRhLW11bmdpbmcgYmVmb3JlIGNhbmNlbGxpbmcgdGhlXG4gICAqIHdpemFyZCB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIENscldpemFyZFBhZ2Uub25DYW5jZWxcbiAgICogKHRoZSBjbHJXaXphcmRQYWdlT25DYW5jZWwgb3V0cHV0KS5cbiAgICpcbiAgICogUmVxdWlyZXMgdGhhdCB5b3UgbWFudWFsbHkgY2xvc2UgdGhlIHdpemFyZCBmcm9tIHlvdXIgaG9zdCBjb21wb25lbnQsXG4gICAqIHVzdWFsbHkgd2l0aCBhIGNhbGwgdG8gV2l6YXJkLmZvcmNlTmV4dCgpIG9yIHdpemFyZC5uZXh0KCk7XG4gICAqXG4gICAqIEBtZW1iZXJvZiBDbHJXaXphcmRQYWdlXG4gICAqL1xuICBASW5wdXQoJ2NscldpemFyZFBhZ2VQcmV2ZW50RGVmYXVsdENhbmNlbCcpXG4gIGdldCBzdG9wQ2FuY2VsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdG9wQ2FuY2VsO1xuICB9XG4gIHNldCBzdG9wQ2FuY2VsKHZhbDogYm9vbGVhbikge1xuICAgIGNvbnN0IHZhbEJvb2wgPSAhIXZhbDtcbiAgICBpZiAodmFsQm9vbCAhPT0gdGhpcy5fc3RvcENhbmNlbCkge1xuICAgICAgdGhpcy5fc3RvcENhbmNlbCA9IHZhbEJvb2w7XG4gICAgICB0aGlzLnN0b3BDYW5jZWxDaGFuZ2UuZW1pdCh2YWxCb29sKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvcndhcmQgbmF2aWdhdGlvbiBmcm9tIHRoZSBwYWdlIGxldmVsLiBBbGxvd3MgeW91IHRvIHVzZSBhblxuICAgKiBhbHRlcm5hdGUgZnVuY3Rpb24gZm9yIHZhbGlkYXRpb24gb3IgZGF0YS1tdW5naW5nIGJlZm9yZSBtb3ZpbmcgdGhlXG4gICAqIHdpemFyZCB0byB0aGUgbmV4dCBwYWdld2hlbiBjb21iaW5lZCB3aXRoIHRoZSBDbHJXaXphcmRQYWdlLm9uQ29tbWl0XG4gICAqIChjbHJXaXphcmRQYWdlT25Db21taXQpIG9yIENscldpemFyZFBhZ2UubmV4dEJ1dHRvbkNsaWNrZWRcbiAgICogKGNscldpemFyZFBhZ2VOZXh0KSBvdXRwdXRzLlxuICAgKlxuICAgKiBSZXF1aXJlcyB0aGF0IHlvdSBtYW51YWxseSB0ZWxsIHRoZSB3aXphcmQgdG8gbmF2aWdhdGUgZm9yd2FyZCBmcm9tXG4gICAqIHRoZSBob3N0Q29tcG9uZW50LCB1c3VhbGx5IHdpdGggYSBjYWxsIHRvIFdpemFyZC5mb3JjZU5leHQoKSBvclxuICAgKiB3aXphcmQubmV4dCgpO1xuICAgKlxuICAgKiBAbWVtYmVyb2YgQ2xyV2l6YXJkUGFnZVxuICAgKi9cbiAgQElucHV0KCdjbHJXaXphcmRQYWdlUHJldmVudERlZmF1bHROZXh0JylcbiAgZ2V0IHN0b3BOZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdG9wTmV4dDtcbiAgfVxuICBzZXQgc3RvcE5leHQodmFsOiBib29sZWFuKSB7XG4gICAgY29uc3QgdmFsQm9vbCA9ICEhdmFsO1xuICAgIGlmICh2YWxCb29sICE9PSB0aGlzLl9zdG9wTmV4dCkge1xuICAgICAgdGhpcy5fc3RvcE5leHQgPSB2YWxCb29sO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBIHJlYWQtb25seSBnZXR0ZXIgdGhhdCBnZW5lcmF0ZXMgYW4gSUQgc3RyaW5nIGZvciB0aGUgd2l6YXJkIHBhZ2UgZnJvbVxuICAgKiBlaXRoZXIgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGUgQ2xyV2l6YXJkUGFnZSBcImlkXCIgaW5wdXQgb3IgYSB3aXphcmQgcGFnZVxuICAgKiBjb3VudGVyIHNoYXJlZCBhY3Jvc3MgYWxsIHdpemFyZCBwYWdlcyBpbiB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgdmFsdWUgcGFzc2VkIGludG8gdGhlIElEIGlucHV0IFdpbGwgYmUgcHJlZml4ZWQgd2l0aFxuICAgKiBcImNsci13aXphcmQtcGFnZS1cIi5cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqXG4gICAqIEBtZW1iZXJvZiBDbHJXaXphcmRQYWdlXG4gICAqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAvLyBjb3ZlcnMgdGhpbmdzIGxpa2UgbnVsbCwgdW5kZWZpbmVkLCBmYWxzZSwgYW5kIGVtcHR5IHN0cmluZ1xuICAgIC8vIHdoaWxlIGFsbG93aW5nIHplcm8gdG8gcGFzc1xuICAgIGNvbnN0IGlkSXNOb25aZXJvRmFsc3kgPSAhdGhpcy5faWQgJiYgdGhpcy5faWQgIT09IDA7XG5cbiAgICAvLyBpbiBhZGRpdGlvbiB0byBub24temVybyBmYWxzeSB3ZSBhbHNvIHdhbnQgdG8gbWFrZSBzdXJlIF9pZCBpcyBub3QgYSBuZWdhdGl2ZVxuICAgIC8vIG51bWJlci5cbiAgICBpZiAoaWRJc05vblplcm9GYWxzeSB8fCB0aGlzLl9pZCA8IDApIHtcbiAgICAgIC8vIGd1YXJkIGhlcmUgaW4gdGhlIGV2ZW50IHRoYXQgaW5wdXQgYmVjb21lcyB1bmRlZmluZWQgb3IgbnVsbCBieSBhY2NpZGVudFxuICAgICAgdGhpcy5faWQgPSAod2l6YXJkUGFnZUluZGV4KyspLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBgY2xyLXdpemFyZC1wYWdlLSR7dGhpcy5faWR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHJlYWQtb25seSBnZXR0ZXIgdGhhdCBzZXJ2ZXMgYXMgYSBjb252ZW5pZW5jZSBmb3IgdGhvc2Ugd2hvIHdvdWxkIHJhdGhlclxuICAgKiBub3QgdGhpbmsgaW4gdGhlIHRlcm1zIG9mICFDbHJXaXphcmRQYWdlLm5leHRTdGVwRGlzYWJsZWQuIEZvciBzb21lIHVzZSBjYXNlcyxcbiAgICogQ2xyV2l6YXJkUGFnZS5yZWFkeVRvQ29tcGxldGUgaXMgbW9yZSBsb2dpY2FsIGFuZCBkZWNsYXJhdGl2ZS5cbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIGdldCByZWFkeVRvQ29tcGxldGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm5leHRTdGVwRGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQSBwYWdlIGlzIG1hcmtlZCBhcyBjb21wbGV0ZWQgaWYgaXQgaXMgYm90aCByZWFkeVRvQ29tcGxldGUgYW5kIGNvbXBsZXRlZCxcbiAgICogYXMgaW4gdGhlIG5leHQgb3IgZmluaXNoIGFjdGlvbiBoYXMgYmVlbiBleGVjdXRlZCB3aGlsZSB0aGlzIHBhZ2Ugd2FzIGN1cnJlbnQuXG4gICAqXG4gICAqIE5vdGUgdGhlcmUgaXMgYW5kIG9wZW4gcXVlc3Rpb24gYWJvdXQgaG93IHRvIGhhbmRsZSBwYWdlcyB0aGF0IGFyZSBtYXJrZWRcbiAgICogY29tcGxldGUgYnV0IHdobyBhcmUgbm8gbG9uZ2VyIHJlYWR5VG9Db21wbGV0ZS4gVGhpcyBtaWdodCBpbmRpY2F0ZSBhbiBlcnJvclxuICAgKiBzdGF0ZSBmb3IgdGhlIENscldpemFyZFBhZ2UuIEN1cnJlbnRseSwgdGhlIHdpemFyZCBkb2VzIG5vdCBhY2tub3dsZWRnZSB0aGlzIHN0YXRlXG4gICAqIGFuZCBvbmx5IHJldHVybnMgdGhhdCB0aGUgcGFnZSBpcyBpbmNvbXBsZXRlLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgZ2V0IGNvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGxldGUgJiYgdGhpcy5yZWFkeVRvQ29tcGxldGU7XG5cbiAgICAvLyBGT1IgVjI6IFVOV0lORCBDT01QTEVURUQsIFJFQURZVE9DT01QTEVURSwgQU5EIEVSUk9SU1xuICAgIC8vIFNVQ0ggVEhBVCBFUlJPUlMgSVMgSVRTIE9XTiBJTlBVVC4gSUYgQSBTVEVQIElTXG4gICAgLy8gSU5DT01QTEVURSBBTkQgRVJST1JFRCwgRVJST1JFRCBXSUxMIE5PVCBTSE9XLlxuICAgIC8vIEZJUlNUIFFVRVNUSU9OOiBBTSBJIEdSRVkgT1IgQ09MT1JFRD9cbiAgICAvLyBTRUNPTkQgUVVFU1RJT046IEFNIEkgR1JFRU4gT1IgUkVEP1xuICB9XG5cbiAgLyoqXG4gICAqIEEgQ2xyV2l6YXJkUGFnZSBjYW4gYmUgbWFudWFsbHkgc2V0IHRvIGNvbXBsZXRlZCB1c2luZyB0aGlzIGJvb2xlYW4gc2V0dGVyLlxuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHVzZXJzIHJlbHkgb24gdGhlIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBpbiB0aGUgd2l6YXJkXG4gICAqIGFuZCBuYXZpZ2F0aW9uIHNlcnZpY2UgaW5zdGVhZCBvZiBtYW51YWxseSBzZXR0aW5nIHBhZ2Vz4oCZIGNvbXBsZXRpb24gc3RhdGUuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBDbHJXaXphcmRQYWdlXG4gICAqL1xuICBzZXQgY29tcGxldGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY29tcGxldGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2l0aCB0aGUgbmF2aWdhdGlvbiBzZXJ2aWNlIHRvIHNlZSBpZiBpdCBpcyB0aGUgY3VycmVudCBwYWdlLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgZ2V0IGN1cnJlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmF2U2VydmljZS5jdXJyZW50UGFnZSA9PT0gdGhpcztcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHJlYWQtb25seSBnZXR0ZXIgdGhhdCByZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzIG5hdmlnYWJsZVxuICAgKiBpbiB0aGUgd2l6YXJkLiBBIHdpemFyZCBwYWdlIGNhbiBiZSBuYXZpZ2F0ZWQgdG8gaWYgaXQgaXMgY29tcGxldGVkXG4gICAqIG9yIHRoZSBwYWdlIGJlZm9yZSBpdCBpcyBjb21wbGV0ZWQuXG4gICAqXG4gICAqIFRoaXMgZ2V0dGVyIGhhbmRsZXMgdGhlIGxvZ2ljIGZvciBlbmFibGluZyBvciBkaXNhYmxpbmcgdGhlIGxpbmtzIGluXG4gICAqIHRoZSBzdGVwIG5hdiBvbiB0aGUgbGVmdCBTaWRlIG9mIHRoZSB3aXphcmQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50IHx8IHRoaXMuY29tcGxldGVkIHx8IHRoaXMucHJldmlvdXNDb21wbGV0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQSByZWFkLW9ubHkgZ2V0dGVyIHRoYXQgcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBiZWZvcmUgdGhpc1xuICAgKiBDbHJXaXphcmRQYWdlIGlzIGNvbXBsZXRlZC4gVGhpcyBpcyB1c2VmdWwgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgb3Igbm90XG4gICAqIGEgcGFnZSBpcyBuYXZpZ2FibGUgaWYgaXQgaXMgbm90IGN1cnJlbnQgb3IgYWxyZWFkeSBjb21wbGV0ZWQuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBnZXQgcHJldmlvdXNDb21wbGV0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5wYWdlQ29sbGVjdGlvbi5nZXRQcmV2aW91c1BhZ2UodGhpcyk7XG5cbiAgICBpZiAoIXByZXZpb3VzUGFnZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZpb3VzUGFnZS5jb21wbGV0ZWQ7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIGdldCB0aXRsZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlVGl0bGUucGFnZVRpdGxlVGVtcGxhdGVSZWY7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIGdldCBuYXZUaXRsZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBpZiAodGhpcy5wYWdlTmF2VGl0bGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VOYXZUaXRsZS5wYWdlTmF2VGl0bGVUZW1wbGF0ZVJlZjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFnZVRpdGxlLnBhZ2VUaXRsZVRlbXBsYXRlUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBnZXQgaGVhZGVyQWN0aW9ucygpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICBpZiAoIXRoaXMuX2hlYWRlckFjdGlvbnMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9oZWFkZXJBY3Rpb25zLnBhZ2VIZWFkZXJBY3Rpb25zVGVtcGxhdGVSZWY7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIGdldCBoYXNIZWFkZXJBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2hlYWRlckFjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQG1lbWJlcm9mIFdpemFyZFBhZ2VcbiAgICpcbiAgICovXG4gIGdldCBidXR0b25zKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIGlmICghdGhpcy5fYnV0dG9ucykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2J1dHRvbnMucGFnZUJ1dHRvbnNUZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHJlYWQtb25seSBnZXR0ZXIgdGhhdCByZXR1cm5zIGEgYm9vbGVhbiB0aGF0IHNheXMgd2hldGhlciBvclxuICAgKiBub3QgdGhlIENscldpemFyZFBhZ2UgaW5jbHVkZXMgYnV0dG9ucy4gVXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlXG4gICAqIFdpemFyZCBzaG91bGQgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYnV0dG9uIHNldCBkZWZpbmVkIGFzXG4gICAqIGl0cyBkaXJlY3QgY2hpbGRyZW4uXG4gICAqXG4gICAqIEBtZW1iZXJvZiBXaXphcmRQYWdlXG4gICAqXG4gICAqL1xuICBnZXQgaGFzQnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9idXR0b25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgcmVhZC1vbmx5IGdldHRlciB0aGF0IHJldHVybnMgdGhlIGlkIHVzZWQgYnkgdGhlIHN0ZXAgbmF2IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBwYWdlLlxuICAgKlxuICAgKiBDbHJXaXphcmRQYWdlIG5lZWRzIHRoaXMgSUQgc3RyaW5nIGZvciBhcmlhIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgZ2V0IHN0ZXBJdGVtSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlQ29sbGVjdGlvbi5nZXRTdGVwSXRlbUlkRm9yUGFnZSh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW5rcyB0aGUgbmF2IHNlcnZpY2UgYW5kIGVzdGFibGlzaGVzIHRoZSBjdXJyZW50IHBhZ2UgaWYgb25lIGlzIG5vdCBkZWZpbmVkLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbmF2U2VydmljZSA9IHRoaXMubmF2U2VydmljZTtcbiAgICBpZiAoIW5hdlNlcnZpY2UuY3VycmVudFBhZ2UgJiYgIW5hdlNlcnZpY2UubmF2U2VydmljZUxvYWRlZCkge1xuICAgICAgdGhpcy5tYWtlQ3VycmVudCgpO1xuICAgICAgdGhpcy5uYXZTZXJ2aWNlLm5hdlNlcnZpY2VMb2FkZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIHRoZSBuYXYgc2VydmljZSB0byBtYWtlIHRoZSBDbHJXaXphcmRQYWdlIHRoZSBjdXJyZW50IHBhZ2UgaW4gdGhlXG4gICAqIHdpemFyZC4gQnlwYXNzZXMgYWxsIGNoZWNrcyBidXQgc3RpbGwgZW1pdHMgdGhlIENscldpemFyZFBhZ2Uub25Mb2FkXG4gICAqIChjbHJXaXphcmRQYWdlT25Mb2FkKSBvdXRwdXQuXG4gICAqXG4gICAqIEluIG1vc3QgY2FzZXMsIGl0IGlzIGJldHRlciB0byB1c2UgdGhlIGRlZmF1bHQgbmF2aWdhdGlvbiBmdW5jdGlvbnNcbiAgICogaW4gV2l6YXJkLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgV2l6YXJkUGFnZVxuICAgKlxuICAgKi9cbiAgbWFrZUN1cnJlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5uYXZTZXJ2aWNlLmN1cnJlbnRQYWdlID0gdGhpcztcbiAgfVxufVxuIl19