@clr/angular 17.12.2 → 18.0.0-beta.2

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 +7587 -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 +9131 -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 +270 -0
  27. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -0
  28. package/fesm2022/clr-angular-forms-combobox.mjs +1478 -0
  29. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
  30. package/fesm2022/clr-angular-forms-common.mjs +1238 -0
  31. package/fesm2022/clr-angular-forms-common.mjs.map +1 -0
  32. package/fesm2022/clr-angular-forms-datalist.mjs +263 -0
  33. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -0
  34. package/fesm2022/clr-angular-forms-datepicker.mjs +3222 -0
  35. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -0
  36. package/fesm2022/clr-angular-forms-file-input.mjs +827 -0
  37. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -0
  38. package/fesm2022/clr-angular-forms-input.mjs +153 -0
  39. package/fesm2022/clr-angular-forms-input.mjs.map +1 -0
  40. package/fesm2022/clr-angular-forms-number-input.mjs +237 -0
  41. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -0
  42. package/fesm2022/clr-angular-forms-password.mjs +233 -0
  43. package/fesm2022/clr-angular-forms-password.mjs.map +1 -0
  44. package/fesm2022/clr-angular-forms-radio.mjs +231 -0
  45. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -0
  46. package/fesm2022/clr-angular-forms-range.mjs +186 -0
  47. package/fesm2022/clr-angular-forms-range.mjs.map +1 -0
  48. package/fesm2022/clr-angular-forms-select.mjs +153 -0
  49. package/fesm2022/clr-angular-forms-select.mjs.map +1 -0
  50. package/fesm2022/clr-angular-forms-textarea.mjs +136 -0
  51. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -0
  52. package/fesm2022/clr-angular-forms.mjs +8492 -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 +1093 -0
  71. package/fesm2022/clr-angular-popover-common.mjs.map +1 -0
  72. package/fesm2022/clr-angular-popover-dropdown.mjs +492 -0
  73. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -0
  74. package/fesm2022/clr-angular-popover-signpost.mjs +493 -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 +2355 -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 +2509 -0
  93. package/fesm2022/clr-angular-utils.mjs.map +1 -0
  94. package/fesm2022/clr-angular-wizard.mjs +2871 -0
  95. package/fesm2022/clr-angular-wizard.mjs.map +1 -0
  96. package/fesm2022/clr-angular.mjs +38714 -0
  97. package/fesm2022/clr-angular.mjs.map +1 -0
  98. package/package.json +197 -18
  99. package/popover/common/README.md +112 -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 +1840 -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 +2137 -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 +307 -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 +958 -0
  117. package/types/clr-angular-forms-file-input.d.ts +193 -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 +2088 -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 +255 -0
  135. package/types/clr-angular-popover-dropdown.d.ts +123 -0
  136. package/types/clr-angular-popover-signpost.d.ts +157 -0
  137. package/types/clr-angular-popover-tooltip.d.ts +83 -0
  138. package/types/clr-angular-popover.d.ts +602 -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 +1065 -0
  146. package/types/clr-angular-wizard.d.ts +1454 -0
  147. package/types/clr-angular.d.ts +10289 -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 -101
  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 -31527
  811. package/fesm2015/clr-angular.mjs.map +0 -1
  812. package/fesm2020/clr-angular.mjs +0 -31343
  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 -14
  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
@@ -0,0 +1,2871 @@
1
+ import * as i4 from '@angular/common';
2
+ import { isPlatformBrowser, CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, EventEmitter, Output, Input, Component, Directive, ContentChild, PLATFORM_ID, ViewChild, ContentChildren, Inject, NgModule } from '@angular/core';
5
+ import * as i8 from '@clr/angular/modal';
6
+ import { ClrModal, ClrModalModule } from '@clr/angular/modal';
7
+ import * as i3 from '@clr/angular/utils';
8
+ import { uniqueIdFactory } from '@clr/angular/utils';
9
+ import { filter } from 'rxjs/operators';
10
+ import { Subject, startWith, tap } from 'rxjs';
11
+ import * as i5 from '@clr/angular/icon';
12
+ import { ClarityIcons, errorStandardIcon, successStandardIcon, ClrIcon } from '@clr/angular/icon';
13
+ import { ClrAlertModule } from '@clr/angular/emphasis/alert';
14
+
15
+ /*
16
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
17
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
18
+ * This software is released under MIT license.
19
+ * The full license information can be found in LICENSE in the root directory of this project.
20
+ */
21
+ class ButtonHubService {
22
+ constructor() {
23
+ this.buttonsReady = false;
24
+ this._previousBtnClicked = new Subject();
25
+ this._nextBtnClicked = new Subject();
26
+ this._dangerBtnClicked = new Subject();
27
+ this._cancelBtnClicked = new Subject();
28
+ this._finishBtnClicked = new Subject();
29
+ this._customBtnClicked = new Subject();
30
+ }
31
+ get previousBtnClicked() {
32
+ return this._previousBtnClicked.asObservable();
33
+ }
34
+ get nextBtnClicked() {
35
+ return this._nextBtnClicked.asObservable();
36
+ }
37
+ get dangerBtnClicked() {
38
+ return this._dangerBtnClicked.asObservable();
39
+ }
40
+ get cancelBtnClicked() {
41
+ return this._cancelBtnClicked.asObservable();
42
+ }
43
+ get finishBtnClicked() {
44
+ return this._finishBtnClicked.asObservable();
45
+ }
46
+ get customBtnClicked() {
47
+ return this._customBtnClicked.asObservable();
48
+ }
49
+ buttonClicked(buttonType) {
50
+ if ('previous' === buttonType) {
51
+ this._previousBtnClicked.next();
52
+ }
53
+ else if ('next' === buttonType) {
54
+ this._nextBtnClicked.next();
55
+ }
56
+ else if ('finish' === buttonType) {
57
+ this._finishBtnClicked.next();
58
+ }
59
+ else if ('danger' === buttonType) {
60
+ this._dangerBtnClicked.next();
61
+ }
62
+ else if ('cancel' === buttonType) {
63
+ this._cancelBtnClicked.next();
64
+ }
65
+ else {
66
+ this._customBtnClicked.next(buttonType);
67
+ }
68
+ }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ButtonHubService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ButtonHubService }); }
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ButtonHubService, decorators: [{
73
+ type: Injectable
74
+ }] });
75
+
76
+ /*
77
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
78
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
79
+ * This software is released under MIT license.
80
+ * The full license information can be found in LICENSE in the root directory of this project.
81
+ */
82
+ /**
83
+ * PageCollectionService manages the collection of pages assigned to the wizard and offers
84
+ * a number of functions useful across the wizards providers and subcomponents -- all related
85
+ * to essentially lookups on the collection of pages.
86
+ *
87
+ * The easiest way to access PageCollectionService is via the wizard. The
88
+ * following example would allow you to access your instance of the wizard from your host
89
+ * component and thereby access the page collection via YourHostComponent.wizard.pageCollection.
90
+ *
91
+ * @example
92
+ * <clr-wizard #wizard ...>
93
+ *
94
+ * @example
95
+ * export class YourHostComponent {
96
+ * @ViewChild("wizard") wizard: Wizard;
97
+ * ...
98
+ * }
99
+ *
100
+ * The heart of the page collection is the query list of pages, which it is assigned as a
101
+ * reference to the Wizard.pages QueryList when the wizard is created.
102
+ *
103
+ */
104
+ class PageCollectionService {
105
+ constructor() {
106
+ /**
107
+ *
108
+ * @memberof PageCollectionService
109
+ */
110
+ this._pagesReset = new Subject();
111
+ }
112
+ /**
113
+ * Converts the PageCollectionService.pages QueryList to an array and returns it.
114
+ *
115
+ * Useful for many instances when you would prefer a QueryList to act like an array.
116
+ *
117
+ * @memberof PageCollectionService
118
+ */
119
+ get pagesAsArray() {
120
+ return this.pages ? this.pages.toArray() : [];
121
+ }
122
+ /**
123
+ * Returns the length of the pages query list.
124
+ *
125
+ * @memberof PageCollectionService
126
+ */
127
+ get pagesCount() {
128
+ return this.pages ? this.pages.length : 0;
129
+ }
130
+ /**
131
+ * Returns the next-to-last page in the query list of pages. Operates as a getter
132
+ * so that it isn't working with stale data.
133
+ *
134
+ * @memberof PageCollectionService
135
+ */
136
+ get penultimatePage() {
137
+ const pageCount = this.pagesCount;
138
+ if (pageCount < 2) {
139
+ return null;
140
+ }
141
+ return this.pagesAsArray[pageCount - 2];
142
+ }
143
+ /**
144
+ * Returns the last page in the query list of pages. Operates as a getter
145
+ * so that it isn't working with stale data.
146
+ *
147
+ * @memberof PageCollectionService
148
+ */
149
+ get lastPage() {
150
+ const pageCount = this.pagesCount;
151
+ if (pageCount < 1) {
152
+ return null;
153
+ }
154
+ return this.pagesAsArray[pageCount - 1];
155
+ }
156
+ /**
157
+ * Returns the first page in the query list of pages. Operates as a getter
158
+ * so that it isn't working with stale data.
159
+ *
160
+ * @memberof PageCollectionService
161
+ */
162
+ get firstPage() {
163
+ if (!this.pagesCount) {
164
+ return null;
165
+ }
166
+ return this.pagesAsArray[0];
167
+ }
168
+ /**
169
+ * An observable that the navigation service listens to in order to know when
170
+ * the page collection completed states have been reset to false so that way it
171
+ * can also reset the navigation to make the first page in the page collection
172
+ * current/active.
173
+ *
174
+ * @memberof PageCollectionService
175
+ */
176
+ get pagesReset() {
177
+ return this._pagesReset.asObservable();
178
+ }
179
+ /**
180
+ * Used mostly internally, but accepts a string ID and returns a ClrWizardPage
181
+ * object that matches the ID passed. Note that IDs here should include the prefix
182
+ * "clr-wizard-page-".
183
+ *
184
+ * Returns the next-to-last page in the query list of pages. Operates as a getter
185
+ * so that it isn't working with stale data.
186
+ *
187
+ * @memberof PageCollectionService
188
+ */
189
+ getPageById(id) {
190
+ const foundPages = this.pages.filter((page) => id === page.id);
191
+ return this.checkResults(foundPages, id);
192
+ }
193
+ /**
194
+ * Accepts s number as a parameter and treats that number as the index of the page
195
+ * you're looking for in the collection of pages. Returns a wizard page object.
196
+ *
197
+ * @memberof PageCollectionService
198
+ */
199
+ getPageByIndex(index) {
200
+ const pageCount = this.pagesCount;
201
+ const pagesLastIndex = pageCount > 1 ? pageCount - 1 : 0;
202
+ if (index < 0) {
203
+ throw new Error('Cannot retrieve page with index of ' + index);
204
+ }
205
+ if (index > pagesLastIndex) {
206
+ throw new Error('Page index is greater than length of pages array.');
207
+ }
208
+ return this.pagesAsArray[index];
209
+ }
210
+ /**
211
+ * Takes a wizard page object as a parameter and returns its index in the
212
+ * collection of pages.
213
+ *
214
+ * @memberof PageCollectionService
215
+ */
216
+ getPageIndex(page) {
217
+ const index = this.pagesAsArray.indexOf(page);
218
+ if (index < 0) {
219
+ throw new Error('Requested page cannot be found in collection of pages.');
220
+ }
221
+ return index;
222
+ }
223
+ /**
224
+ * Accepts two numeric indexes and returns an array of wizard page objects that include
225
+ * all wizard pages in the page collection from the first index to the second.
226
+ *
227
+ * @memberof PageCollectionService
228
+ */
229
+ pageRange(start, end) {
230
+ let pages = [];
231
+ if (start < 0 || end < 0) {
232
+ return [];
233
+ }
234
+ if (start === null || typeof start === 'undefined' || isNaN(start)) {
235
+ return [];
236
+ }
237
+ if (end === null || typeof end === 'undefined' || isNaN(end)) {
238
+ return [];
239
+ }
240
+ if (end > this.pagesCount) {
241
+ end = this.pagesCount;
242
+ }
243
+ pages = this.pagesAsArray;
244
+ if (end - start === 0) {
245
+ // just return the one page they want
246
+ return [this.getPageByIndex(start)];
247
+ }
248
+ // slice end does not include item referenced by end index, which is weird for users
249
+ // incrementing end index here to correct that so users and other methods
250
+ // don't have to think about it
251
+ end = end + 1;
252
+ // slice does not return the last one in the range but it does include the first one
253
+ // does not modify original array
254
+ return pages.slice(start, end);
255
+ }
256
+ /**
257
+ * Accepts two wizard page objects and returns those page objects with all other page
258
+ * objects between them in the page collection. It doesn't care which page is ahead of the
259
+ * other in the parameters. It will be smart enough to figure that out on its own.
260
+ *
261
+ * @memberof PageCollectionService
262
+ */
263
+ getPageRangeFromPages(page, otherPage) {
264
+ const pageIndex = this.getPageIndex(page);
265
+ const otherPageIndex = this.getPageIndex(otherPage);
266
+ let startIndex;
267
+ let endIndex;
268
+ if (pageIndex <= otherPageIndex) {
269
+ startIndex = pageIndex;
270
+ endIndex = otherPageIndex;
271
+ }
272
+ else {
273
+ startIndex = otherPageIndex;
274
+ endIndex = pageIndex;
275
+ }
276
+ return this.pageRange(startIndex, endIndex);
277
+ }
278
+ /**
279
+ * Takes a wizard page object as a parameter and returns the wizard page object of
280
+ * the page immediately before it in the page collection. Returns null if there is
281
+ * no page before the page it is passed.
282
+ *
283
+ * @memberof PageCollectionService
284
+ */
285
+ getPreviousPage(page) {
286
+ const myPageIndex = this.getPageIndex(page);
287
+ const previousPageIndex = myPageIndex - 1;
288
+ if (previousPageIndex < 0) {
289
+ return null;
290
+ }
291
+ return this.getPageByIndex(previousPageIndex);
292
+ }
293
+ /**
294
+ * Accepts a wizard page object as a parameter and returns a Boolean that says if
295
+ * the page you sent it is complete.
296
+ *
297
+ * @memberof PageCollectionService
298
+ */
299
+ previousPageIsCompleted(page) {
300
+ if (!page) {
301
+ return false;
302
+ }
303
+ const previousPage = this.getPreviousPage(page);
304
+ if (null === previousPage) {
305
+ // page is the first page. no previous page.
306
+ return true;
307
+ }
308
+ return previousPage.completed;
309
+ }
310
+ /**
311
+ * Takes a wizard page object as a parameter and returns the wizard page object of
312
+ * the page immediately after it in the page collection. Returns null if there is
313
+ * no page after the page it is passed.
314
+ *
315
+ * @memberof PageCollectionService
316
+ */
317
+ getNextPage(page) {
318
+ const myPageIndex = this.getPageIndex(page);
319
+ const nextPageIndex = myPageIndex + 1;
320
+ if (nextPageIndex >= this.pagesAsArray.length) {
321
+ return null;
322
+ }
323
+ return this.getPageByIndex(nextPageIndex);
324
+ }
325
+ /**
326
+ * Takes a wizard page object as a parameter and generates a step item id from the
327
+ * page ID. Returns the generated step item ID as a string.
328
+ *
329
+ * @memberof PageCollectionService
330
+ */
331
+ getStepItemIdForPage(page) {
332
+ const pageId = page.id;
333
+ const pageIdParts = pageId.split('-').reverse();
334
+ pageIdParts[1] = 'step';
335
+ return pageIdParts.reverse().join('-');
336
+ }
337
+ /**
338
+ * Generally only used internally to mark that a specific page has been "committed".
339
+ * This involves marking the page complete and firing the ClrWizardPage.onCommit
340
+ * (clrWizardPageOnCommit) output. Takes the wizard page object that you intend to
341
+ * mark completed as a parameter.
342
+ *
343
+ * @memberof PageCollectionService
344
+ */
345
+ commitPage(page) {
346
+ const pageHasOverrides = page.stopNext || page.preventDefault;
347
+ page.completed = true;
348
+ if (!pageHasOverrides) {
349
+ // prevent loop of event emission; alternate flows work off
350
+ // of event emitters this is how they break that cycle.
351
+ page.onCommit.emit(page.id);
352
+ }
353
+ }
354
+ /**
355
+ * Sets all completed states of the pages in the page collection to false and
356
+ * notifies the navigation service to likewise reset the navigation.
357
+ *
358
+ * @memberof PageCollectionService
359
+ */
360
+ reset() {
361
+ this.pagesAsArray.forEach((page) => {
362
+ page.completed = false;
363
+ });
364
+ this._pagesReset.next(true);
365
+ }
366
+ /**
367
+ * Rolls through all the pages in the page collection to make sure there are no
368
+ * incomplete pages sandwiched between completed pages in the workflow. Identifies
369
+ * the first incomplete page index and sets all pages behind it to a completed
370
+ * state of false.
371
+ *
372
+ * @memberof PageCollectionService
373
+ */
374
+ updateCompletedStates() {
375
+ const firstIncompleteIndex = this.findFirstIncompletePageIndex();
376
+ if (firstIncompleteIndex === this.pagesAsArray.length - 1) {
377
+ // all complete no need to do anything
378
+ return;
379
+ }
380
+ this.pagesAsArray.forEach((page, index) => {
381
+ if (index > firstIncompleteIndex) {
382
+ page.completed = false;
383
+ }
384
+ });
385
+ }
386
+ /**
387
+ * Retrieves the index of the first incomplete page in the page collection.
388
+ *
389
+ * @memberof PageCollectionService
390
+ */
391
+ findFirstIncompletePageIndex() {
392
+ let returnIndex = null;
393
+ this.pagesAsArray.forEach((page, index) => {
394
+ if (null === returnIndex && false === page.completed) {
395
+ returnIndex = index;
396
+ }
397
+ });
398
+ // fallthrough, all completed, return last page
399
+ if (null === returnIndex) {
400
+ returnIndex = this.pagesCount - 1;
401
+ }
402
+ return returnIndex;
403
+ }
404
+ findFirstIncompletePage() {
405
+ const myIncompleteIndex = this.findFirstIncompletePageIndex();
406
+ return this.pagesAsArray[myIncompleteIndex];
407
+ }
408
+ /**
409
+ * Consolidates guard logic that prevents a couple of unfortunate edge cases with
410
+ * look ups on the collection of pages.
411
+ *
412
+ * @memberof PageCollectionService
413
+ */
414
+ checkResults(results, requestedPageId) {
415
+ const foundPagesCount = results.length || 0;
416
+ if (foundPagesCount > 1) {
417
+ throw new Error('More than one page has the requested id ' + requestedPageId + '.');
418
+ }
419
+ else if (foundPagesCount < 1) {
420
+ throw new Error('No page can be found with the id ' + requestedPageId + '.');
421
+ }
422
+ else {
423
+ return results[0];
424
+ }
425
+ }
426
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PageCollectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
427
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PageCollectionService }); }
428
+ }
429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PageCollectionService, decorators: [{
430
+ type: Injectable
431
+ }] });
432
+
433
+ /*
434
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
435
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
436
+ * This software is released under MIT license.
437
+ * The full license information can be found in LICENSE in the root directory of this project.
438
+ */
439
+ /**
440
+ * Performs navigation functions for a wizard and manages the current page. Presented as a
441
+ * separate service to encapsulate the behavior of navigating and completing the wizard so
442
+ * that it can be shared across the wizard and its sub-components.
443
+ *
444
+ * The easiest way to access the navigation service is there a reference on your wizard. The
445
+ * Following example would allow you to access your instance of the wizard from your host
446
+ * component and thereby access the navigation service via YourHostComponent.wizard.navService.
447
+ *
448
+ * @example
449
+ * <clr-wizard #wizard ...>
450
+ *
451
+ * @example
452
+ * export class YourHostComponent {
453
+ * @ViewChild("wizard") wizard: Wizard;
454
+ * ...
455
+ * }
456
+ *
457
+ */
458
+ class WizardNavigationService {
459
+ /**
460
+ * Creates an instance of WizardNavigationService. Also sets up subscriptions
461
+ * that listen to the button service to determine when a button has been clicked
462
+ * in the wizard. Is also responsible for taking action when the page collection
463
+ * requests that navigation be reset to its pristine state.
464
+ *
465
+ * @memberof WizardNavigationService
466
+ */
467
+ constructor(pageCollection, buttonService) {
468
+ this.pageCollection = pageCollection;
469
+ this.buttonService = buttonService;
470
+ /**
471
+ * A Boolean flag used by the ClrWizardPage to avoid a race condition when pages are
472
+ * loading and there is no current page defined.
473
+ *
474
+ * @memberof WizardNavigationService
475
+ */
476
+ this.navServiceLoaded = false;
477
+ /**
478
+ * A boolean flag shared across the Wizard subcomponents that follows the value
479
+ * of the Wizard.forceForward (clrWizardForceForwardNavigation) input. When true,
480
+ * navigating backwards in the stepnav menu will reset any skipped pages' completed
481
+ * state to false.
482
+ *
483
+ * This is useful when a wizard executes validation on a page-by-page basis when
484
+ * the next button is clicked.
485
+ *
486
+ * @memberof WizardNavigationService
487
+ */
488
+ this.forceForwardNavigation = false;
489
+ /**
490
+ * A boolean flag shared across the Wizard subcomponents that follows the value
491
+ * of the Wizard.stopCancel (clrWizardPreventDefaultCancel) input. When true, the cancel
492
+ * routine is subverted and must be reinstated in the host component calling Wizard.close()
493
+ * at some point.
494
+ *
495
+ * @memberof WizardNavigationService
496
+ */
497
+ this.wizardHasAltCancel = false;
498
+ /**
499
+ * A boolean flag shared across the Wizard subcomponents that follows the value
500
+ * of the Wizard.stopNext (clrWizardPreventDefaultNext) input. When true, the next and finish
501
+ * routines are subverted and must be reinstated in the host component calling Wizard.next(),
502
+ * Wizard.forceNext(), Wizard.finish(), or Wizard.forceFinish().
503
+ *
504
+ * @memberof WizardNavigationService
505
+ */
506
+ this.wizardHasAltNext = false;
507
+ /**
508
+ * A boolean flag shared across the Wizard subcomponents that follows the value
509
+ * of the Wizard.stopNavigation (clrWizardPreventNavigation) input. When true, all
510
+ * navigational elements in the wizard are disabled.
511
+ *
512
+ * This is intended to freeze the wizard in place. Events are not fired so this is
513
+ * not a way to implement alternate functionality for navigation.
514
+ *
515
+ * @memberof WizardNavigationService
516
+ */
517
+ this.wizardStopNavigation = false;
518
+ /**
519
+ * A boolean flag shared with the stepnav items that prevents user clicks on
520
+ * stepnav items from navigating the wizard.
521
+ *
522
+ * @memberof WizardNavigationService
523
+ */
524
+ this.wizardDisableStepnav = false;
525
+ /**
526
+ *
527
+ * @memberof WizardNavigationService
528
+ */
529
+ this._currentChanged = new Subject();
530
+ /**
531
+ * @memberof WizardNavigationService
532
+ */
533
+ this._movedToNextPage = new Subject();
534
+ /**
535
+ * @memberof WizardNavigationService
536
+ */
537
+ this._wizardFinished = new Subject();
538
+ /**
539
+ * @memberof WizardNavigationService
540
+ */
541
+ this._movedToPreviousPage = new Subject();
542
+ /**
543
+ * @memberof WizardNavigationService
544
+ */
545
+ this._cancelWizard = new Subject();
546
+ this.previousButtonSubscription = buttonService.previousBtnClicked.subscribe(() => {
547
+ const currentPage = this.currentPage;
548
+ if (this.currentPageIsFirst || currentPage.previousStepDisabled) {
549
+ return;
550
+ }
551
+ currentPage.previousButtonClicked.emit(currentPage);
552
+ if (!currentPage.preventDefault) {
553
+ this.previous();
554
+ }
555
+ });
556
+ this.nextButtonSubscription = buttonService.nextBtnClicked.subscribe(() => {
557
+ this.checkAndCommitCurrentPage('next');
558
+ });
559
+ this.dangerButtonSubscription = buttonService.dangerBtnClicked.subscribe(() => {
560
+ this.checkAndCommitCurrentPage('danger');
561
+ });
562
+ this.finishButtonSubscription = buttonService.finishBtnClicked.subscribe(() => {
563
+ this.checkAndCommitCurrentPage('finish');
564
+ });
565
+ this.customButtonSubscription = buttonService.customBtnClicked.subscribe((type) => {
566
+ if (!this.wizardStopNavigation) {
567
+ this.currentPage.customButtonClicked.emit(type);
568
+ }
569
+ });
570
+ this.cancelButtonSubscription = buttonService.cancelBtnClicked.subscribe(() => {
571
+ if (this.wizardStopNavigation) {
572
+ return;
573
+ }
574
+ if (this.currentPage.preventDefault) {
575
+ this.currentPage.pageOnCancel.emit(this.currentPage);
576
+ }
577
+ else {
578
+ this.cancel();
579
+ }
580
+ });
581
+ this.pagesResetSubscription = pageCollection.pagesReset.subscribe(() => {
582
+ this.setFirstPageCurrent();
583
+ });
584
+ }
585
+ /**
586
+ * An Observable that is predominantly used amongst the subcomponents and services
587
+ * of the wizard. It is recommended that users listen to the ClrWizardPage.onLoad
588
+ * (clrWizardPageOnLoad) output instead of this Observable.
589
+ *
590
+ * @memberof WizardNavigationService
591
+ */
592
+ get currentPageChange() {
593
+ return this._currentChanged.asObservable();
594
+ }
595
+ /**
596
+ * @memberof WizardNavigationService
597
+ */
598
+ get currentPageTitle() {
599
+ // when the querylist of pages is empty. this is the first place it fails...
600
+ if (!this.currentPage) {
601
+ return null;
602
+ }
603
+ return this.currentPage.title;
604
+ }
605
+ /**
606
+ * Returns a Boolean that tells you whether or not the current page is the first
607
+ * page in the Wizard.
608
+ *
609
+ * This is helpful for determining whether a page is navigable.
610
+ *
611
+ * @memberof WizardNavigationService
612
+ */
613
+ get currentPageIsFirst() {
614
+ return this.pageCollection.firstPage === this.currentPage;
615
+ }
616
+ /**
617
+ * Returns a Boolean that tells you whether or not the current page is the
618
+ * last page in the Wizard.
619
+ *
620
+ * This is used to determine which buttons should display in the wizard footer.
621
+ *
622
+ * @memberof WizardNavigationService
623
+ */
624
+ get currentPageIsLast() {
625
+ return this.pageCollection.lastPage === this.currentPage;
626
+ }
627
+ /**
628
+ * Returns the ClrWizardPage object of the current page or null.
629
+ *
630
+ * @memberof WizardNavigationService
631
+ */
632
+ get currentPage() {
633
+ if (!this._currentPage) {
634
+ return null;
635
+ }
636
+ return this._currentPage;
637
+ }
638
+ /**
639
+ * Accepts a ClrWizardPage object, since that object to be the current/active
640
+ * page in the wizard, and emits the ClrWizardPage.onLoad (clrWizardPageOnLoad)
641
+ * event for that page.
642
+ *
643
+ * Note that all of this work is bypassed if the ClrWizardPage object is already
644
+ * the current page.
645
+ *
646
+ * @memberof WizardNavigationService
647
+ */
648
+ set currentPage(page) {
649
+ if (this._currentPage !== page && !this.wizardStopNavigation) {
650
+ this._currentPage = page;
651
+ page.onLoad.emit(page.id);
652
+ this._currentChanged.next(page);
653
+ }
654
+ }
655
+ /**
656
+ * An observable used internally to alert the wizard that forward navigation
657
+ * has occurred. It is recommended that you use the Wizard.onMoveNext
658
+ * (clrWizardOnNext) output instead of this one.
659
+ *
660
+ * @memberof WizardNavigationService
661
+ */
662
+ get movedToNextPage() {
663
+ return this._movedToNextPage.asObservable();
664
+ }
665
+ /**
666
+ * An observable used internally to alert the wizard that the nav service
667
+ * has approved completion of the wizard.
668
+ *
669
+ * It is recommended that you use the Wizard.wizardFinished (clrWizardOnFinish)
670
+ * output instead of this one.
671
+ *
672
+ * @memberof WizardNavigationService
673
+ */
674
+ get wizardFinished() {
675
+ return this._wizardFinished.asObservable();
676
+ }
677
+ /**
678
+ * Notifies the wizard when backwards navigation has occurred via the
679
+ * previous button.
680
+ *
681
+ * @memberof WizardNavigationService
682
+ */
683
+ get movedToPreviousPage() {
684
+ return this._movedToPreviousPage.asObservable();
685
+ }
686
+ /**
687
+ * Notifies the wizard that a user is trying to cancel it.
688
+ *
689
+ * @memberof WizardNavigationService
690
+ */
691
+ get notifyWizardCancel() {
692
+ return this._cancelWizard.asObservable();
693
+ }
694
+ /**
695
+ *
696
+ * @memberof WizardNavigationService
697
+ */
698
+ ngOnDestroy() {
699
+ this.previousButtonSubscription.unsubscribe();
700
+ this.nextButtonSubscription.unsubscribe();
701
+ this.dangerButtonSubscription.unsubscribe();
702
+ this.finishButtonSubscription.unsubscribe();
703
+ this.customButtonSubscription.unsubscribe();
704
+ this.cancelButtonSubscription.unsubscribe();
705
+ this.pagesResetSubscription.unsubscribe();
706
+ }
707
+ /**
708
+ * This is a public function that can be used to programmatically advance
709
+ * the user to the next page.
710
+ *
711
+ * When invoked, this method will move the wizard to the next page after
712
+ * successful validation. Note that this method goes through all checks
713
+ * and event emissions as if Wizard.next(false) had been called.
714
+ *
715
+ * In most cases, it makes more sense to use Wizard.next(false).
716
+ *
717
+ * @memberof WizardNavigationService
718
+ */
719
+ next() {
720
+ if (this.currentPageIsLast) {
721
+ this.checkAndCommitCurrentPage('finish');
722
+ }
723
+ else {
724
+ this.checkAndCommitCurrentPage('next');
725
+ }
726
+ }
727
+ /**
728
+ * Bypasses checks and most event emissions to force a page to navigate forward.
729
+ *
730
+ * Comparable to calling Wizard.next() or Wizard.forceNext().
731
+ *
732
+ * @memberof WizardNavigationService
733
+ */
734
+ forceNext() {
735
+ const currentPage = this.currentPage;
736
+ const nextPage = this.pageCollection.getNextPage(currentPage);
737
+ // catch errant null or undefineds that creep in
738
+ if (!nextPage) {
739
+ throw new Error('The wizard has no next page to go to.');
740
+ }
741
+ if (this.wizardStopNavigation) {
742
+ return;
743
+ }
744
+ if (!currentPage.completed) {
745
+ // this is a state that alt next flows can get themselves in...
746
+ this.pageCollection.commitPage(currentPage);
747
+ }
748
+ this.currentPage = nextPage;
749
+ }
750
+ /**
751
+ * Accepts a button/action type as a parameter. Encapsulates all logic for
752
+ * event emissions, state of the current page, and wizard and page level overrides.
753
+ *
754
+ * Avoid calling this function directly unless you really know what you're doing.
755
+ *
756
+ * @memberof WizardNavigationService
757
+ */
758
+ checkAndCommitCurrentPage(buttonType) {
759
+ const currentPage = this.currentPage;
760
+ if (!currentPage.readyToComplete || this.wizardStopNavigation) {
761
+ return;
762
+ }
763
+ const iAmTheLastPage = this.currentPageIsLast;
764
+ const isNext = buttonType === 'next';
765
+ const isDanger = buttonType === 'danger';
766
+ const isDangerNext = isDanger && !iAmTheLastPage;
767
+ const isDangerFinish = isDanger && iAmTheLastPage;
768
+ const isFinish = buttonType === 'finish' || isDangerFinish;
769
+ if (isFinish && !iAmTheLastPage) {
770
+ return;
771
+ }
772
+ currentPage.primaryButtonClicked.emit(buttonType);
773
+ if (isFinish) {
774
+ currentPage.finishButtonClicked.emit(currentPage);
775
+ }
776
+ else if (isDanger) {
777
+ currentPage.dangerButtonClicked.emit();
778
+ }
779
+ else if (isNext) {
780
+ currentPage.nextButtonClicked.emit();
781
+ }
782
+ if (currentPage.stopNext || currentPage.preventDefault) {
783
+ currentPage.onCommit.emit(currentPage.id);
784
+ return;
785
+ }
786
+ // order is very important with these emitters!
787
+ if (isFinish) {
788
+ // mark page as complete
789
+ if (!this.wizardHasAltNext) {
790
+ this.pageCollection.commitPage(currentPage);
791
+ }
792
+ this._wizardFinished.next();
793
+ }
794
+ if (this.wizardHasAltNext) {
795
+ this.pageCollection.commitPage(currentPage);
796
+ if (isNext || isDangerNext) {
797
+ this._movedToNextPage.next(true);
798
+ }
799
+ // jump out here, no matter what type we're looking at
800
+ return;
801
+ }
802
+ if (isNext || isDangerNext) {
803
+ this.forceNext();
804
+ }
805
+ if (!this.wizardHasAltNext && !this.wizardStopNavigation) {
806
+ this._movedToNextPage.next(true);
807
+ }
808
+ }
809
+ /**
810
+ * This is a public function that can be used to programmatically conclude
811
+ * the wizard.
812
+ *
813
+ * When invoked, this method will initiate the work involved with finalizing
814
+ * and finishing the wizard workflow. Note that this method goes through all
815
+ * checks and event emissions as if Wizard.finish(false) had been called.
816
+ *
817
+ * In most cases, it makes more sense to use Wizard.finish(false).
818
+ *
819
+ * @memberof WizardNavigationService
820
+ */
821
+ finish() {
822
+ this.checkAndCommitCurrentPage('finish');
823
+ }
824
+ /**
825
+ * Programmatically moves the wizard to the page before the current page.
826
+ *
827
+ * In most instances, it makes more sense to call Wizard.previous()
828
+ * which does the same thing.
829
+ *
830
+ * @memberof WizardNavigationService
831
+ */
832
+ previous() {
833
+ if (this.currentPageIsFirst || this.wizardStopNavigation) {
834
+ return;
835
+ }
836
+ const previousPage = this.pageCollection.getPreviousPage(this.currentPage);
837
+ if (!previousPage) {
838
+ return;
839
+ }
840
+ this._movedToPreviousPage.next(true);
841
+ if (this.forceForwardNavigation) {
842
+ this.currentPage.completed = false;
843
+ }
844
+ this.currentPage = previousPage;
845
+ }
846
+ /**
847
+ * Allows a hook into the cancel workflow of the wizard from the nav service. Note that
848
+ * this route goes through all checks and event emissions as if a cancel button had
849
+ * been clicked.
850
+ *
851
+ * In most cases, users looking for a hook into the cancel routine are actually looking
852
+ * for a way to close the wizard from their host component because they have prevented
853
+ * the default cancel action.
854
+ *
855
+ * In this instance, it is recommended that you use Wizard.close() to avoid any event
856
+ * emission loop resulting from an event handler calling back into routine that will
857
+ * again evoke the events it handles.
858
+ *
859
+ * @memberof WizardNavigationService
860
+ */
861
+ cancel() {
862
+ this._cancelWizard.next();
863
+ }
864
+ /**
865
+ * Performs all required checks to determine if a user can navigate to a page. Checking at each
866
+ * point if a page is navigable -- completed where the page immediately after the last completed
867
+ * page.
868
+ *
869
+ * Takes two parameters. The first one must be either the ClrWizardPage object or the ID of the
870
+ * ClrWizardPage object that you want to make the current page.
871
+ *
872
+ * The second parameter is optional and is a Boolean flag for "lazy completion". What this means
873
+ * is the Wizard will mark all pages between the current page and the page you want to navigate
874
+ * to as completed. This is useful for informational wizards that do not require user action,
875
+ * allowing an easy means for users to jump ahead.
876
+ *
877
+ * To avoid checks on navigation, use ClrWizardPage.makeCurrent() instead.
878
+ *
879
+ * @memberof WizardNavigationService
880
+ */
881
+ goTo(pageToGoToOrId, lazyComplete = false) {
882
+ const myPages = this.pageCollection;
883
+ const pageToGoTo = typeof pageToGoToOrId === 'string' ? myPages.getPageById(pageToGoToOrId) : pageToGoToOrId;
884
+ const currentPage = this.currentPage;
885
+ // no point in going to the current page. you're there already!
886
+ // also hard block on any navigation when stopNavigation is true
887
+ if (pageToGoTo === currentPage || this.wizardStopNavigation) {
888
+ return;
889
+ }
890
+ const currentPageIndex = myPages.getPageIndex(currentPage);
891
+ const goToPageIndex = myPages.getPageIndex(pageToGoTo);
892
+ const goingForward = goToPageIndex > currentPageIndex;
893
+ const pagesToCheck = myPages.getPageRangeFromPages(this.currentPage, pageToGoTo);
894
+ const okayToMove = lazyComplete || this.canGoTo(pagesToCheck);
895
+ if (!okayToMove) {
896
+ return;
897
+ }
898
+ if (goingForward && lazyComplete) {
899
+ pagesToCheck.forEach((page) => {
900
+ if (page !== pageToGoTo) {
901
+ page.completed = true;
902
+ }
903
+ });
904
+ }
905
+ else if (!goingForward && this.forceForwardNavigation) {
906
+ pagesToCheck.forEach((page) => {
907
+ page.completed = false;
908
+ });
909
+ }
910
+ this.currentPage = pageToGoTo;
911
+ }
912
+ /**
913
+ * Accepts a range of ClrWizardPage objects as a parameter. Performs the work of checking
914
+ * those objects to determine if navigation can be accomplished.
915
+ *
916
+ * @memberof WizardNavigationService
917
+ */
918
+ canGoTo(pagesToCheck) {
919
+ let okayToMove = true;
920
+ const myPages = this.pageCollection;
921
+ // previous page can be important when moving because if it's completed it
922
+ // allows us to move to the page even if it's incomplete...
923
+ let previousPagePasses;
924
+ if (!pagesToCheck || pagesToCheck.length < 1) {
925
+ return false;
926
+ }
927
+ pagesToCheck.forEach((page) => {
928
+ if (!okayToMove) {
929
+ return;
930
+ }
931
+ if (page.completed) {
932
+ // default is true. just jump out instead of complicating it.
933
+ return;
934
+ }
935
+ // so we know our page is not completed...
936
+ const previousPage = myPages.getPageIndex(page) > 0 ? myPages.getPreviousPage(page) : null;
937
+ previousPagePasses = previousPage === null || previousPage.completed === true;
938
+ // we are false if not the current page AND previous page is not completed
939
+ // (but must have a previous page)
940
+ if (!page.current && !previousPagePasses) {
941
+ okayToMove = false;
942
+ }
943
+ // falls through to true as default
944
+ });
945
+ return okayToMove;
946
+ }
947
+ /**
948
+ * Looks through the collection of pages to find the first one that is incomplete
949
+ * and makes that page the current/active page.
950
+ *
951
+ * @memberof WizardNavigationService
952
+ */
953
+ setLastEnabledPageCurrent() {
954
+ const allPages = this.pageCollection.pagesAsArray;
955
+ let lastCompletedPageIndex = null;
956
+ allPages.forEach((page, index) => {
957
+ if (page.completed) {
958
+ lastCompletedPageIndex = index;
959
+ }
960
+ });
961
+ if (lastCompletedPageIndex === null) {
962
+ // always is at least the first item...
963
+ lastCompletedPageIndex = 0;
964
+ }
965
+ else if (lastCompletedPageIndex + 1 < allPages.length) {
966
+ lastCompletedPageIndex = lastCompletedPageIndex + 1;
967
+ }
968
+ this.currentPage = allPages[lastCompletedPageIndex];
969
+ }
970
+ /**
971
+ * Finds the first page in the collection of pages and makes that page the
972
+ * current/active page.
973
+ *
974
+ * @memberof WizardNavigationService
975
+ */
976
+ setFirstPageCurrent() {
977
+ this.currentPage = this.pageCollection.pagesAsArray[0];
978
+ }
979
+ /**
980
+ * Updates the stepnav on the left side of the wizard when pages are dynamically
981
+ * added or removed from the collection of pages.
982
+ *
983
+ * @memberof WizardNavigationService
984
+ */
985
+ updateNavigation() {
986
+ let toSetCurrent;
987
+ this.pageCollection.updateCompletedStates();
988
+ const currentPageRemoved = this.pageCollection.pagesAsArray.indexOf(this.currentPage) < 0;
989
+ if (currentPageRemoved) {
990
+ toSetCurrent = this.pageCollection.findFirstIncompletePage();
991
+ this.currentPage = toSetCurrent;
992
+ }
993
+ }
994
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: WizardNavigationService, deps: [{ token: PageCollectionService }, { token: ButtonHubService }], target: i0.ɵɵFactoryTarget.Injectable }); }
995
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: WizardNavigationService }); }
996
+ }
997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: WizardNavigationService, decorators: [{
998
+ type: Injectable
999
+ }], ctorParameters: () => [{ type: PageCollectionService }, { type: ButtonHubService }] });
1000
+
1001
+ /*
1002
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1003
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1004
+ * This software is released under MIT license.
1005
+ * The full license information can be found in LICENSE in the root directory of this project.
1006
+ */
1007
+ class HeaderActionService {
1008
+ constructor(navService) {
1009
+ this.navService = navService;
1010
+ }
1011
+ get wizardHasHeaderActions() {
1012
+ const wizardHdrActions = this.wizardHeaderActions;
1013
+ if (!wizardHdrActions) {
1014
+ return false;
1015
+ }
1016
+ return wizardHdrActions.toArray().length > 0;
1017
+ }
1018
+ get currentPageHasHeaderActions() {
1019
+ return this.navService.currentPage ? this.navService.currentPage.hasHeaderActions : false;
1020
+ }
1021
+ get showWizardHeaderActions() {
1022
+ return !this.currentPageHasHeaderActions && this.wizardHasHeaderActions;
1023
+ }
1024
+ get displayHeaderActionsWrapper() {
1025
+ return this.currentPageHasHeaderActions || this.wizardHasHeaderActions;
1026
+ }
1027
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: HeaderActionService, deps: [{ token: WizardNavigationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1028
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: HeaderActionService }); }
1029
+ }
1030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: HeaderActionService, decorators: [{
1031
+ type: Injectable
1032
+ }], ctorParameters: () => [{ type: WizardNavigationService }] });
1033
+
1034
+ /*
1035
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1036
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1037
+ * This software is released under MIT license.
1038
+ * The full license information can be found in LICENSE in the root directory of this project.
1039
+ */
1040
+ let wizardHeaderActionIndex = 0;
1041
+ class ClrWizardHeaderAction {
1042
+ constructor() {
1043
+ // title is explanatory text added to the header action
1044
+ this.title = '';
1045
+ // If our host has an ID attribute, we use this instead of our index.
1046
+ this._id = (wizardHeaderActionIndex++).toString();
1047
+ this.disabled = false;
1048
+ this.headerActionClicked = new EventEmitter(false);
1049
+ }
1050
+ get id() {
1051
+ return `clr-wizard-header-action-${this._id}`;
1052
+ }
1053
+ click() {
1054
+ if (this.disabled) {
1055
+ return;
1056
+ }
1057
+ // passing the header action id allows users to have one method that
1058
+ // routes to many different actions based on the type of header action
1059
+ // clicked. this is further aided by users being able to specify ids
1060
+ // for their header actions.
1061
+ this.headerActionClicked.emit(this._id);
1062
+ }
1063
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardHeaderAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1064
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardHeaderAction, isStandalone: false, selector: "clr-wizard-header-action", inputs: { title: "title", _id: ["id", "_id"], disabled: ["clrWizardHeaderActionDisabled", "disabled"] }, outputs: { headerActionClicked: "actionClicked" }, host: { classAttribute: "clr-wizard-header-action-wrapper" }, ngImport: i0, template: `
1065
+ <button
1066
+ type="button"
1067
+ class="btn clr-wizard-header-action btn-link"
1068
+ [id]="id"
1069
+ [class.disabled]="disabled"
1070
+ (click)="click()"
1071
+ [title]="title"
1072
+ >
1073
+ <ng-content></ng-content>
1074
+ </button>
1075
+ `, isInline: true }); }
1076
+ }
1077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardHeaderAction, decorators: [{
1078
+ type: Component,
1079
+ args: [{
1080
+ selector: 'clr-wizard-header-action',
1081
+ template: `
1082
+ <button
1083
+ type="button"
1084
+ class="btn clr-wizard-header-action btn-link"
1085
+ [id]="id"
1086
+ [class.disabled]="disabled"
1087
+ (click)="click()"
1088
+ [title]="title"
1089
+ >
1090
+ <ng-content></ng-content>
1091
+ </button>
1092
+ `,
1093
+ host: { class: 'clr-wizard-header-action-wrapper' },
1094
+ standalone: false,
1095
+ }]
1096
+ }], propDecorators: { title: [{
1097
+ type: Input,
1098
+ args: ['title']
1099
+ }], _id: [{
1100
+ type: Input,
1101
+ args: ['id']
1102
+ }], disabled: [{
1103
+ type: Input,
1104
+ args: ['clrWizardHeaderActionDisabled']
1105
+ }], headerActionClicked: [{
1106
+ type: Output,
1107
+ args: ['actionClicked']
1108
+ }] } });
1109
+
1110
+ /*
1111
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1112
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1113
+ * This software is released under MIT license.
1114
+ * The full license information can be found in LICENSE in the root directory of this project.
1115
+ */
1116
+ class ClrWizardPageButtons {
1117
+ constructor(pageButtonsTemplateRef) {
1118
+ this.pageButtonsTemplateRef = pageButtonsTemplateRef;
1119
+ }
1120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageButtons, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1121
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardPageButtons, isStandalone: false, selector: "[clrPageButtons]", ngImport: i0 }); }
1122
+ }
1123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageButtons, decorators: [{
1124
+ type: Directive,
1125
+ args: [{
1126
+ selector: '[clrPageButtons]',
1127
+ standalone: false,
1128
+ }]
1129
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
1130
+
1131
+ /*
1132
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1133
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1134
+ * This software is released under MIT license.
1135
+ * The full license information can be found in LICENSE in the root directory of this project.
1136
+ */
1137
+ class ClrWizardPageHeaderActions {
1138
+ constructor(pageHeaderActionsTemplateRef) {
1139
+ this.pageHeaderActionsTemplateRef = pageHeaderActionsTemplateRef;
1140
+ }
1141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageHeaderActions, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1142
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardPageHeaderActions, isStandalone: false, selector: "[clrPageHeaderActions]", ngImport: i0 }); }
1143
+ }
1144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageHeaderActions, decorators: [{
1145
+ type: Directive,
1146
+ args: [{
1147
+ selector: '[clrPageHeaderActions]',
1148
+ standalone: false,
1149
+ }]
1150
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
1151
+
1152
+ /*
1153
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1154
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1155
+ * This software is released under MIT license.
1156
+ * The full license information can be found in LICENSE in the root directory of this project.
1157
+ */
1158
+ class ClrWizardPageNavTitle {
1159
+ constructor(pageNavTitleTemplateRef) {
1160
+ this.pageNavTitleTemplateRef = pageNavTitleTemplateRef;
1161
+ }
1162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageNavTitle, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1163
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardPageNavTitle, isStandalone: false, selector: "[clrPageNavTitle]", ngImport: i0 }); }
1164
+ }
1165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageNavTitle, decorators: [{
1166
+ type: Directive,
1167
+ args: [{
1168
+ selector: '[clrPageNavTitle]',
1169
+ standalone: false,
1170
+ }]
1171
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
1172
+
1173
+ /*
1174
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1175
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1176
+ * This software is released under MIT license.
1177
+ * The full license information can be found in LICENSE in the root directory of this project.
1178
+ */
1179
+ class ClrWizardPageTitle {
1180
+ constructor(pageTitleTemplateRef) {
1181
+ this.pageTitleTemplateRef = pageTitleTemplateRef;
1182
+ }
1183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageTitle, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1184
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardPageTitle, isStandalone: false, selector: "[clrPageTitle]", inputs: { headingLevel: ["clrHeadingLevel", "headingLevel"] }, ngImport: i0 }); }
1185
+ }
1186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPageTitle, decorators: [{
1187
+ type: Directive,
1188
+ args: [{
1189
+ selector: '[clrPageTitle]',
1190
+ standalone: false,
1191
+ }]
1192
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { headingLevel: [{
1193
+ type: Input,
1194
+ args: ['clrHeadingLevel']
1195
+ }] } });
1196
+
1197
+ /*
1198
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1199
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1200
+ * This software is released under MIT license.
1201
+ * The full license information can be found in LICENSE in the root directory of this project.
1202
+ */
1203
+ let wizardPageIndex = 0;
1204
+ /**
1205
+ * The ClrWizardPage component is responsible for displaying the content of each step
1206
+ * in the wizard workflow.
1207
+ *
1208
+ * ClrWizardPage component has hooks into the navigation service (ClrWizardPage.navService),
1209
+ * page collection (ClrWizardPage.pageCollection), and button service
1210
+ * (ClrWizardPage.buttonService). These three providers are shared across the components
1211
+ * within each instance of a Wizard.
1212
+ *
1213
+ */
1214
+ class ClrWizardPage {
1215
+ /**
1216
+ * Creates an instance of ClrWizardPage.
1217
+ *
1218
+ * @memberof WizardPage
1219
+ */
1220
+ constructor(navService, pageCollection, buttonService) {
1221
+ this.navService = navService;
1222
+ this.pageCollection = pageCollection;
1223
+ this.buttonService = buttonService;
1224
+ /**
1225
+ * An input value that is used internally to generate the ClrWizardPage ID as
1226
+ * well as the step nav item ID.
1227
+ *
1228
+ * Typed as any because it should be able to accept numbers as well as
1229
+ * strings. Passing an index for wizard whose pages are created with an
1230
+ * ngFor loop is a common use case.
1231
+ *
1232
+ * @memberof WizardPage
1233
+ *
1234
+ */
1235
+ this._id = (wizardPageIndex++).toString();
1236
+ /**
1237
+ * Overrides all actions from the page level, so you can use an alternate function for
1238
+ * validation or data-munging with a ClrWizardPage.onCommit (clrWizardPageOnCommit output),
1239
+ * ClrWizardPage.onCancel (clrWizardPageOnCancel output), or one
1240
+ * of the granular page-level button click event emitters.
1241
+ *
1242
+ * @memberof WizardPage
1243
+ *
1244
+ */
1245
+ this.preventDefault = false;
1246
+ /**
1247
+ * Emits when the value of ClrWizardPage.nextStepDisabled changes.
1248
+ * Should emit the new value of nextStepDisabled.
1249
+ *
1250
+ * @memberof WizardPage
1251
+ *
1252
+ */
1253
+ this.nextStepDisabledChange = new EventEmitter();
1254
+ /**
1255
+ * Emits when the value of ClrWizardPage.previousStepDisabled changes.
1256
+ * Should emit the new value of previousStepDisabled.
1257
+ *
1258
+ * @memberof WizardPage
1259
+ *
1260
+ */
1261
+ this.previousStepDisabledChange = new EventEmitter();
1262
+ /**
1263
+ *
1264
+ * @memberof WizardPage
1265
+ *
1266
+ */
1267
+ this.stopCancelChange = new EventEmitter();
1268
+ /**
1269
+ * An event emitter carried over from a legacy version of ClrWizardPage.
1270
+ * Fires an event on ClrWizardPage whenever the next or finish buttons
1271
+ * are clicked and the page is the current page of the Wizard.
1272
+ *
1273
+ * Note that this does not automatically emit an event when a custom
1274
+ * button is used in place of a next or finish button.
1275
+ *
1276
+ * @memberof WizardPage
1277
+ *
1278
+ */
1279
+ this.onCommit = new EventEmitter(false);
1280
+ /**
1281
+ * Emits an event when ClrWizardPage becomes the current page of the
1282
+ * Wizard.
1283
+ *
1284
+ * @memberof WizardPage
1285
+ *
1286
+ */
1287
+ this.onLoad = new EventEmitter();
1288
+ /**
1289
+ * Emits an event when the ClrWizardPage invokes the cancel routine for the wizard.
1290
+ *
1291
+ * Can be used in conjunction with the ClrWizardPage.stopCancel
1292
+ * (clrWizardPagePreventDefaultCancel) or ClrWizardPage.preventDefault
1293
+ * (clrWizardPagePagePreventDefault) inputs to implement custom cancel
1294
+ * functionality at the page level. This is useful if you would like to do
1295
+ * validation, save data, or warn users before cancelling the wizard.
1296
+ *
1297
+ * Note that this requires you to call Wizard.close() from the host component.
1298
+ * This constitues a full replacement of the cancel functionality.
1299
+ *
1300
+ * @memberof WizardPage
1301
+ *
1302
+ */
1303
+ this.pageOnCancel = new EventEmitter();
1304
+ /**
1305
+ * Emits an event when the finish button is clicked and the ClrWizardPage is
1306
+ * the wizard's current page.
1307
+ *
1308
+ * Can be used in conjunction with the ClrWizardPage.preventDefault
1309
+ * (clrWizardPagePagePreventDefault) input to implement custom finish
1310
+ * functionality at the page level. This is useful if you would like to do
1311
+ * validation, save data, or warn users before allowing them to complete
1312
+ * the wizard.
1313
+ *
1314
+ * Note that this requires you to call Wizard.finish() or Wizard.forceFinish()
1315
+ * from the host component. This combination creates a full replacement of
1316
+ * the finish functionality.
1317
+ *
1318
+ * @memberof WizardPage
1319
+ *
1320
+ */
1321
+ this.finishButtonClicked = new EventEmitter();
1322
+ /**
1323
+ * Emits an event when the previous button is clicked and the ClrWizardPage is
1324
+ * the wizard's current page.
1325
+ *
1326
+ * Can be used in conjunction with the ClrWizardPage.preventDefault
1327
+ * (clrWizardPagePagePreventDefault) input to implement custom backwards
1328
+ * navigation at the page level. This is useful if you would like to do
1329
+ * validation, save data, or warn users before allowing them to go
1330
+ * backwards in the wizard.
1331
+ *
1332
+ * Note that this requires you to call Wizard.previous()
1333
+ * from the host component. This combination creates a full replacement of
1334
+ * the backwards navigation functionality.
1335
+ *
1336
+ * @memberof WizardPage
1337
+ *
1338
+ */
1339
+ this.previousButtonClicked = new EventEmitter();
1340
+ /**
1341
+ * Emits an event when the next button is clicked and the ClrWizardPage is
1342
+ * the wizard's current page.
1343
+ *
1344
+ * Can be used in conjunction with the ClrWizardPage.preventDefault
1345
+ * (clrWizardPagePagePreventDefault) input to implement custom forwards
1346
+ * navigation at the page level. This is useful if you would like to do
1347
+ * validation, save data, or warn users before allowing them to go
1348
+ * to the next page in the wizard.
1349
+ *
1350
+ * Note that this requires you to call Wizard.forceNext() or Wizard.next()
1351
+ * from the host component. This combination creates a full replacement of
1352
+ * the forward navigation functionality.
1353
+ *
1354
+ * @memberof WizardPage
1355
+ *
1356
+ */
1357
+ this.nextButtonClicked = new EventEmitter();
1358
+ /**
1359
+ * Emits an event when a danger button is clicked and the ClrWizardPage is
1360
+ * the wizard's current page. By default, a danger button will act as
1361
+ * either a "next" or "finish" button depending on if the ClrWizardPage is the
1362
+ * last page or not.
1363
+ *
1364
+ * Can be used in conjunction with the ClrWizardPage.preventDefault
1365
+ * (clrWizardPagePagePreventDefault) input to implement custom forwards
1366
+ * or finish navigation at the page level when the danger button is clicked.
1367
+ * This is useful if you would like to do validation, save data, or warn
1368
+ * users before allowing them to go to the next page in the wizard or
1369
+ * finish the wizard.
1370
+ *
1371
+ * Note that this requires you to call Wizard.finish(), Wizard.forceFinish(),
1372
+ * Wizard.forceNext() or Wizard.next() from the host component. This
1373
+ * combination creates a full replacement of the forward navigation and
1374
+ * finish functionality.
1375
+ *
1376
+ * @memberof WizardPage
1377
+ *
1378
+ */
1379
+ this.dangerButtonClicked = new EventEmitter();
1380
+ /**
1381
+ * Emits an event when a next, finish, or danger button is clicked and the
1382
+ * ClrWizardPage is the wizard's current page.
1383
+ *
1384
+ * Can be used in conjunction with the ClrWizardPage.preventDefault
1385
+ * (clrWizardPagePagePreventDefault) input to implement custom forwards
1386
+ * or finish navigation at the page level, regardless of the type of
1387
+ * primary button.
1388
+ *
1389
+ * This is useful if you would like to do validation, save data, or warn
1390
+ * users before allowing them to go to the next page in the wizard or
1391
+ * finish the wizard.
1392
+ *
1393
+ * Note that this requires you to call Wizard.finish(), Wizard.forceFinish(),
1394
+ * Wizard.forceNext() or Wizard.next() from the host component. This
1395
+ * combination creates a full replacement of the forward navigation and
1396
+ * finish functionality.
1397
+ *
1398
+ * @memberof WizardPage
1399
+ *
1400
+ */
1401
+ this.primaryButtonClicked = new EventEmitter();
1402
+ this.customButtonClicked = new EventEmitter();
1403
+ /**
1404
+ *
1405
+ * @memberof WizardPage
1406
+ *
1407
+ */
1408
+ this._nextStepDisabled = false;
1409
+ /**
1410
+ *
1411
+ * @memberof WizardPage
1412
+ *
1413
+ */
1414
+ this._previousStepDisabled = false;
1415
+ /**
1416
+ *
1417
+ * @memberof WizardPage
1418
+ *
1419
+ */
1420
+ this._hasError = false;
1421
+ /**
1422
+ *
1423
+ * @memberof WizardPage
1424
+ *
1425
+ */
1426
+ this._stopCancel = false;
1427
+ /**
1428
+ *
1429
+ * @memberof WizardPage
1430
+ *
1431
+ */
1432
+ this._stopNext = false;
1433
+ /**
1434
+ *
1435
+ * @memberof WizardPage
1436
+ *
1437
+ */
1438
+ this._complete = false;
1439
+ }
1440
+ /**
1441
+ * A property that tells whether or not the wizard should be allowed
1442
+ * to move to the next page.
1443
+ *
1444
+ * Useful for in-page validation because it prevents forward navigation
1445
+ * and visibly disables the next button.
1446
+ *
1447
+ * Does not require that you re-implement navigation routines like you
1448
+ * would if you were using ClrWizardPage.preventDefault or
1449
+ * Wizard.preventDefault.
1450
+ *
1451
+ * @memberof WizardPage
1452
+ *
1453
+ */
1454
+ get nextStepDisabled() {
1455
+ return this._nextStepDisabled;
1456
+ }
1457
+ set nextStepDisabled(val) {
1458
+ const valBool = !!val;
1459
+ if (valBool !== this._nextStepDisabled) {
1460
+ this._nextStepDisabled = valBool;
1461
+ this.nextStepDisabledChange.emit(valBool);
1462
+ }
1463
+ }
1464
+ /**
1465
+ * A property that tells whether or not the wizard should be allowed
1466
+ * to move to the previous page.
1467
+ *
1468
+ * Useful for in-page validation because it prevents backward navigation
1469
+ * and visibly disables the previous button.
1470
+ *
1471
+ * Does not require that you re-implement navigation routines like you
1472
+ * would if you were using ClrWizardPage.preventDefault or
1473
+ * Wizard.preventDefault.
1474
+ *
1475
+ * @memberof WizardPage
1476
+ *
1477
+ */
1478
+ get previousStepDisabled() {
1479
+ return this._previousStepDisabled;
1480
+ }
1481
+ set previousStepDisabled(val) {
1482
+ const valBool = !!val;
1483
+ if (valBool !== this._previousStepDisabled) {
1484
+ this._previousStepDisabled = valBool;
1485
+ this.previousStepDisabledChange.emit(valBool);
1486
+ }
1487
+ }
1488
+ /**
1489
+ * Whether the page has an error and also resolve the "falsy" value. The
1490
+ * current logic treat a "0" or an empty string as false and likewise will treat any
1491
+ * "truthy" value as true.
1492
+ *
1493
+ * @memberof WizardPage
1494
+ *
1495
+ */
1496
+ get hasError() {
1497
+ return this._hasError;
1498
+ }
1499
+ set hasError(val) {
1500
+ const valBool = !!val;
1501
+ if (valBool !== this._hasError) {
1502
+ this._hasError = valBool;
1503
+ }
1504
+ }
1505
+ /**
1506
+ * Overrides the cancel action from the page level. Allows you to use an
1507
+ * alternate function for validation or data-munging before cancelling the
1508
+ * wizard when combined with the ClrWizardPage.onCancel
1509
+ * (the clrWizardPageOnCancel output).
1510
+ *
1511
+ * Requires that you manually close the wizard from your host component,
1512
+ * usually with a call to Wizard.forceNext() or wizard.next();
1513
+ *
1514
+ * @memberof ClrWizardPage
1515
+ */
1516
+ get stopCancel() {
1517
+ return this._stopCancel;
1518
+ }
1519
+ set stopCancel(val) {
1520
+ const valBool = !!val;
1521
+ if (valBool !== this._stopCancel) {
1522
+ this._stopCancel = valBool;
1523
+ this.stopCancelChange.emit(valBool);
1524
+ }
1525
+ }
1526
+ /**
1527
+ * Overrides forward navigation from the page level. Allows you to use an
1528
+ * alternate function for validation or data-munging before moving the
1529
+ * wizard to the next pagewhen combined with the ClrWizardPage.onCommit
1530
+ * (clrWizardPageOnCommit) or ClrWizardPage.nextButtonClicked
1531
+ * (clrWizardPageNext) outputs.
1532
+ *
1533
+ * Requires that you manually tell the wizard to navigate forward from
1534
+ * the hostComponent, usually with a call to Wizard.forceNext() or
1535
+ * wizard.next();
1536
+ *
1537
+ * @memberof ClrWizardPage
1538
+ */
1539
+ get stopNext() {
1540
+ return this._stopNext;
1541
+ }
1542
+ set stopNext(val) {
1543
+ const valBool = !!val;
1544
+ if (valBool !== this._stopNext) {
1545
+ this._stopNext = valBool;
1546
+ }
1547
+ }
1548
+ /**
1549
+ * A read-only getter that generates an ID string for the wizard page from
1550
+ * either the value passed to the ClrWizardPage "id" input or a wizard page
1551
+ * counter shared across all wizard pages in the application.
1552
+ *
1553
+ * Note that the value passed into the ID input Will be prefixed with
1554
+ * "clr-wizard-page-".
1555
+ *
1556
+ * @readonly
1557
+ *
1558
+ * @memberof ClrWizardPage
1559
+ */
1560
+ get id() {
1561
+ // covers things like null, undefined, false, and empty string
1562
+ // while allowing zero to pass
1563
+ const idIsNonZeroFalsy = !this._id && this._id !== 0;
1564
+ // in addition to non-zero falsy we also want to make sure _id is not a negative
1565
+ // number.
1566
+ if (idIsNonZeroFalsy || this._id < 0) {
1567
+ // guard here in the event that input becomes undefined or null by accident
1568
+ this._id = (wizardPageIndex++).toString();
1569
+ }
1570
+ return `clr-wizard-page-${this._id}`;
1571
+ }
1572
+ /**
1573
+ * A read-only getter that serves as a convenience for those who would rather
1574
+ * not think in the terms of !ClrWizardPage.nextStepDisabled. For some use cases,
1575
+ * ClrWizardPage.readyToComplete is more logical and declarative.
1576
+ *
1577
+ * @memberof WizardPage
1578
+ *
1579
+ */
1580
+ get readyToComplete() {
1581
+ return !this.nextStepDisabled;
1582
+ }
1583
+ /**
1584
+ * A page is marked as completed if it is both readyToComplete and completed,
1585
+ * as in the next or finish action has been executed while this page was current.
1586
+ *
1587
+ * Note there is and open question about how to handle pages that are marked
1588
+ * complete but who are no longer readyToComplete. This might indicate an error
1589
+ * state for the ClrWizardPage. Currently, the wizard does not acknowledge this state
1590
+ * and only returns that the page is incomplete.
1591
+ *
1592
+ * @memberof WizardPage
1593
+ *
1594
+ */
1595
+ get completed() {
1596
+ return this._complete && this.readyToComplete;
1597
+ // FOR V2: UNWIND COMPLETED, READYTOCOMPLETE, AND ERRORS
1598
+ // SUCH THAT ERRORS IS ITS OWN INPUT. IF A STEP IS
1599
+ // INCOMPLETE AND ERRORED, ERRORED WILL NOT SHOW.
1600
+ // FIRST QUESTION: AM I GREY OR COLORED?
1601
+ // SECOND QUESTION: AM I GREEN OR RED?
1602
+ }
1603
+ /**
1604
+ * A ClrWizardPage can be manually set to completed using this boolean setter.
1605
+ * It is recommended that users rely on the convenience functions in the wizard
1606
+ * and navigation service instead of manually setting pages’ completion state.
1607
+ *
1608
+ * @memberof ClrWizardPage
1609
+ */
1610
+ set completed(value) {
1611
+ this._complete = value;
1612
+ }
1613
+ /**
1614
+ * Checks with the navigation service to see if it is the current page.
1615
+ *
1616
+ * @memberof WizardPage
1617
+ *
1618
+ */
1619
+ get current() {
1620
+ return this.navService.currentPage === this;
1621
+ }
1622
+ get disabled() {
1623
+ return !this.enabled;
1624
+ }
1625
+ /**
1626
+ * A read-only getter that returns whether or not the page is navigable
1627
+ * in the wizard. A wizard page can be navigated to if it is completed
1628
+ * or the page before it is completed.
1629
+ *
1630
+ * This getter handles the logic for enabling or disabling the links in
1631
+ * the step nav on the left Side of the wizard.
1632
+ *
1633
+ * @memberof WizardPage
1634
+ *
1635
+ */
1636
+ get enabled() {
1637
+ return this.current || this.completed || this.previousCompleted;
1638
+ }
1639
+ /**
1640
+ * A read-only getter that returns whether or not the page before this
1641
+ * ClrWizardPage is completed. This is useful for determining whether or not
1642
+ * a page is navigable if it is not current or already completed.
1643
+ *
1644
+ * @memberof WizardPage
1645
+ *
1646
+ */
1647
+ get previousCompleted() {
1648
+ const previousPage = this.pageCollection.getPreviousPage(this);
1649
+ if (!previousPage) {
1650
+ return true;
1651
+ }
1652
+ return previousPage.completed;
1653
+ }
1654
+ /**
1655
+ *
1656
+ * @memberof WizardPage
1657
+ *
1658
+ */
1659
+ get title() {
1660
+ return this.pageTitle.pageTitleTemplateRef;
1661
+ }
1662
+ /**
1663
+ *
1664
+ * @memberof WizardPage
1665
+ *
1666
+ */
1667
+ get navTitle() {
1668
+ if (this.pageNavTitle) {
1669
+ return this.pageNavTitle.pageNavTitleTemplateRef;
1670
+ }
1671
+ return this.pageTitle.pageTitleTemplateRef;
1672
+ }
1673
+ /**
1674
+ *
1675
+ * @memberof WizardPage
1676
+ *
1677
+ */
1678
+ get headerActions() {
1679
+ if (!this._headerActions) {
1680
+ return undefined;
1681
+ }
1682
+ return this._headerActions.pageHeaderActionsTemplateRef;
1683
+ }
1684
+ /**
1685
+ *
1686
+ * @memberof WizardPage
1687
+ *
1688
+ */
1689
+ get hasHeaderActions() {
1690
+ return !!this._headerActions;
1691
+ }
1692
+ /**
1693
+ *
1694
+ * @memberof WizardPage
1695
+ *
1696
+ */
1697
+ get buttons() {
1698
+ if (!this._buttons) {
1699
+ return undefined;
1700
+ }
1701
+ return this._buttons.pageButtonsTemplateRef;
1702
+ }
1703
+ /**
1704
+ * A read-only getter that returns a boolean that says whether or
1705
+ * not the ClrWizardPage includes buttons. Used to determine if the
1706
+ * Wizard should override the default button set defined as
1707
+ * its direct children.
1708
+ *
1709
+ * @memberof WizardPage
1710
+ *
1711
+ */
1712
+ get hasButtons() {
1713
+ return !!this._buttons;
1714
+ }
1715
+ /**
1716
+ * A read-only getter that returns the id used by the step nav item associated with the page.
1717
+ *
1718
+ * ClrWizardPage needs this ID string for aria information.
1719
+ *
1720
+ * @memberof WizardPage
1721
+ *
1722
+ */
1723
+ get stepItemId() {
1724
+ return this.pageCollection.getStepItemIdForPage(this);
1725
+ }
1726
+ /**
1727
+ * Links the nav service and establishes the current page if one is not defined.
1728
+ *
1729
+ * @memberof WizardPage
1730
+ *
1731
+ */
1732
+ ngOnInit() {
1733
+ const navService = this.navService;
1734
+ if (!navService.currentPage && !navService.navServiceLoaded) {
1735
+ this.makeCurrent();
1736
+ this.navService.navServiceLoaded = true;
1737
+ }
1738
+ }
1739
+ /**
1740
+ * Uses the nav service to make the ClrWizardPage the current page in the
1741
+ * wizard. Bypasses all checks but still emits the ClrWizardPage.onLoad
1742
+ * (clrWizardPageOnLoad) output.
1743
+ *
1744
+ * In most cases, it is better to use the default navigation functions
1745
+ * in Wizard.
1746
+ *
1747
+ * @memberof WizardPage
1748
+ *
1749
+ */
1750
+ makeCurrent() {
1751
+ this.navService.currentPage = this;
1752
+ }
1753
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPage, deps: [{ token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }], target: i0.ɵɵFactoryTarget.Component }); }
1754
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardPage, isStandalone: false, 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 }); }
1755
+ }
1756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardPage, decorators: [{
1757
+ type: Component,
1758
+ args: [{
1759
+ selector: 'clr-wizard-page',
1760
+ template: '<ng-content></ng-content>',
1761
+ host: {
1762
+ '[id]': 'id',
1763
+ '[attr.aria-hidden]': '!current',
1764
+ '[attr.aria-labelledby]': 'stepItemId',
1765
+ '[class.active]': 'current',
1766
+ '[class.clr-wizard-page]': 'true',
1767
+ },
1768
+ standalone: false,
1769
+ }]
1770
+ }], ctorParameters: () => [{ type: WizardNavigationService }, { type: PageCollectionService }, { type: ButtonHubService }], propDecorators: { _id: [{
1771
+ type: Input,
1772
+ args: ['id']
1773
+ }], preventDefault: [{
1774
+ type: Input,
1775
+ args: ['clrWizardPagePreventDefault']
1776
+ }], nextStepDisabledChange: [{
1777
+ type: Output,
1778
+ args: ['clrWizardPageNextDisabledChange']
1779
+ }], previousStepDisabledChange: [{
1780
+ type: Output,
1781
+ args: ['clrWizardPagePreviousDisabledChange']
1782
+ }], stopCancelChange: [{
1783
+ type: Output,
1784
+ args: ['clrWizardPagePreventDefaultCancelChange']
1785
+ }], onCommit: [{
1786
+ type: Output,
1787
+ args: ['clrWizardPageOnCommit']
1788
+ }], onLoad: [{
1789
+ type: Output,
1790
+ args: ['clrWizardPageOnLoad']
1791
+ }], pageOnCancel: [{
1792
+ type: Output,
1793
+ args: ['clrWizardPageOnCancel']
1794
+ }], finishButtonClicked: [{
1795
+ type: Output,
1796
+ args: ['clrWizardPageFinish']
1797
+ }], previousButtonClicked: [{
1798
+ type: Output,
1799
+ args: ['clrWizardPagePrevious']
1800
+ }], nextButtonClicked: [{
1801
+ type: Output,
1802
+ args: ['clrWizardPageNext']
1803
+ }], dangerButtonClicked: [{
1804
+ type: Output,
1805
+ args: ['clrWizardPageDanger']
1806
+ }], primaryButtonClicked: [{
1807
+ type: Output,
1808
+ args: ['clrWizardPagePrimary']
1809
+ }], customButtonClicked: [{
1810
+ type: Output,
1811
+ args: ['clrWizardPageCustomButton']
1812
+ }], pageTitle: [{
1813
+ type: ContentChild,
1814
+ args: [ClrWizardPageTitle, { static: true }]
1815
+ }], pageNavTitle: [{
1816
+ type: ContentChild,
1817
+ args: [ClrWizardPageNavTitle, { static: true }]
1818
+ }], _buttons: [{
1819
+ type: ContentChild,
1820
+ args: [ClrWizardPageButtons, { static: true }]
1821
+ }], _headerActions: [{
1822
+ type: ContentChild,
1823
+ args: [ClrWizardPageHeaderActions, { static: true }]
1824
+ }], nextStepDisabled: [{
1825
+ type: Input,
1826
+ args: ['clrWizardPageNextDisabled']
1827
+ }], previousStepDisabled: [{
1828
+ type: Input,
1829
+ args: ['clrWizardPagePreviousDisabled']
1830
+ }], hasError: [{
1831
+ type: Input,
1832
+ args: ['clrWizardPageHasError']
1833
+ }], stopCancel: [{
1834
+ type: Input,
1835
+ args: ['clrWizardPagePreventDefaultCancel']
1836
+ }], stopNext: [{
1837
+ type: Input,
1838
+ args: ['clrWizardPagePreventDefaultNext']
1839
+ }] } });
1840
+
1841
+ /*
1842
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1843
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1844
+ * This software is released under MIT license.
1845
+ * The full license information can be found in LICENSE in the root directory of this project.
1846
+ */
1847
+ class ClrWizardTitle {
1848
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1849
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardTitle, isStandalone: false, selector: "clr-wizard-title", inputs: { headingLevel: ["clrHeadingLevel", "headingLevel"] }, ngImport: i0 }); }
1850
+ }
1851
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardTitle, decorators: [{
1852
+ type: Directive,
1853
+ args: [{
1854
+ selector: 'clr-wizard-title',
1855
+ standalone: false,
1856
+ }]
1857
+ }], propDecorators: { headingLevel: [{
1858
+ type: Input,
1859
+ args: ['clrHeadingLevel']
1860
+ }] } });
1861
+
1862
+ /*
1863
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1864
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1865
+ * This software is released under MIT license.
1866
+ * The full license information can be found in LICENSE in the root directory of this project.
1867
+ */
1868
+ class ClrWizardStepnavItem {
1869
+ constructor(navService, pageCollection, commonStrings, elementRef) {
1870
+ this.navService = navService;
1871
+ this.pageCollection = pageCollection;
1872
+ this.commonStrings = commonStrings;
1873
+ this.elementRef = elementRef;
1874
+ /**
1875
+ * This is used to prevent the steps from scrolling as the user clicks on the steps.
1876
+ */
1877
+ this.skipNextScroll = false;
1878
+ }
1879
+ get id() {
1880
+ this.pageGuard();
1881
+ return this.pageCollection.getStepItemIdForPage(this.page);
1882
+ }
1883
+ get stepAriaCurrent() {
1884
+ return this.isCurrent && 'step';
1885
+ }
1886
+ get isDisabled() {
1887
+ this.pageGuard();
1888
+ return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
1889
+ }
1890
+ get isCurrent() {
1891
+ this.pageGuard();
1892
+ return this.page.current;
1893
+ }
1894
+ get isComplete() {
1895
+ this.pageGuard();
1896
+ return this.page.completed;
1897
+ }
1898
+ get hasError() {
1899
+ this.pageGuard();
1900
+ return this.page.hasError && this.isComplete;
1901
+ }
1902
+ get canNavigate() {
1903
+ this.pageGuard();
1904
+ return this.pageCollection.previousPageIsCompleted(this.page);
1905
+ }
1906
+ get stepIconId() {
1907
+ return `${this.id}-step-icon`;
1908
+ }
1909
+ get stepTextId() {
1910
+ return `${this.id}-step-text`;
1911
+ }
1912
+ get stepNumberId() {
1913
+ return `${this.id}-step-number`;
1914
+ }
1915
+ get stepTitleId() {
1916
+ return `${this.id}-step-title`;
1917
+ }
1918
+ get labelledby() {
1919
+ const textIds = [this.stepTextId, this.stepNumberId, this.stepTitleId];
1920
+ const allIds = this.isComplete ? [this.stepIconId, ...textIds] : textIds;
1921
+ return allIds.join(' ');
1922
+ }
1923
+ get icon() {
1924
+ if (this.isCurrent) {
1925
+ return {
1926
+ shape: 'dot-circle',
1927
+ label: this.commonStrings.keys.wizardStepCurrent || this.commonStrings.keys.timelineStepCurrent,
1928
+ };
1929
+ }
1930
+ else if (this.hasError) {
1931
+ return {
1932
+ shape: 'error-standard',
1933
+ label: this.commonStrings.keys.wizardStepError || this.commonStrings.keys.timelineStepError,
1934
+ };
1935
+ }
1936
+ else if (this.isComplete) {
1937
+ return {
1938
+ shape: 'success-standard',
1939
+ label: this.commonStrings.keys.wizardStepSuccess || this.commonStrings.keys.timelineStepSuccess,
1940
+ };
1941
+ }
1942
+ else {
1943
+ return null;
1944
+ }
1945
+ }
1946
+ ngOnInit() {
1947
+ this.subscription = this.ensureCurrentStepIsScrolledIntoView().subscribe();
1948
+ }
1949
+ ngOnDestroy() {
1950
+ this.subscription?.unsubscribe();
1951
+ }
1952
+ click() {
1953
+ this.pageGuard();
1954
+ // if we click on our own stepnav or a disabled stepnav, we don't want to do anything
1955
+ if (this.isDisabled || this.isCurrent) {
1956
+ return;
1957
+ }
1958
+ this.skipNextScroll = true;
1959
+ this.navService.goTo(this.page);
1960
+ }
1961
+ pageGuard() {
1962
+ if (!this.page) {
1963
+ throw new Error('Wizard stepnav item is not associated with a wizard page.');
1964
+ }
1965
+ }
1966
+ ensureCurrentStepIsScrolledIntoView() {
1967
+ // Don't use "smooth" scrolling when the wizard is first opened to avoid a delay in scrolling the current step into view.
1968
+ // The current step when the wizard is opened might not be the first step. For example, the wizard can be closed and re-opened.
1969
+ let scrollBehavior = 'auto';
1970
+ return this.navService.currentPageChange.pipe(startWith(this.navService.currentPage), tap(currentPage => {
1971
+ if (!this.skipNextScroll && currentPage === this.page) {
1972
+ this.elementRef.nativeElement.scrollIntoView({ behavior: scrollBehavior, block: 'center', inline: 'center' });
1973
+ }
1974
+ scrollBehavior = 'smooth';
1975
+ this.skipNextScroll = false;
1976
+ }));
1977
+ }
1978
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardStepnavItem, deps: [{ token: WizardNavigationService }, { token: PageCollectionService }, { token: i3.ClrCommonStringsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1979
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrWizardStepnavItem, isStandalone: false, selector: "[clr-wizard-stepnav-item]", inputs: { page: "page" }, host: { properties: { "id": "id", "attr.aria-current": "stepAriaCurrent", "attr.aria-controls": "page.id", "class.clr-nav-link": "true", "class.nav-item": "true", "class.active": "isCurrent", "class.disabled": "isDisabled", "class.no-click": "!canNavigate", "class.complete": "isComplete", "class.error": "hasError" } }, ngImport: i0, template: `
1980
+ <button
1981
+ type="button"
1982
+ class="btn btn-link clr-wizard-stepnav-link"
1983
+ (click)="click()"
1984
+ [attr.disabled]="isDisabled ? '' : null"
1985
+ [attr.aria-labelledby]="labelledby"
1986
+ >
1987
+ <div class="clr-wizard-stepnav-link-icon">
1988
+ @if (icon; as icon) {
1989
+ <cds-icon
1990
+ [id]="stepIconId"
1991
+ role="img"
1992
+ class="clr-wizard-stepnav-link-icon"
1993
+ [shape]="icon.shape"
1994
+ [attr.aria-label]="icon.label"
1995
+ ></cds-icon>
1996
+ }
1997
+ </div>
1998
+
1999
+ <span [id]="stepTextId" class="clr-sr-only">{{ commonStrings.keys.wizardStep }}</span>
2000
+ <div [id]="stepNumberId" class="clr-wizard-stepnav-link-page-number">
2001
+ <ng-content></ng-content>
2002
+ </div>
2003
+ <span [id]="stepTitleId" class="clr-wizard-stepnav-link-title">
2004
+ <ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
2005
+ </span>
2006
+ </button>
2007
+ `, isInline: true, dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }] }); }
2008
+ }
2009
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
2010
+ type: Component,
2011
+ args: [{
2012
+ selector: '[clr-wizard-stepnav-item]',
2013
+ template: `
2014
+ <button
2015
+ type="button"
2016
+ class="btn btn-link clr-wizard-stepnav-link"
2017
+ (click)="click()"
2018
+ [attr.disabled]="isDisabled ? '' : null"
2019
+ [attr.aria-labelledby]="labelledby"
2020
+ >
2021
+ <div class="clr-wizard-stepnav-link-icon">
2022
+ @if (icon; as icon) {
2023
+ <cds-icon
2024
+ [id]="stepIconId"
2025
+ role="img"
2026
+ class="clr-wizard-stepnav-link-icon"
2027
+ [shape]="icon.shape"
2028
+ [attr.aria-label]="icon.label"
2029
+ ></cds-icon>
2030
+ }
2031
+ </div>
2032
+
2033
+ <span [id]="stepTextId" class="clr-sr-only">{{ commonStrings.keys.wizardStep }}</span>
2034
+ <div [id]="stepNumberId" class="clr-wizard-stepnav-link-page-number">
2035
+ <ng-content></ng-content>
2036
+ </div>
2037
+ <span [id]="stepTitleId" class="clr-wizard-stepnav-link-title">
2038
+ <ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
2039
+ </span>
2040
+ </button>
2041
+ `,
2042
+ host: {
2043
+ '[id]': 'id',
2044
+ '[attr.aria-current]': 'stepAriaCurrent',
2045
+ '[attr.aria-controls]': 'page.id',
2046
+ '[class.clr-nav-link]': 'true',
2047
+ '[class.nav-item]': 'true',
2048
+ '[class.active]': 'isCurrent',
2049
+ '[class.disabled]': 'isDisabled',
2050
+ '[class.no-click]': '!canNavigate',
2051
+ '[class.complete]': 'isComplete',
2052
+ '[class.error]': 'hasError',
2053
+ },
2054
+ standalone: false,
2055
+ }]
2056
+ }], ctorParameters: () => [{ type: WizardNavigationService }, { type: PageCollectionService }, { type: i3.ClrCommonStringsService }, { type: i0.ElementRef }], propDecorators: { page: [{
2057
+ type: Input,
2058
+ args: ['page']
2059
+ }] } });
2060
+
2061
+ /*
2062
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2063
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2064
+ * This software is released under MIT license.
2065
+ * The full license information can be found in LICENSE in the root directory of this project.
2066
+ */
2067
+ class ClrWizardStepnav {
2068
+ constructor(pageService) {
2069
+ this.pageService = pageService;
2070
+ }
2071
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardStepnav, deps: [{ token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component }); }
2072
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrWizardStepnav, isStandalone: false, selector: "clr-wizard-stepnav", inputs: { label: "label" }, host: { classAttribute: "clr-wizard-stepnav" }, ngImport: i0, template: `
2073
+ <nav [attr.aria-label]="label">
2074
+ <ol class="clr-wizard-stepnav-list">
2075
+ @for (page of pageService.pages; track page; let i = $index) {
2076
+ <li clr-wizard-stepnav-item [page]="page" class="clr-wizard-stepnav-item">
2077
+ {{ i + 1 }}
2078
+ </li>
2079
+ }
2080
+ </ol>
2081
+ </nav>
2082
+ `, isInline: true, dependencies: [{ kind: "component", type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }] }); }
2083
+ }
2084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardStepnav, decorators: [{
2085
+ type: Component,
2086
+ args: [{
2087
+ selector: 'clr-wizard-stepnav',
2088
+ template: `
2089
+ <nav [attr.aria-label]="label">
2090
+ <ol class="clr-wizard-stepnav-list">
2091
+ @for (page of pageService.pages; track page; let i = $index) {
2092
+ <li clr-wizard-stepnav-item [page]="page" class="clr-wizard-stepnav-item">
2093
+ {{ i + 1 }}
2094
+ </li>
2095
+ }
2096
+ </ol>
2097
+ </nav>
2098
+ `,
2099
+ host: { class: 'clr-wizard-stepnav' },
2100
+ standalone: false,
2101
+ }]
2102
+ }], ctorParameters: () => [{ type: PageCollectionService }], propDecorators: { label: [{
2103
+ type: Input
2104
+ }] } });
2105
+
2106
+ /*
2107
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2108
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2109
+ * This software is released under MIT license.
2110
+ * The full license information can be found in LICENSE in the root directory of this project.
2111
+ */
2112
+ class ClrWizard {
2113
+ constructor(platformId, commonStrings, navService, pageCollection, buttonService, headerActionService, elementRef, differs) {
2114
+ this.platformId = platformId;
2115
+ this.commonStrings = commonStrings;
2116
+ this.navService = navService;
2117
+ this.pageCollection = pageCollection;
2118
+ this.buttonService = buttonService;
2119
+ this.headerActionService = headerActionService;
2120
+ this.elementRef = elementRef;
2121
+ /**
2122
+ * Set the aria-label for the stepnav section of the wizard. Set using `[clrWizardStepnavAriaLabel]` input.
2123
+ */
2124
+ this.stepnavAriaLabel = this.commonStrings.keys.wizardStepnavAriaLabel;
2125
+ /**
2126
+ * Set the modal size of the wizard. Set using `[clrWizardSize]` input.
2127
+ */
2128
+ this.size = 'xl';
2129
+ /**
2130
+ * Enable "in page" wizard. Set using `[clrWizardInPage]` input.
2131
+ */
2132
+ this.inPage = false;
2133
+ /**
2134
+ * Make an "in page" wizard fill the `.content-area`. Set using `[clrWizardInPageFillContentArea]` input.
2135
+ * If you can't use this option, you will likely need to provide custom CSS to set the wizard's height and margins.
2136
+ */
2137
+ this.inPageFillContentArea = false;
2138
+ /**
2139
+ * Tells the modal part of the wizard whether it should have a close "X"
2140
+ * in the top right corner. Set using `[clrWizardClosable]` input.
2141
+ */
2142
+ this.closable = true;
2143
+ /**
2144
+ * Used to communicate to the underlying modal that animations are not
2145
+ * wanted. Primary use is for the display of static/inline wizards.
2146
+ * Set using `[clrWizardPreventModalAnimation]` input.
2147
+ */
2148
+ this._stopModalAnimations = false;
2149
+ /**
2150
+ * Emits when the wizard is opened or closed.
2151
+ * Listen via `(clrWizardOpenChange)` event.
2152
+ */
2153
+ this._openChanged = new EventEmitter(false);
2154
+ /**
2155
+ * Emits when the wizard is canceled. Listen via `(clrWizardOnCancel)` event.
2156
+ * Can be combined with the `[clrWizardPreventDefaultCancel]` input to create
2157
+ * wizard-level custom cancel routines.
2158
+ */
2159
+ this.onCancel = new EventEmitter(false);
2160
+ /**
2161
+ * Emits when the wizard is completed. Listen via `(clrWizardOnFinish)` event.
2162
+ * Can be combined with the `[clrWizardPreventDefaultNext]` input to create
2163
+ * wizard-level custom completion routines.
2164
+ */
2165
+ this.wizardFinished = new EventEmitter(false);
2166
+ /**
2167
+ * Emits when the wizard is reset. Listen via `(clrWizardOnReset)` event.
2168
+ */
2169
+ this.onReset = new EventEmitter(false);
2170
+ /**
2171
+ * Emits when the current page has changed. Listen via `(clrWizardCurrentPageChange)` event.
2172
+ * output. Useful for non-blocking validation.
2173
+ */
2174
+ this.currentPageChange = new EventEmitter(false);
2175
+ /**
2176
+ * Emits when the wizard moves to the next page. Listen via `(clrWizardOnNext)` event.
2177
+ * Can be combined with the `[clrWizardPreventDefaultNext]` input to create
2178
+ * wizard-level custom navigation routines, which are useful for validation.
2179
+ */
2180
+ this.onMoveNext = new EventEmitter(false);
2181
+ /**
2182
+ * Emits when the wizard moves to the previous page. Can be useful for validation.
2183
+ * Listen via `(clrWizardOnPrevious)` event.
2184
+ */
2185
+ this.onMovePrevious = new EventEmitter(false);
2186
+ this._open = false;
2187
+ this.wizardId = uniqueIdFactory();
2188
+ this._forceForward = false;
2189
+ this._stopNext = false;
2190
+ this._stopCancel = false;
2191
+ this._stopNavigation = false;
2192
+ this._disableStepnav = false;
2193
+ this.subscriptions = [];
2194
+ this.subscriptions.push(this.listenForNextPageChanges(), this.listenForPreviousPageChanges(), this.listenForCancelChanges(), this.listenForFinishedChanges(), this.listenForPageChanges());
2195
+ this.differ = differs.find([]).create(null);
2196
+ }
2197
+ get title() {
2198
+ return this._title;
2199
+ }
2200
+ set title(title) {
2201
+ this._title = title;
2202
+ this.modal.title = title;
2203
+ }
2204
+ /**
2205
+ * Resets page completed states when navigating backwards.
2206
+ * Set using `[clrWizardForceForwardNavigation]` input.
2207
+ */
2208
+ get forceForward() {
2209
+ return this._forceForward;
2210
+ }
2211
+ set forceForward(value) {
2212
+ this._forceForward = !!value;
2213
+ this.navService.forceForwardNavigation = value;
2214
+ }
2215
+ /**
2216
+ * Toggles open/close of the wizard component.
2217
+ * Set using the `[clrWizardOpen]` input.
2218
+ */
2219
+ set clrWizardOpen(open) {
2220
+ if (open) {
2221
+ this.buttonService.buttonsReady = true;
2222
+ }
2223
+ this._open = open;
2224
+ }
2225
+ /**
2226
+ * Prevents ClrWizard from moving to the next page or closing itself on finishing.
2227
+ * Set using the `[clrWizardPreventDefaultNext]` input. Note that using stopNext
2228
+ * will require you to create your own calls to .next() and .finish() in your
2229
+ * host component to make the ClrWizard work as expected.
2230
+ */
2231
+ get stopNext() {
2232
+ return this._stopNext;
2233
+ }
2234
+ set stopNext(value) {
2235
+ this._stopNext = !!value;
2236
+ this.navService.wizardHasAltNext = value;
2237
+ }
2238
+ /**
2239
+ * Prevents ClrWizard from closing when the cancel button or close "X" is clicked.
2240
+ * Set using the `[clrWizardPreventDefaultCancel]` input.
2241
+ *
2242
+ * Note that using stopCancel will require you to create your own calls to `close()` in your host compone`nt
2243
+ * to make the ClrWizard work as expected. Useful for doing checks or prompts
2244
+ * before closing a ClrWizard.
2245
+ */
2246
+ get stopCancel() {
2247
+ return this._stopCancel;
2248
+ }
2249
+ set stopCancel(value) {
2250
+ this._stopCancel = !!value;
2251
+ this.navService.wizardHasAltCancel = value;
2252
+ }
2253
+ /**
2254
+ * Prevents ClrWizard from performing any form of navigation away from the current
2255
+ * page. Set using the `[clrWizardPreventNavigation]` input.
2256
+ * Note that stopNavigation is meant to freeze the wizard in place, typically
2257
+ * during a long validation or background action where you want the wizard to
2258
+ * display loading content but not allow the user to execute navigation in
2259
+ * the stepnav, close X, or the back, finish, or next buttons.
2260
+ */
2261
+ get stopNavigation() {
2262
+ return this._stopNavigation;
2263
+ }
2264
+ set stopNavigation(value) {
2265
+ this._stopNavigation = !!value;
2266
+ this.navService.wizardStopNavigation = value;
2267
+ }
2268
+ /**
2269
+ * Prevents clicks on the links in the stepnav from working.
2270
+ * Set using `[clrWizardDisableStepnav]` input.
2271
+ * A more granular bypassing of navigation which can be useful when your
2272
+ * ClrWizard is in a state of completion and you don't want users to be
2273
+ * able to jump backwards and change things.
2274
+ */
2275
+ get disableStepnav() {
2276
+ return this._disableStepnav;
2277
+ }
2278
+ set disableStepnav(value) {
2279
+ this._disableStepnav = !!value;
2280
+ this.navService.wizardDisableStepnav = value;
2281
+ }
2282
+ get currentPage() {
2283
+ return this.navService.currentPage;
2284
+ }
2285
+ set currentPage(page) {
2286
+ this.navService.goTo(page, true);
2287
+ }
2288
+ get isLast() {
2289
+ return this.navService.currentPageIsLast;
2290
+ }
2291
+ get isFirst() {
2292
+ return this.navService.currentPageIsFirst;
2293
+ }
2294
+ get isInline() {
2295
+ return this.elementRef.nativeElement.classList.contains('clr-wizard--inline');
2296
+ }
2297
+ get stopModalAnimations() {
2298
+ return this._stopModalAnimations;
2299
+ }
2300
+ ngAfterContentInit() {
2301
+ this.pageCollection.pages = this.pages;
2302
+ this.headerActionService.wizardHeaderActions = this.headerActions;
2303
+ if (this.inPage) {
2304
+ this.open();
2305
+ }
2306
+ this.initializeButtons();
2307
+ }
2308
+ ngDoCheck() {
2309
+ this.updateNavOnPageChanges();
2310
+ }
2311
+ ngOnDestroy() {
2312
+ this.subscriptions.forEach(s => s.unsubscribe());
2313
+ }
2314
+ /**
2315
+ * Marks Wizard as finished. By default it does not execute event
2316
+ * emissions or checks before completing and closing. This method is commonly
2317
+ * used as part of an alternative navigation with `[clrWizardPreventDefaultNext]`.
2318
+ *
2319
+ * If `skipChecksAndEmits` is true, the wizard will complete and close
2320
+ * regardless of the state of its current page. This is useful for alternative
2321
+ * navigation where event emissions have already been done and firing them again
2322
+ * may cause an event loop.
2323
+ */
2324
+ finish(skipChecksAndEmits = true) {
2325
+ if (skipChecksAndEmits) {
2326
+ this.forceFinish();
2327
+ }
2328
+ else {
2329
+ this.navService.finish();
2330
+ }
2331
+ }
2332
+ /**
2333
+ * Marks the wizard as finished but does run checks and emissions.
2334
+ * Good for a last step in an alternate workflow. Does the same thing as
2335
+ * calling `ClrWizard.finish(true)` or `ClrWizard.finish()` without a parameter.
2336
+ */
2337
+ forceFinish() {
2338
+ if (this.stopNavigation) {
2339
+ return;
2340
+ }
2341
+ this.close();
2342
+ }
2343
+ /**
2344
+ * Opens the wizard. If there is no current page defined, sets the first page in the wizard to be current.
2345
+ */
2346
+ open() {
2347
+ this._open = true;
2348
+ if (!this.currentPage) {
2349
+ this.navService.setFirstPageCurrent();
2350
+ }
2351
+ // Only render buttons when wizard is opened, to avoid chocolate errors
2352
+ this.buttonService.buttonsReady = true;
2353
+ this._openChanged.emit(true);
2354
+ }
2355
+ /**
2356
+ * Closes the wizard. Call this directly instead of `cancel()` to implement alternative cancel functionality.
2357
+ */
2358
+ close() {
2359
+ if (this.stopNavigation) {
2360
+ return;
2361
+ }
2362
+ this._open = false;
2363
+ this._openChanged.emit(false);
2364
+ }
2365
+ /**
2366
+ * Used to open and close the wizard. By default the wizard will
2367
+ * close if invoked with no parameter. If parameter is true wizard will open
2368
+ * else if false will close.
2369
+ */
2370
+ toggle(open) {
2371
+ if (open) {
2372
+ this.open();
2373
+ }
2374
+ else {
2375
+ this.close();
2376
+ }
2377
+ }
2378
+ /**
2379
+ * Moves the wizard to the previous page.
2380
+ */
2381
+ previous() {
2382
+ this.navService.previous();
2383
+ }
2384
+ /**
2385
+ * By default, `next()` does not execute event emissions.
2386
+ * This method is commonly called as part of an alternative navigation
2387
+ * with `[clrWizardPreventDefaultNext]`. The wizard will move to the next page
2388
+ * regardless of the state of its current page. This is useful for alternative
2389
+ * navigation where event emissions have already been done and firing them again
2390
+ * may cause an event loop.
2391
+ *
2392
+ * If `skipChecksAndEmits` is false, the wizard will execute default checks
2393
+ * and emit events as normal. This is useful for custom buttons or programmatic
2394
+ * workflows that are not executing the wizards default checks and emissions.
2395
+ * It is another way to navigate without having to rewrite the wizard’s default
2396
+ * functionality from scratch.
2397
+ */
2398
+ next(skipChecksAndEmits = true) {
2399
+ if (skipChecksAndEmits) {
2400
+ this.forceNext();
2401
+ }
2402
+ else {
2403
+ this.navService.next();
2404
+ }
2405
+ }
2406
+ /**
2407
+ * Moves the wizard to the next page without the checks and emissions.
2408
+ * Good for a last step in an alternate workflow.
2409
+ * Alias for `ClrWizard.next(true)` or `ClrWizard.next()`
2410
+ */
2411
+ forceNext() {
2412
+ this.navService.forceNext();
2413
+ }
2414
+ /**
2415
+ * Cancels and closes the wizard. Do not use this for an override of the cancel
2416
+ * the functionality with `[clrWizardPreventDefaultCancel]`, `[clrWizardPreventPageDefaultCancel]`,
2417
+ * or `[clrWizardPagePreventDefault]` because it will initiate the same checks
2418
+ * and event emissions that invoked your event handler. Use `ClrWizard.close()` instead.
2419
+ */
2420
+ cancel() {
2421
+ this.navService.cancel();
2422
+ }
2423
+ /**
2424
+ * Overrides behavior of the underlying modal to avoid collisions with
2425
+ * alternative cancel functionality. In most cases, use `ClrWizard.cancel()` instead.
2426
+ */
2427
+ modalCancel() {
2428
+ if (this.closable) {
2429
+ this.checkAndCancel();
2430
+ }
2431
+ }
2432
+ /**
2433
+ * Checks for alternative cancel flows defined at the current page or
2434
+ * wizard level. Performs a canceled if not. Emits events that initiate
2435
+ * the alternative cancel outputs `(clrWizardPageOnCancel)` and `(clrWizardOnCancel)`.
2436
+ */
2437
+ checkAndCancel() {
2438
+ const currentPage = this.currentPage;
2439
+ const currentPageHasOverrides = currentPage.stopCancel || currentPage.preventDefault;
2440
+ if (this.stopNavigation) {
2441
+ return;
2442
+ }
2443
+ currentPage.pageOnCancel.emit();
2444
+ if (!currentPageHasOverrides) {
2445
+ this.onCancel.emit();
2446
+ }
2447
+ if (!this.stopCancel && !currentPageHasOverrides) {
2448
+ this.close();
2449
+ }
2450
+ }
2451
+ /**
2452
+ * Navigates to a given page in the Wizard. Navigation will invoke the wizard’s default
2453
+ * checks and event emissions.
2454
+ *
2455
+ * The format of the expected ID parameter can be found in the return of the
2456
+ * ClrWizardPage.id getter, usually prefixed with `clr-wizard-page-` and then either a
2457
+ * numeric ID or the ID specified for the `ClrWizardPage` component’s `id` input.
2458
+ */
2459
+ goTo(pageId) {
2460
+ if (!pageId) {
2461
+ return;
2462
+ }
2463
+ this.navService.goTo(pageId);
2464
+ }
2465
+ /**
2466
+ * Reset sets all WizardPages to incomplete and sets the first page in the `ClrWizard` to
2467
+ * be the current page, resetting the wizard navigation.
2468
+ * Use `(clrWizardOnReset)` event to reset the data or model of your wizard.
2469
+ */
2470
+ reset() {
2471
+ this.pageCollection.reset();
2472
+ this.onReset.emit();
2473
+ }
2474
+ listenForNextPageChanges() {
2475
+ return this.navService.movedToNextPage.pipe(filter(() => isPlatformBrowser(this.platformId))).subscribe(() => {
2476
+ this.onMoveNext.emit();
2477
+ this.pageTitle?.nativeElement.focus();
2478
+ });
2479
+ }
2480
+ listenForPreviousPageChanges() {
2481
+ return this.navService.movedToPreviousPage.pipe(filter(() => isPlatformBrowser(this.platformId))).subscribe(() => {
2482
+ this.onMovePrevious.emit();
2483
+ this.pageTitle?.nativeElement.focus();
2484
+ });
2485
+ }
2486
+ listenForCancelChanges() {
2487
+ return this.navService.notifyWizardCancel.subscribe(() => this.checkAndCancel());
2488
+ }
2489
+ listenForFinishedChanges() {
2490
+ return this.navService.wizardFinished.subscribe(() => this.emitWizardFinished());
2491
+ }
2492
+ listenForPageChanges() {
2493
+ return this.navService.currentPageChange.subscribe(() => {
2494
+ // Added to address VPAT-749:
2495
+ // When clicking on a wizard tab, focus should move to that
2496
+ // tabs content to make the wizard more accessible.
2497
+ this.pageTitle?.nativeElement.focus();
2498
+ this.currentPageChange.emit();
2499
+ // scroll to top of page in case there is long page content
2500
+ this.bodyElementRef?.nativeElement.scrollTo(0, 0);
2501
+ });
2502
+ }
2503
+ updateNavOnPageChanges() {
2504
+ const changes = this.differ.diff(this.pages);
2505
+ if (changes) {
2506
+ changes.forEachAddedItem(() => this.navService.updateNavigation());
2507
+ changes.forEachRemovedItem(() => this.navService.updateNavigation());
2508
+ }
2509
+ }
2510
+ initializeButtons() {
2511
+ // Only trigger buttons ready if default is open (inlined)
2512
+ if (this._open) {
2513
+ this.buttonService.buttonsReady = true;
2514
+ }
2515
+ }
2516
+ emitWizardFinished() {
2517
+ if (!this.stopNext) {
2518
+ this.forceFinish();
2519
+ }
2520
+ this.wizardFinished.emit();
2521
+ }
2522
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizard, deps: [{ token: PLATFORM_ID }, { token: i3.ClrCommonStringsService }, { token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }, { token: HeaderActionService }, { token: i0.ElementRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component }); }
2523
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: ClrWizard, isStandalone: false, selector: "clr-wizard", inputs: { stepnavAriaLabel: ["clrWizardStepnavAriaLabel", "stepnavAriaLabel"], size: ["clrWizardSize", "size"], inPage: ["clrWizardInPage", "inPage"], inPageFillContentArea: ["clrWizardInPageFillContentArea", "inPageFillContentArea"], closable: ["clrWizardClosable", "closable"], _stopModalAnimations: ["clrWizardPreventModalAnimation", "_stopModalAnimations"], forceForward: ["clrWizardForceForwardNavigation", "forceForward"], clrWizardOpen: "clrWizardOpen", stopNext: ["clrWizardPreventDefaultNext", "stopNext"], stopCancel: ["clrWizardPreventDefaultCancel", "stopCancel"], stopNavigation: ["clrWizardPreventNavigation", "stopNavigation"], disableStepnav: ["clrWizardDisableStepnav", "disableStepnav"] }, outputs: { _openChanged: "clrWizardOpenChange", onCancel: "clrWizardOnCancel", wizardFinished: "clrWizardOnFinish", onReset: "clrWizardOnReset", currentPageChange: "clrWizardCurrentPageChange", onMoveNext: "clrWizardOnNext", onMovePrevious: "clrWizardOnPrevious" }, host: { properties: { "class.clr-wizard": "true", "class.wizard-md": "size == 'md'", "class.wizard-lg": "size == 'lg'", "class.wizard-xl": "size == 'xl'", "class.wizard-in-page": "inPage", "class.wizard-in-page--fill-content-area": "inPage && inPageFillContentArea" } }, providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], queries: [{ propertyName: "wizardTitle", first: true, predicate: ClrWizardTitle, descendants: true }, { propertyName: "pages", predicate: ClrWizardPage, descendants: true }, { propertyName: "headerActions", predicate: ClrWizardHeaderAction }], viewQueries: [{ propertyName: "pageTitle", first: true, predicate: ["pageTitle"], descendants: true }, { propertyName: "bodyElementRef", first: true, predicate: ["body"], descendants: true }, { propertyName: "modal", first: true, predicate: ClrModal, descendants: true }, { propertyName: "title", first: true, predicate: ["title"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n<ng-template #coreWizardContent>\n <div class=\"modal-content-wrapper\">\n <div class=\"modal-nav clr-wizard-stepnav-wrapper\" role=\"region\">\n <div class=\"clr-wizard-title\" [id]=\"wizardId\" role=\"heading\" [attr.aria-level]=\"wizardTitle?.headingLevel || 1\">\n <ng-content select=\"clr-wizard-title\"></ng-content>\n </div>\n <clr-wizard-stepnav [label]=\"stepnavAriaLabel\"></clr-wizard-stepnav>\n </div>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" #title cdkFocusInitial tabindex=\"-1\">\n <div\n class=\"modal-title\"\n role=\"heading\"\n [attr.aria-level]=\"navService.currentPage?.pageTitle?.headingLevel || 2\"\n >\n <span tabindex=\"-1\" #pageTitle class=\"modal-title-text\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPageTitle\"></ng-template>\n </span>\n </div>\n </div>\n\n @if (headerActionService.displayHeaderActionsWrapper) {\n <div class=\"modal-header-actions-wrapper\">\n @if (headerActionService.showWizardHeaderActions) {\n <ng-content select=\"clr-wizard-header-action\"></ng-content>\n } @if (headerActionService.currentPageHasHeaderActions) {\n <ng-template [ngTemplateOutlet]=\"navService.currentPage?.headerActions\"></ng-template>\n }\n </div>\n } @if (closable && !inPage) {\n <button type=\"button\" class=\"close\" [attr.aria-label]=\"commonStrings.keys.close\" (click)=\"modalCancel()\">\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n\n <div #body class=\"modal-body-wrapper\">\n <div class=\"modal-body\">\n <main clr-wizard-pages-wrapper class=\"clr-wizard-content\">\n <ng-content></ng-content>\n </main>\n </div>\n </div>\n\n <div class=\"modal-footer clr-wizard-footer\">\n <div class=\"clr-wizard-footer-buttons\">\n <div class=\"clr-wizard-footer-buttons-wrapper\">\n @if (navService.currentPage?.hasButtons) {\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.buttons\"></ng-template>\n } @else {\n <ng-content select=\"clr-wizard-button\"></ng-content>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n@if (inPage) {\n<ng-container [ngTemplateOutlet]=\"coreWizardContent\"></ng-container>\n} @else {\n<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalSkipAnimation]=\"stopModalAnimations\"\n [clrModalOverrideScrollService]=\"isInline\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n [clrModalLabelledById]=\"wizardId\"\n>\n <ng-template #clrInternalModalContentTemplate>\n <ng-container [ngTemplateOutlet]=\"coreWizardContent\"></ng-container>\n </ng-template>\n</clr-modal>\n}\n", dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "component", type: i8.ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalCloseButtonAriaLabel", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalPreventClose", "clrModalLabelledById", "clrModalOverrideScrollService"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { kind: "directive", type: i8.ClrModalBody, selector: ".modal-body" }, { kind: "component", type: ClrWizardStepnav, selector: "clr-wizard-stepnav", inputs: ["label"] }] }); }
2524
+ }
2525
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizard, decorators: [{
2526
+ type: Component,
2527
+ args: [{ selector: 'clr-wizard', providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], host: {
2528
+ '[class.clr-wizard]': 'true',
2529
+ '[class.wizard-md]': "size == 'md'",
2530
+ '[class.wizard-lg]': "size == 'lg'",
2531
+ '[class.wizard-xl]': "size == 'xl'",
2532
+ '[class.wizard-in-page]': 'inPage',
2533
+ '[class.wizard-in-page--fill-content-area]': 'inPage && inPageFillContentArea',
2534
+ }, standalone: false, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n<ng-template #coreWizardContent>\n <div class=\"modal-content-wrapper\">\n <div class=\"modal-nav clr-wizard-stepnav-wrapper\" role=\"region\">\n <div class=\"clr-wizard-title\" [id]=\"wizardId\" role=\"heading\" [attr.aria-level]=\"wizardTitle?.headingLevel || 1\">\n <ng-content select=\"clr-wizard-title\"></ng-content>\n </div>\n <clr-wizard-stepnav [label]=\"stepnavAriaLabel\"></clr-wizard-stepnav>\n </div>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" #title cdkFocusInitial tabindex=\"-1\">\n <div\n class=\"modal-title\"\n role=\"heading\"\n [attr.aria-level]=\"navService.currentPage?.pageTitle?.headingLevel || 2\"\n >\n <span tabindex=\"-1\" #pageTitle class=\"modal-title-text\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPageTitle\"></ng-template>\n </span>\n </div>\n </div>\n\n @if (headerActionService.displayHeaderActionsWrapper) {\n <div class=\"modal-header-actions-wrapper\">\n @if (headerActionService.showWizardHeaderActions) {\n <ng-content select=\"clr-wizard-header-action\"></ng-content>\n } @if (headerActionService.currentPageHasHeaderActions) {\n <ng-template [ngTemplateOutlet]=\"navService.currentPage?.headerActions\"></ng-template>\n }\n </div>\n } @if (closable && !inPage) {\n <button type=\"button\" class=\"close\" [attr.aria-label]=\"commonStrings.keys.close\" (click)=\"modalCancel()\">\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n }\n </div>\n\n <div #body class=\"modal-body-wrapper\">\n <div class=\"modal-body\">\n <main clr-wizard-pages-wrapper class=\"clr-wizard-content\">\n <ng-content></ng-content>\n </main>\n </div>\n </div>\n\n <div class=\"modal-footer clr-wizard-footer\">\n <div class=\"clr-wizard-footer-buttons\">\n <div class=\"clr-wizard-footer-buttons-wrapper\">\n @if (navService.currentPage?.hasButtons) {\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.buttons\"></ng-template>\n } @else {\n <ng-content select=\"clr-wizard-button\"></ng-content>\n }\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n@if (inPage) {\n<ng-container [ngTemplateOutlet]=\"coreWizardContent\"></ng-container>\n} @else {\n<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalSkipAnimation]=\"stopModalAnimations\"\n [clrModalOverrideScrollService]=\"isInline\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n [clrModalLabelledById]=\"wizardId\"\n>\n <ng-template #clrInternalModalContentTemplate>\n <ng-container [ngTemplateOutlet]=\"coreWizardContent\"></ng-container>\n </ng-template>\n</clr-modal>\n}\n" }]
2535
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
2536
+ type: Inject,
2537
+ args: [PLATFORM_ID]
2538
+ }] }, { type: i3.ClrCommonStringsService }, { type: WizardNavigationService }, { type: PageCollectionService }, { type: ButtonHubService }, { type: HeaderActionService }, { type: i0.ElementRef }, { type: i0.IterableDiffers }], propDecorators: { stepnavAriaLabel: [{
2539
+ type: Input,
2540
+ args: ['clrWizardStepnavAriaLabel']
2541
+ }], size: [{
2542
+ type: Input,
2543
+ args: ['clrWizardSize']
2544
+ }], inPage: [{
2545
+ type: Input,
2546
+ args: ['clrWizardInPage']
2547
+ }], inPageFillContentArea: [{
2548
+ type: Input,
2549
+ args: ['clrWizardInPageFillContentArea']
2550
+ }], closable: [{
2551
+ type: Input,
2552
+ args: ['clrWizardClosable']
2553
+ }], _stopModalAnimations: [{
2554
+ type: Input,
2555
+ args: ['clrWizardPreventModalAnimation']
2556
+ }], _openChanged: [{
2557
+ type: Output,
2558
+ args: ['clrWizardOpenChange']
2559
+ }], onCancel: [{
2560
+ type: Output,
2561
+ args: ['clrWizardOnCancel']
2562
+ }], wizardFinished: [{
2563
+ type: Output,
2564
+ args: ['clrWizardOnFinish']
2565
+ }], onReset: [{
2566
+ type: Output,
2567
+ args: ['clrWizardOnReset']
2568
+ }], currentPageChange: [{
2569
+ type: Output,
2570
+ args: ['clrWizardCurrentPageChange']
2571
+ }], onMoveNext: [{
2572
+ type: Output,
2573
+ args: ['clrWizardOnNext']
2574
+ }], onMovePrevious: [{
2575
+ type: Output,
2576
+ args: ['clrWizardOnPrevious']
2577
+ }], pageTitle: [{
2578
+ type: ViewChild,
2579
+ args: ['pageTitle']
2580
+ }], pages: [{
2581
+ type: ContentChildren,
2582
+ args: [ClrWizardPage, { descendants: true }]
2583
+ }], headerActions: [{
2584
+ type: ContentChildren,
2585
+ args: [ClrWizardHeaderAction]
2586
+ }], wizardTitle: [{
2587
+ type: ContentChild,
2588
+ args: [ClrWizardTitle]
2589
+ }], bodyElementRef: [{
2590
+ type: ViewChild,
2591
+ args: ['body']
2592
+ }], modal: [{
2593
+ type: ViewChild,
2594
+ args: [ClrModal]
2595
+ }], title: [{
2596
+ type: ViewChild,
2597
+ args: ['title']
2598
+ }], forceForward: [{
2599
+ type: Input,
2600
+ args: ['clrWizardForceForwardNavigation']
2601
+ }], clrWizardOpen: [{
2602
+ type: Input,
2603
+ args: ['clrWizardOpen']
2604
+ }], stopNext: [{
2605
+ type: Input,
2606
+ args: ['clrWizardPreventDefaultNext']
2607
+ }], stopCancel: [{
2608
+ type: Input,
2609
+ args: ['clrWizardPreventDefaultCancel']
2610
+ }], stopNavigation: [{
2611
+ type: Input,
2612
+ args: ['clrWizardPreventNavigation']
2613
+ }], disableStepnav: [{
2614
+ type: Input,
2615
+ args: ['clrWizardDisableStepnav']
2616
+ }] } });
2617
+
2618
+ /*
2619
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2620
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2621
+ * This software is released under MIT license.
2622
+ * The full license information can be found in LICENSE in the root directory of this project.
2623
+ */
2624
+ const DEFAULT_BUTTON_TYPES = {
2625
+ cancel: 'cancel',
2626
+ previous: 'previous',
2627
+ next: 'next',
2628
+ finish: 'finish',
2629
+ danger: 'danger',
2630
+ };
2631
+ const CUSTOM_BUTTON_TYPES = {
2632
+ cancel: 'custom-cancel',
2633
+ previous: 'custom-previous',
2634
+ next: 'custom-next',
2635
+ finish: 'custom-finish',
2636
+ danger: 'custom-danger',
2637
+ };
2638
+ class ClrWizardButton {
2639
+ constructor(navService, buttonService) {
2640
+ this.navService = navService;
2641
+ this.buttonService = buttonService;
2642
+ this.type = '';
2643
+ this.disabled = false;
2644
+ this.hidden = false;
2645
+ // EventEmitter which is emitted when a button is clicked.
2646
+ this.wasClicked = new EventEmitter(false);
2647
+ }
2648
+ get isCancel() {
2649
+ return this.checkDefaultAndCustomType(this.type, 'cancel');
2650
+ }
2651
+ get isNext() {
2652
+ return this.checkDefaultAndCustomType(this.type, 'next');
2653
+ }
2654
+ get isPrevious() {
2655
+ return this.checkDefaultAndCustomType(this.type, 'previous');
2656
+ }
2657
+ get isFinish() {
2658
+ return this.checkDefaultAndCustomType(this.type, 'finish');
2659
+ }
2660
+ get isDanger() {
2661
+ return this.checkDefaultAndCustomType(this.type, 'danger');
2662
+ }
2663
+ get isPrimaryAction() {
2664
+ return this.isNext || this.isDanger || this.isFinish;
2665
+ }
2666
+ get _disabledAttribute() {
2667
+ if (this.isDisabled) {
2668
+ return '';
2669
+ }
2670
+ return null;
2671
+ }
2672
+ get isDisabled() {
2673
+ // dealing with negatives here. cognitively easier to think of it like this...
2674
+ const disabled = true;
2675
+ const nav = this.navService;
2676
+ const page = this.navService.currentPage;
2677
+ // Ensure we don't change the response until buttons are ready to avoid chocolate
2678
+ if (!this.buttonService.buttonsReady) {
2679
+ return !disabled;
2680
+ }
2681
+ if (this.disabled || nav.wizardStopNavigation || !page) {
2682
+ return true;
2683
+ }
2684
+ if (this.isCancel) {
2685
+ return !disabled;
2686
+ }
2687
+ if (this.isPrevious && (nav.currentPageIsFirst || page.previousStepDisabled)) {
2688
+ return disabled;
2689
+ }
2690
+ if (this.isDanger && !page.readyToComplete) {
2691
+ return disabled;
2692
+ }
2693
+ if (this.isNext && (nav.currentPageIsLast || !page.readyToComplete)) {
2694
+ return disabled;
2695
+ }
2696
+ if (this.isFinish && (!nav.currentPageIsLast || !page.readyToComplete)) {
2697
+ return disabled;
2698
+ }
2699
+ return !disabled;
2700
+ }
2701
+ get isHidden() {
2702
+ // dealing with negatives here. cognitively easier to think of it like this...
2703
+ const hidden = true;
2704
+ const nav = this.navService;
2705
+ // Ensure we don't change the response until buttons are ready to avoid chocolate
2706
+ if (!this.buttonService.buttonsReady) {
2707
+ return !hidden;
2708
+ }
2709
+ if (this.hidden) {
2710
+ return true;
2711
+ }
2712
+ if (this.isCancel) {
2713
+ return !hidden;
2714
+ }
2715
+ if (this.isPrevious && nav.currentPageIsFirst) {
2716
+ return hidden;
2717
+ }
2718
+ if (this.isNext && nav.currentPageIsLast) {
2719
+ return hidden;
2720
+ }
2721
+ if (this.isFinish && !nav.currentPageIsLast) {
2722
+ return hidden;
2723
+ }
2724
+ return !hidden;
2725
+ }
2726
+ click() {
2727
+ if (this.isDisabled) {
2728
+ return;
2729
+ }
2730
+ this.wasClicked.emit(this.type);
2731
+ this.buttonService.buttonClicked(this.type);
2732
+ }
2733
+ checkDefaultAndCustomType(valueToCheck = '', typeToLookUp) {
2734
+ if (DEFAULT_BUTTON_TYPES[typeToLookUp] === valueToCheck) {
2735
+ return true;
2736
+ }
2737
+ if (CUSTOM_BUTTON_TYPES[typeToLookUp] === valueToCheck) {
2738
+ return true;
2739
+ }
2740
+ return false;
2741
+ }
2742
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardButton, deps: [{ token: WizardNavigationService }, { token: ButtonHubService }], target: i0.ɵɵFactoryTarget.Component }); }
2743
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: ClrWizardButton, isStandalone: false, selector: "clr-wizard-button", inputs: { type: "type", disabled: ["clrWizardButtonDisabled", "disabled"], hidden: ["clrWizardButtonHidden", "hidden"] }, outputs: { wasClicked: "clrWizardButtonClicked" }, host: { properties: { "attr.aria-hidden": "isHidden" }, classAttribute: "clr-wizard-btn-wrapper" }, ngImport: i0, template: `
2744
+ <button
2745
+ type="button"
2746
+ class="btn clr-wizard-btn"
2747
+ [class.btn-link]="isCancel"
2748
+ [class.clr-wizard-btn--tertiary]="isCancel"
2749
+ [class.btn-outline]="isPrevious"
2750
+ [class.clr-wizard-btn--secondary]="isPrevious"
2751
+ [class.btn-primary]="isPrimaryAction"
2752
+ [class.clr-wizard-btn--primary]="isPrimaryAction"
2753
+ [class.btn-success]="isFinish"
2754
+ [class.btn-danger]="isDanger"
2755
+ [class.disabled]="isDisabled"
2756
+ [attr.disabled]="_disabledAttribute"
2757
+ (click)="click()"
2758
+ >
2759
+ <ng-content></ng-content>
2760
+ </button>
2761
+ `, isInline: true }); }
2762
+ }
2763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardButton, decorators: [{
2764
+ type: Component,
2765
+ args: [{
2766
+ selector: 'clr-wizard-button',
2767
+ template: `
2768
+ <button
2769
+ type="button"
2770
+ class="btn clr-wizard-btn"
2771
+ [class.btn-link]="isCancel"
2772
+ [class.clr-wizard-btn--tertiary]="isCancel"
2773
+ [class.btn-outline]="isPrevious"
2774
+ [class.clr-wizard-btn--secondary]="isPrevious"
2775
+ [class.btn-primary]="isPrimaryAction"
2776
+ [class.clr-wizard-btn--primary]="isPrimaryAction"
2777
+ [class.btn-success]="isFinish"
2778
+ [class.btn-danger]="isDanger"
2779
+ [class.disabled]="isDisabled"
2780
+ [attr.disabled]="_disabledAttribute"
2781
+ (click)="click()"
2782
+ >
2783
+ <ng-content></ng-content>
2784
+ </button>
2785
+ `,
2786
+ host: { class: 'clr-wizard-btn-wrapper', '[attr.aria-hidden]': 'isHidden' },
2787
+ standalone: false,
2788
+ }]
2789
+ }], ctorParameters: () => [{ type: WizardNavigationService }, { type: ButtonHubService }], propDecorators: { type: [{
2790
+ type: Input,
2791
+ args: ['type']
2792
+ }], disabled: [{
2793
+ type: Input,
2794
+ args: ['clrWizardButtonDisabled']
2795
+ }], hidden: [{
2796
+ type: Input,
2797
+ args: ['clrWizardButtonHidden']
2798
+ }], wasClicked: [{
2799
+ type: Output,
2800
+ args: ['clrWizardButtonClicked']
2801
+ }] } });
2802
+
2803
+ /*
2804
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2805
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2806
+ * This software is released under MIT license.
2807
+ * The full license information can be found in LICENSE in the root directory of this project.
2808
+ */
2809
+ const CLR_WIZARD_DIRECTIVES = [
2810
+ ClrWizard,
2811
+ ClrWizardPage,
2812
+ ClrWizardStepnav,
2813
+ ClrWizardStepnavItem,
2814
+ ClrWizardButton,
2815
+ ClrWizardHeaderAction,
2816
+ ClrWizardTitle,
2817
+ ClrWizardPageTitle,
2818
+ ClrWizardPageNavTitle,
2819
+ ClrWizardPageButtons,
2820
+ ClrWizardPageHeaderActions,
2821
+ ];
2822
+ class ClrWizardModule {
2823
+ constructor() {
2824
+ ClarityIcons.addIcons(errorStandardIcon, successStandardIcon);
2825
+ }
2826
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2827
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardModule, declarations: [ClrWizard,
2828
+ ClrWizardPage,
2829
+ ClrWizardStepnav,
2830
+ ClrWizardStepnavItem,
2831
+ ClrWizardButton,
2832
+ ClrWizardHeaderAction,
2833
+ ClrWizardTitle,
2834
+ ClrWizardPageTitle,
2835
+ ClrWizardPageNavTitle,
2836
+ ClrWizardPageButtons,
2837
+ ClrWizardPageHeaderActions], imports: [CommonModule, ClrIcon, ClrModalModule, ClrAlertModule], exports: [ClrWizard,
2838
+ ClrWizardPage,
2839
+ ClrWizardStepnav,
2840
+ ClrWizardStepnavItem,
2841
+ ClrWizardButton,
2842
+ ClrWizardHeaderAction,
2843
+ ClrWizardTitle,
2844
+ ClrWizardPageTitle,
2845
+ ClrWizardPageNavTitle,
2846
+ ClrWizardPageButtons,
2847
+ ClrWizardPageHeaderActions] }); }
2848
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardModule, imports: [CommonModule, ClrIcon, ClrModalModule, ClrAlertModule] }); }
2849
+ }
2850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ClrWizardModule, decorators: [{
2851
+ type: NgModule,
2852
+ args: [{
2853
+ imports: [CommonModule, ClrIcon, ClrModalModule, ClrAlertModule],
2854
+ declarations: [CLR_WIZARD_DIRECTIVES],
2855
+ exports: [CLR_WIZARD_DIRECTIVES],
2856
+ }]
2857
+ }], ctorParameters: () => [] });
2858
+
2859
+ /*
2860
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
2861
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
2862
+ * This software is released under MIT license.
2863
+ * The full license information can be found in LICENSE in the root directory of this project.
2864
+ */
2865
+
2866
+ /**
2867
+ * Generated bundle index. Do not edit.
2868
+ */
2869
+
2870
+ export { CLR_WIZARD_DIRECTIVES, CUSTOM_BUTTON_TYPES, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, DEFAULT_BUTTON_TYPES };
2871
+ //# sourceMappingURL=clr-angular-wizard.mjs.map