@clr/angular 17.12.2 → 18.0.0-beta.1

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