@hermes-ui/angular 0.1.4

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 (539) hide show
  1. package/README.md +52 -0
  2. package/accordion/_accordion.clarity.scss +81 -0
  3. package/accordion/_properties.accordion.scss +45 -0
  4. package/accordion/_variables.accordion.scss +91 -0
  5. package/addons/a11y/README.md +157 -0
  6. package/addons/a11y/forms/required-field-legend.component.scss +17 -0
  7. package/addons/card-container/card/appfx-card.component.scss +137 -0
  8. package/addons/card-container/container/appfx-card-container.component.scss +17 -0
  9. package/addons/card-container/settings/appfx-card-container-settings.component.scss +62 -0
  10. package/addons/certificate-viewer/certificate-viewer/certificate-viewer.component.scss +69 -0
  11. package/addons/certificate-viewer/certificate-viewer-details/certificate-viewer-details.component.scss +49 -0
  12. package/addons/certificate-viewer/certificate-viewer-general/certificate-viewer-general.component.scss +38 -0
  13. package/addons/datagrid/README.md +289 -0
  14. package/addons/datagrid/addons/action-bar/datagrid-action-bar.component.scss +81 -0
  15. package/addons/datagrid/addons/column-toggle/datagrid-column-toggle.component.scss +99 -0
  16. package/addons/datagrid/addons/export/export-datagrid.component.scss +9 -0
  17. package/addons/datagrid/datagrid.component.scss +339 -0
  18. package/addons/datagrid-filters/README.md +223 -0
  19. package/addons/datagrid-filters/advanced-filters/date-time-filter.component.scss +10 -0
  20. package/addons/datagrid-filters/advanced-filters/enum-filter.component.scss +40 -0
  21. package/addons/datagrid-filters/advanced-filters/users-filter.component.scss +11 -0
  22. package/addons/datagrid-filters/common-styles.scss +98 -0
  23. package/addons/datagrid-filters/composite-filters.component.scss +26 -0
  24. package/addons/datagrid-filters/datagrid-filters.component.scss +22 -0
  25. package/addons/datagrid-filters/manage-filters/manage-filter.component.scss +42 -0
  26. package/addons/dialog/README.md +112 -0
  27. package/addons/dialog/multi-page-dialog.a11y.scss +203 -0
  28. package/addons/dialog/multi-page-dialog.component.scss +102 -0
  29. package/addons/dialog/toggle-component/toggle.component.scss +15 -0
  30. package/addons/drag-and-drop/README.md +48 -0
  31. package/addons/menu/menu.component.scss +120 -0
  32. package/addons/property-view/components/property-view-category.component.scss +38 -0
  33. package/addons/property-view/components/property-view-message.component.scss +48 -0
  34. package/addons/property-view/components/property-view-property.component.scss +122 -0
  35. package/addons/property-view/components/property-view-section.component.scss +59 -0
  36. package/addons/property-view/components/property-view.component.scss +23 -0
  37. package/addons/stepper/stepper.component.scss +53 -0
  38. package/addons/tabs/tab-links/tab-links.component.scss +61 -0
  39. package/addons/tabs/tabs.a11y.scss +26 -0
  40. package/addons/tabs/tabs.component.scss +95 -0
  41. package/addons/theme-builder/README.md +70 -0
  42. package/addons/theme-builder/theme-builder.component.scss +194 -0
  43. package/addons/translate/README.md +124 -0
  44. package/addons/var/debug/workflow-model-monitor.component.scss +50 -0
  45. package/addons/var/error/error.component.scss +38 -0
  46. package/addons/var/spinner/spinner.component.scss +33 -0
  47. package/addons/wizard/summary/summary.component.scss +22 -0
  48. package/addons/wizard/wizard.component.scss +251 -0
  49. package/button/_buttons.clarity.scss +388 -0
  50. package/button/_mixins.buttons.scss +241 -0
  51. package/button/_properties.buttons.scss +387 -0
  52. package/button/_properties.toggles.scss +35 -0
  53. package/button/_variables.buttons.scss +905 -0
  54. package/button/_variables.toggles.scss +41 -0
  55. package/button/button-group/_button-group.clarity.scss +202 -0
  56. package/collapsible-panel/_mixins.collapsible-panel.scss +189 -0
  57. package/collapsible-panel/_properties.collapsible-panel.scss +42 -0
  58. package/collapsible-panel/_variables.collapsible-panel.scss +40 -0
  59. package/data/_mixins.tables.scss +114 -0
  60. package/data/_properties.tables.scss +77 -0
  61. package/data/_tables.clarity.scss +120 -0
  62. package/data/_variables.tables.scss +42 -0
  63. package/data/datagrid/_datagrid.clarity.scss +1871 -0
  64. package/data/datagrid/_mixins.datagrid.scss +102 -0
  65. package/data/datagrid/_properties.datagrid.scss +98 -0
  66. package/data/datagrid/_variables.datagrid.scss +98 -0
  67. package/data/stack-view/_properties.stack-view.scss +50 -0
  68. package/data/stack-view/_stack-view.clarity.scss +267 -0
  69. package/data/stack-view/_variables.stack-view.scss +32 -0
  70. package/data/tree-view/_properties.tree-view.scss +41 -0
  71. package/data/tree-view/_tree-view.clarity.scss +281 -0
  72. package/data/tree-view/_variables.tree-view.scss +51 -0
  73. package/emphasis/alert/_alert.clarity.scss +467 -0
  74. package/emphasis/alert/_mixins.alert.scss +96 -0
  75. package/emphasis/alert/_properties.alert.scss +183 -0
  76. package/emphasis/alert/_variables.alert.scss +502 -0
  77. package/emphasis/badge/_badges.clarity.scss +61 -0
  78. package/emphasis/badge/_mixins.bades.scss +34 -0
  79. package/emphasis/badge/_properties.badges.scss +82 -0
  80. package/emphasis/badge/_variables.badges.scss +160 -0
  81. package/emphasis/label/_labels.clarity.scss +179 -0
  82. package/emphasis/label/_mixins.label.scss +77 -0
  83. package/emphasis/label/_properties.label.scss +105 -0
  84. package/emphasis/label/_variables.label.scss +181 -0
  85. package/fesm2022/hermes-ui-angular-accordion.mjs +355 -0
  86. package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -0
  87. package/fesm2022/hermes-ui-angular-addons-a11y.mjs +544 -0
  88. package/fesm2022/hermes-ui-angular-addons-a11y.mjs.map +1 -0
  89. package/fesm2022/hermes-ui-angular-addons-card-container.mjs +1082 -0
  90. package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -0
  91. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2520 -0
  92. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -0
  93. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2818 -0
  94. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -0
  95. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +3131 -0
  96. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -0
  97. package/fesm2022/hermes-ui-angular-addons-dialog.mjs +386 -0
  98. package/fesm2022/hermes-ui-angular-addons-dialog.mjs.map +1 -0
  99. package/fesm2022/hermes-ui-angular-addons-drag-and-drop.mjs +78 -0
  100. package/fesm2022/hermes-ui-angular-addons-drag-and-drop.mjs.map +1 -0
  101. package/fesm2022/hermes-ui-angular-addons-menu.mjs +559 -0
  102. package/fesm2022/hermes-ui-angular-addons-menu.mjs.map +1 -0
  103. package/fesm2022/hermes-ui-angular-addons-property-view.mjs +1142 -0
  104. package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -0
  105. package/fesm2022/hermes-ui-angular-addons-stepper.mjs +716 -0
  106. package/fesm2022/hermes-ui-angular-addons-stepper.mjs.map +1 -0
  107. package/fesm2022/hermes-ui-angular-addons-tabs.mjs +539 -0
  108. package/fesm2022/hermes-ui-angular-addons-tabs.mjs.map +1 -0
  109. package/fesm2022/hermes-ui-angular-addons-testing.mjs +2010 -0
  110. package/fesm2022/hermes-ui-angular-addons-testing.mjs.map +1 -0
  111. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +922 -0
  112. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -0
  113. package/fesm2022/hermes-ui-angular-addons-translate.mjs +295 -0
  114. package/fesm2022/hermes-ui-angular-addons-translate.mjs.map +1 -0
  115. package/fesm2022/hermes-ui-angular-addons-var.mjs +2028 -0
  116. package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -0
  117. package/fesm2022/hermes-ui-angular-addons-wizard.mjs +610 -0
  118. package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -0
  119. package/fesm2022/hermes-ui-angular-addons-workflow-strings.mjs +121 -0
  120. package/fesm2022/hermes-ui-angular-addons-workflow-strings.mjs.map +1 -0
  121. package/fesm2022/hermes-ui-angular-addons-workflow.mjs +88 -0
  122. package/fesm2022/hermes-ui-angular-addons-workflow.mjs.map +1 -0
  123. package/fesm2022/hermes-ui-angular-button.mjs +719 -0
  124. package/fesm2022/hermes-ui-angular-button.mjs.map +1 -0
  125. package/fesm2022/hermes-ui-angular-collapsible-panel.mjs +201 -0
  126. package/fesm2022/hermes-ui-angular-collapsible-panel.mjs.map +1 -0
  127. package/fesm2022/hermes-ui-angular-data-datagrid.mjs +8045 -0
  128. package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -0
  129. package/fesm2022/hermes-ui-angular-data-stack-view.mjs +442 -0
  130. package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -0
  131. package/fesm2022/hermes-ui-angular-data-tree-view.mjs +1106 -0
  132. package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -0
  133. package/fesm2022/hermes-ui-angular-data.mjs +40 -0
  134. package/fesm2022/hermes-ui-angular-data.mjs.map +1 -0
  135. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +624 -0
  136. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -0
  137. package/fesm2022/hermes-ui-angular-emphasis-badge.mjs +69 -0
  138. package/fesm2022/hermes-ui-angular-emphasis-badge.mjs.map +1 -0
  139. package/fesm2022/hermes-ui-angular-emphasis-common.mjs +25 -0
  140. package/fesm2022/hermes-ui-angular-emphasis-common.mjs.map +1 -0
  141. package/fesm2022/hermes-ui-angular-emphasis-label.mjs +105 -0
  142. package/fesm2022/hermes-ui-angular-emphasis-label.mjs.map +1 -0
  143. package/fesm2022/hermes-ui-angular-emphasis.mjs +41 -0
  144. package/fesm2022/hermes-ui-angular-emphasis.mjs.map +1 -0
  145. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +279 -0
  146. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -0
  147. package/fesm2022/hermes-ui-angular-forms-combobox.mjs +1775 -0
  148. package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -0
  149. package/fesm2022/hermes-ui-angular-forms-common.mjs +1251 -0
  150. package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -0
  151. package/fesm2022/hermes-ui-angular-forms-datalist.mjs +263 -0
  152. package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -0
  153. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3274 -0
  154. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -0
  155. package/fesm2022/hermes-ui-angular-forms-file-input.mjs +826 -0
  156. package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -0
  157. package/fesm2022/hermes-ui-angular-forms-input.mjs +153 -0
  158. package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -0
  159. package/fesm2022/hermes-ui-angular-forms-native-select.mjs +153 -0
  160. package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -0
  161. package/fesm2022/hermes-ui-angular-forms-number-input.mjs +236 -0
  162. package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -0
  163. package/fesm2022/hermes-ui-angular-forms-password.mjs +233 -0
  164. package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -0
  165. package/fesm2022/hermes-ui-angular-forms-radio.mjs +224 -0
  166. package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -0
  167. package/fesm2022/hermes-ui-angular-forms-range.mjs +186 -0
  168. package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -0
  169. package/fesm2022/hermes-ui-angular-forms-select.mjs +606 -0
  170. package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -0
  171. package/fesm2022/hermes-ui-angular-forms-textarea.mjs +136 -0
  172. package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -0
  173. package/fesm2022/hermes-ui-angular-forms.mjs +105 -0
  174. package/fesm2022/hermes-ui-angular-forms.mjs.map +1 -0
  175. package/fesm2022/hermes-ui-angular-icon.mjs +7413 -0
  176. package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -0
  177. package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs +120 -0
  178. package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs.map +1 -0
  179. package/fesm2022/hermes-ui-angular-layout-main-container.mjs +100 -0
  180. package/fesm2022/hermes-ui-angular-layout-main-container.mjs.map +1 -0
  181. package/fesm2022/hermes-ui-angular-layout-nav.mjs +582 -0
  182. package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -0
  183. package/fesm2022/hermes-ui-angular-layout-tabs.mjs +807 -0
  184. package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -0
  185. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +507 -0
  186. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -0
  187. package/fesm2022/hermes-ui-angular-layout.mjs +44 -0
  188. package/fesm2022/hermes-ui-angular-layout.mjs.map +1 -0
  189. package/fesm2022/hermes-ui-angular-modal.mjs +619 -0
  190. package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -0
  191. package/fesm2022/hermes-ui-angular-popover-common.mjs +1371 -0
  192. package/fesm2022/hermes-ui-angular-popover-common.mjs.map +1 -0
  193. package/fesm2022/hermes-ui-angular-popover-dropdown.mjs +492 -0
  194. package/fesm2022/hermes-ui-angular-popover-dropdown.mjs.map +1 -0
  195. package/fesm2022/hermes-ui-angular-popover-signpost.mjs +494 -0
  196. package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -0
  197. package/fesm2022/hermes-ui-angular-popover-tooltip.mjs +293 -0
  198. package/fesm2022/hermes-ui-angular-popover-tooltip.mjs.map +1 -0
  199. package/fesm2022/hermes-ui-angular-popover.mjs +41 -0
  200. package/fesm2022/hermes-ui-angular-popover.mjs.map +1 -0
  201. package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs +217 -0
  202. package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs.map +1 -0
  203. package/fesm2022/hermes-ui-angular-progress-spinner.mjs +132 -0
  204. package/fesm2022/hermes-ui-angular-progress-spinner.mjs.map +1 -0
  205. package/fesm2022/hermes-ui-angular-stepper.mjs +694 -0
  206. package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -0
  207. package/fesm2022/hermes-ui-angular-timeline.mjs +316 -0
  208. package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -0
  209. package/fesm2022/hermes-ui-angular-toast.mjs +373 -0
  210. package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -0
  211. package/fesm2022/hermes-ui-angular-utils-conditional.mjs +351 -0
  212. package/fesm2022/hermes-ui-angular-utils-conditional.mjs.map +1 -0
  213. package/fesm2022/hermes-ui-angular-utils-loading.mjs +107 -0
  214. package/fesm2022/hermes-ui-angular-utils-loading.mjs.map +1 -0
  215. package/fesm2022/hermes-ui-angular-utils.mjs +2086 -0
  216. package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -0
  217. package/fesm2022/hermes-ui-angular-wizard.mjs +3074 -0
  218. package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -0
  219. package/fesm2022/hermes-ui-angular.mjs +130 -0
  220. package/fesm2022/hermes-ui-angular.mjs.map +1 -0
  221. package/forms/combobox/_combobox.clarity.scss +330 -0
  222. package/forms/combobox/_properties.combobox.scss +46 -0
  223. package/forms/combobox/_variables.combobox.scss +32 -0
  224. package/forms/datepicker/_datepicker.clarity.scss +259 -0
  225. package/forms/datepicker/_mixins.datepicker.scss +89 -0
  226. package/forms/datepicker/_properties.datepicker.scss +46 -0
  227. package/forms/datepicker/_variables.datepicker.scss +74 -0
  228. package/forms/styles/_checkbox.clarity.scss +193 -0
  229. package/forms/styles/_containers.clarity.scss +230 -0
  230. package/forms/styles/_datalist.clarity.scss +47 -0
  231. package/forms/styles/_file-input.clarity.scss +134 -0
  232. package/forms/styles/_file.clarity.scss +52 -0
  233. package/forms/styles/_form.clarity.scss +87 -0
  234. package/forms/styles/_input-group.clarity.scss +126 -0
  235. package/forms/styles/_input.clarity.scss +83 -0
  236. package/forms/styles/_mixins.forms.scss +193 -0
  237. package/forms/styles/_native-select.clarity.scss +178 -0
  238. package/forms/styles/_number-input.clarity.scss +58 -0
  239. package/forms/styles/_password.clarity.scss +26 -0
  240. package/forms/styles/_properties.forms.scss +180 -0
  241. package/forms/styles/_radio.clarity.scss +120 -0
  242. package/forms/styles/_range.clarity.scss +124 -0
  243. package/forms/styles/_select.clarity.scss +158 -0
  244. package/forms/styles/_textarea.clarity.scss +71 -0
  245. package/forms/styles/_toggles.clarity.scss +209 -0
  246. package/forms/styles/_variables.forms.scss +156 -0
  247. package/hermes-ui.scss +7 -0
  248. package/icon/icon.component.scss +247 -0
  249. package/image/_icons.clarity.scss +101 -0
  250. package/image/_images.clarity.scss +42 -0
  251. package/image/_mixins.images.scss +11 -0
  252. package/layout/_card.clarity.scss +318 -0
  253. package/layout/_login.clarity.scss +240 -0
  254. package/layout/_properties.card.scss +39 -0
  255. package/layout/_properties.login.scss +32 -0
  256. package/layout/_variables.card.scss +24 -0
  257. package/layout/_variables.login.scss +22 -0
  258. package/layout/breadcrumbs/_breadcrumbs.clarity.scss +60 -0
  259. package/layout/breadcrumbs/_properties.breadcrumbs.scss +18 -0
  260. package/layout/breadcrumbs/_variables.breadcrumbs.scss +11 -0
  261. package/layout/grid/_grid.scss +23 -0
  262. package/layout/grid/grid/_grid.scss +39 -0
  263. package/layout/grid/mixins/_breakpoint.scss +83 -0
  264. package/layout/grid/mixins/_clearfix.scss +13 -0
  265. package/layout/grid/mixins/_grid-framework.scss +91 -0
  266. package/layout/grid/mixins/_grid.scss +39 -0
  267. package/layout/grid/utilities/_align.scss +30 -0
  268. package/layout/grid/utilities/_clearfix.scss +12 -0
  269. package/layout/grid/utilities/_display.scss +18 -0
  270. package/layout/grid/utilities/_flex.scss +222 -0
  271. package/layout/grid/utilities/_float.scss +26 -0
  272. package/layout/grid/utilities/_visibility.scss +60 -0
  273. package/layout/main-container/_layout.clarity.scss +87 -0
  274. package/layout/main-container/_properties.header.scss +55 -0
  275. package/layout/main-container/_variables.header.scss +32 -0
  276. package/layout/nav/_header.clarity.scss +40 -0
  277. package/layout/nav/_links.clarity.scss +84 -0
  278. package/layout/nav/_mixins.header.scss +332 -0
  279. package/layout/nav/_mixins.responsive-nav.scss +75 -0
  280. package/layout/nav/_nav.clarity.scss +100 -0
  281. package/layout/nav/_properties.nav.scss +27 -0
  282. package/layout/nav/_properties.responsive-nav.scss +23 -0
  283. package/layout/nav/_properties.subnav.scss +19 -0
  284. package/layout/nav/_responsive-nav.clarity.scss +490 -0
  285. package/layout/nav/_subnav.clarity.scss +48 -0
  286. package/layout/nav/_variables.nav.scss +13 -0
  287. package/layout/nav/_variables.responsive-nav.scss +28 -0
  288. package/layout/nav/_variables.subnav.scss +21 -0
  289. package/layout/tabs/_mixins.tabs.scss +41 -0
  290. package/layout/tabs/_properties.tabs.scss +25 -0
  291. package/layout/tabs/_tabs.clarity.scss +110 -0
  292. package/layout/tabs/_variables.tabs.scss +17 -0
  293. package/layout/vertical-nav/_mixins.vertical-nav.scss +52 -0
  294. package/layout/vertical-nav/_properties.vertical-nav.scss +73 -0
  295. package/layout/vertical-nav/_variables.vertical-nav.scss +52 -0
  296. package/layout/vertical-nav/_vertical-nav.clarity.scss +469 -0
  297. package/main.scss +14 -0
  298. package/modal/_modal.clarity.scss +379 -0
  299. package/modal/_properties.modal.scss +57 -0
  300. package/modal/_variables.modal.scss +41 -0
  301. package/package.json +325 -0
  302. package/popover/common/README.md +112 -0
  303. package/popover/common/_popover.clarity.scss +28 -0
  304. package/popover/dropdown/_dropdown.clarity.scss +326 -0
  305. package/popover/dropdown/_menu-mixins.clarity.scss +132 -0
  306. package/popover/dropdown/_properties.dropdown.scss +50 -0
  307. package/popover/dropdown/_variables.dropdown.scss +36 -0
  308. package/popover/signpost/_properties.signpost.scss +34 -0
  309. package/popover/signpost/_signposts.clarity.scss +414 -0
  310. package/popover/signpost/_variables.signpost.scss +21 -0
  311. package/popover/tooltip/_mixins.tooltip.scss +186 -0
  312. package/popover/tooltip/_properties.tooltip.scss +28 -0
  313. package/popover/tooltip/_tooltips.clarity.scss +122 -0
  314. package/popover/tooltip/_variables.tooltip.scss +20 -0
  315. package/progress/progress-bars/_progress-bars.clarity.scss +616 -0
  316. package/progress/progress-bars/_properties.progress-bars.scss +24 -0
  317. package/progress/progress-bars/_variables.progress-bars.scss +15 -0
  318. package/progress/progress-bars/utils/_mixins.clarity.scss +18 -0
  319. package/progress/spinner/_mixins.spinner.scss +30 -0
  320. package/progress/spinner/_properties.spinner.scss +37 -0
  321. package/progress/spinner/_spinner.clarity.scss +148 -0
  322. package/progress/spinner/_variables.spinner.scss +25 -0
  323. package/schematics/collection.json +14 -0
  324. package/stepper/_properties.stepper.scss +29 -0
  325. package/stepper/_stepper.clarity.scss +184 -0
  326. package/stepper/_variables.stepper.scss +13 -0
  327. package/styles/_a11y.scss +14 -0
  328. package/styles/_close.clarity.scss +60 -0
  329. package/styles/_components.clarity.scss +189 -0
  330. package/styles/_mixins.scss +460 -0
  331. package/styles/_normalize.scss +292 -0
  332. package/styles/_reboot.clarity.scss +374 -0
  333. package/styles/_variables.clarity.scss +139 -0
  334. package/styles/core/base/base.element.scss +97 -0
  335. package/styles/core/global.scss +12 -0
  336. package/styles/core/layout/_alignments.scss +18 -0
  337. package/styles/core/layout/_container.scss +29 -0
  338. package/styles/core/layout/_display.scss +58 -0
  339. package/styles/core/layout/_optimize.scss +60 -0
  340. package/styles/core/layout/_shadow-dom.scss +47 -0
  341. package/styles/core/layout/_spacing.scss +31 -0
  342. package/styles/core/layout/_type-grid.scss +66 -0
  343. package/styles/core/layout/_type-horizontal.scss +33 -0
  344. package/styles/core/layout/_type-vertical.scss +26 -0
  345. package/styles/core/layout/mixins/_mixins.alignment.scss +35 -0
  346. package/styles/core/layout/mixins/_mixins.display.scss +23 -0
  347. package/styles/core/layout/mixins/_mixins.grid.scss +105 -0
  348. package/styles/core/layout/mixins/_mixins.scss +106 -0
  349. package/styles/core/layout/mixins/_mixins.shadow-dom.scss +106 -0
  350. package/styles/core/layout/mixins/_mixins.type-horizontal.scss +113 -0
  351. package/styles/core/layout/mixins/_mixins.type-vertical.scss +108 -0
  352. package/styles/core/module.layout.scss +22 -0
  353. package/styles/core/module.reset.scss +48 -0
  354. package/styles/core/module.typography.scss +9 -0
  355. package/styles/core/theme.dark.scss +298 -0
  356. package/styles/core/theme.high-contrast.scss +42 -0
  357. package/styles/core/theme.low-motion.scss +20 -0
  358. package/styles/core/tokens/_alias-interaction.scss +74 -0
  359. package/styles/core/tokens/_alias-object-background.scss +29 -0
  360. package/styles/core/tokens/_alias-object-border.scss +21 -0
  361. package/styles/core/tokens/_alias-object-container.scss +20 -0
  362. package/styles/core/tokens/_alias-object-opacity.scss +15 -0
  363. package/styles/core/tokens/_alias-object-shadow.scss +17 -0
  364. package/styles/core/tokens/_alias-primary.scss +21 -0
  365. package/styles/core/tokens/_alias-status.scss +40 -0
  366. package/styles/core/tokens/_alias-typography.scss +107 -0
  367. package/styles/core/tokens/_alias-utility.scss +42 -0
  368. package/styles/core/tokens/_alias-viz-colors.scss +170 -0
  369. package/styles/core/tokens/_global-animation.scss +32 -0
  370. package/styles/core/tokens/_global-colors.scss +249 -0
  371. package/styles/core/tokens/_global-space.scss +52 -0
  372. package/styles/core/tokens/_internal-scale.scss +14 -0
  373. package/styles/core/tokens/_properties.tokens.scss +22 -0
  374. package/styles/core/tokens/_variables.tokens.scss +787 -0
  375. package/styles/core/typography/_legacy-typography.scss +328 -0
  376. package/styles/core/typography/_mixins.typography.scss +18 -0
  377. package/styles/core/typography/_typography.scss +328 -0
  378. package/styles/variables/_properties.density.scss +225 -0
  379. package/styles/variables/_properties.global.scss +51 -0
  380. package/styles/variables/_properties.layout.scss +21 -0
  381. package/styles/variables/_properties.scss +11 -0
  382. package/styles/variables/_properties.typography.scss +164 -0
  383. package/styles/variables/_variables.density.scss +116 -0
  384. package/styles/variables/_variables.global.scss +87 -0
  385. package/styles/variables/_variables.layout.scss +37 -0
  386. package/styles/variables/_variables.scss +11 -0
  387. package/styles/variables/_variables.typography.scss +156 -0
  388. package/timeline/_properties.timeline.scss +38 -0
  389. package/timeline/_timeline.clarity.scss +172 -0
  390. package/timeline/_variables.timeline.scss +29 -0
  391. package/toast/README.md +65 -0
  392. package/toast/_properties.toast.scss +56 -0
  393. package/toast/_toast.clarity.scss +190 -0
  394. package/toast/_variables.toast.scss +33 -0
  395. package/types/hermes-ui-angular-accordion.d.ts +101 -0
  396. package/types/hermes-ui-angular-accordion.d.ts.map +1 -0
  397. package/types/hermes-ui-angular-addons-a11y.d.ts +187 -0
  398. package/types/hermes-ui-angular-addons-a11y.d.ts.map +1 -0
  399. package/types/hermes-ui-angular-addons-card-container.d.ts +482 -0
  400. package/types/hermes-ui-angular-addons-card-container.d.ts.map +1 -0
  401. package/types/hermes-ui-angular-addons-certificate-viewer.d.ts +404 -0
  402. package/types/hermes-ui-angular-addons-certificate-viewer.d.ts.map +1 -0
  403. package/types/hermes-ui-angular-addons-datagrid-filters.d.ts +911 -0
  404. package/types/hermes-ui-angular-addons-datagrid-filters.d.ts.map +1 -0
  405. package/types/hermes-ui-angular-addons-datagrid.d.ts +1529 -0
  406. package/types/hermes-ui-angular-addons-datagrid.d.ts.map +1 -0
  407. package/types/hermes-ui-angular-addons-dialog.d.ts +233 -0
  408. package/types/hermes-ui-angular-addons-dialog.d.ts.map +1 -0
  409. package/types/hermes-ui-angular-addons-drag-and-drop.d.ts +35 -0
  410. package/types/hermes-ui-angular-addons-drag-and-drop.d.ts.map +1 -0
  411. package/types/hermes-ui-angular-addons-menu.d.ts +197 -0
  412. package/types/hermes-ui-angular-addons-menu.d.ts.map +1 -0
  413. package/types/hermes-ui-angular-addons-property-view.d.ts +387 -0
  414. package/types/hermes-ui-angular-addons-property-view.d.ts.map +1 -0
  415. package/types/hermes-ui-angular-addons-stepper.d.ts +298 -0
  416. package/types/hermes-ui-angular-addons-stepper.d.ts.map +1 -0
  417. package/types/hermes-ui-angular-addons-tabs.d.ts +173 -0
  418. package/types/hermes-ui-angular-addons-tabs.d.ts.map +1 -0
  419. package/types/hermes-ui-angular-addons-testing.d.ts +592 -0
  420. package/types/hermes-ui-angular-addons-testing.d.ts.map +1 -0
  421. package/types/hermes-ui-angular-addons-theme-builder.d.ts +200 -0
  422. package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -0
  423. package/types/hermes-ui-angular-addons-translate.d.ts +149 -0
  424. package/types/hermes-ui-angular-addons-translate.d.ts.map +1 -0
  425. package/types/hermes-ui-angular-addons-var.d.ts +923 -0
  426. package/types/hermes-ui-angular-addons-var.d.ts.map +1 -0
  427. package/types/hermes-ui-angular-addons-wizard.d.ts +241 -0
  428. package/types/hermes-ui-angular-addons-wizard.d.ts.map +1 -0
  429. package/types/hermes-ui-angular-addons-workflow-strings.d.ts +124 -0
  430. package/types/hermes-ui-angular-addons-workflow-strings.d.ts.map +1 -0
  431. package/types/hermes-ui-angular-addons-workflow.d.ts +15 -0
  432. package/types/hermes-ui-angular-addons-workflow.d.ts.map +1 -0
  433. package/types/hermes-ui-angular-button.d.ts +170 -0
  434. package/types/hermes-ui-angular-button.d.ts.map +1 -0
  435. package/types/hermes-ui-angular-collapsible-panel.d.ts +74 -0
  436. package/types/hermes-ui-angular-collapsible-panel.d.ts.map +1 -0
  437. package/types/hermes-ui-angular-data-datagrid.d.ts +1938 -0
  438. package/types/hermes-ui-angular-data-datagrid.d.ts.map +1 -0
  439. package/types/hermes-ui-angular-data-stack-view.d.ts +88 -0
  440. package/types/hermes-ui-angular-data-stack-view.d.ts.map +1 -0
  441. package/types/hermes-ui-angular-data-tree-view.d.ts +230 -0
  442. package/types/hermes-ui-angular-data-tree-view.d.ts.map +1 -0
  443. package/types/hermes-ui-angular-data.d.ts +16 -0
  444. package/types/hermes-ui-angular-data.d.ts.map +1 -0
  445. package/types/hermes-ui-angular-emphasis-alert.d.ts +176 -0
  446. package/types/hermes-ui-angular-emphasis-alert.d.ts.map +1 -0
  447. package/types/hermes-ui-angular-emphasis-badge.d.ts +26 -0
  448. package/types/hermes-ui-angular-emphasis-badge.d.ts.map +1 -0
  449. package/types/hermes-ui-angular-emphasis-common.d.ts +7 -0
  450. package/types/hermes-ui-angular-emphasis-common.d.ts.map +1 -0
  451. package/types/hermes-ui-angular-emphasis-label.d.ts +30 -0
  452. package/types/hermes-ui-angular-emphasis-label.d.ts.map +1 -0
  453. package/types/hermes-ui-angular-emphasis.d.ts +16 -0
  454. package/types/hermes-ui-angular-emphasis.d.ts.map +1 -0
  455. package/types/hermes-ui-angular-forms-checkbox.d.ts +73 -0
  456. package/types/hermes-ui-angular-forms-checkbox.d.ts.map +1 -0
  457. package/types/hermes-ui-angular-forms-combobox.d.ts +354 -0
  458. package/types/hermes-ui-angular-forms-combobox.d.ts.map +1 -0
  459. package/types/hermes-ui-angular-forms-common.d.ts +340 -0
  460. package/types/hermes-ui-angular-forms-common.d.ts.map +1 -0
  461. package/types/hermes-ui-angular-forms-datalist.d.ts +60 -0
  462. package/types/hermes-ui-angular-forms-datalist.d.ts.map +1 -0
  463. package/types/hermes-ui-angular-forms-datepicker.d.ts +987 -0
  464. package/types/hermes-ui-angular-forms-datepicker.d.ts.map +1 -0
  465. package/types/hermes-ui-angular-forms-file-input.d.ts +194 -0
  466. package/types/hermes-ui-angular-forms-file-input.d.ts.map +1 -0
  467. package/types/hermes-ui-angular-forms-input.d.ts +30 -0
  468. package/types/hermes-ui-angular-forms-input.d.ts.map +1 -0
  469. package/types/hermes-ui-angular-forms-native-select.d.ts +37 -0
  470. package/types/hermes-ui-angular-forms-native-select.d.ts.map +1 -0
  471. package/types/hermes-ui-angular-forms-number-input.d.ts +44 -0
  472. package/types/hermes-ui-angular-forms-number-input.d.ts.map +1 -0
  473. package/types/hermes-ui-angular-forms-password.d.ts +53 -0
  474. package/types/hermes-ui-angular-forms-password.d.ts.map +1 -0
  475. package/types/hermes-ui-angular-forms-radio.d.ts +50 -0
  476. package/types/hermes-ui-angular-forms-radio.d.ts.map +1 -0
  477. package/types/hermes-ui-angular-forms-range.d.ts +38 -0
  478. package/types/hermes-ui-angular-forms-range.d.ts.map +1 -0
  479. package/types/hermes-ui-angular-forms-select.d.ts +211 -0
  480. package/types/hermes-ui-angular-forms-select.d.ts.map +1 -0
  481. package/types/hermes-ui-angular-forms-textarea.d.ts +30 -0
  482. package/types/hermes-ui-angular-forms-textarea.d.ts.map +1 -0
  483. package/types/hermes-ui-angular-forms.d.ts +39 -0
  484. package/types/hermes-ui-angular-forms.d.ts.map +1 -0
  485. package/types/hermes-ui-angular-icon.d.ts +1504 -0
  486. package/types/hermes-ui-angular-icon.d.ts.map +1 -0
  487. package/types/hermes-ui-angular-layout-breadcrumbs.d.ts +46 -0
  488. package/types/hermes-ui-angular-layout-breadcrumbs.d.ts.map +1 -0
  489. package/types/hermes-ui-angular-layout-main-container.d.ts +29 -0
  490. package/types/hermes-ui-angular-layout-main-container.d.ts.map +1 -0
  491. package/types/hermes-ui-angular-layout-nav.d.ts +143 -0
  492. package/types/hermes-ui-angular-layout-nav.d.ts.map +1 -0
  493. package/types/hermes-ui-angular-layout-tabs.d.ts +159 -0
  494. package/types/hermes-ui-angular-layout-tabs.d.ts.map +1 -0
  495. package/types/hermes-ui-angular-layout-vertical-nav.d.ts +129 -0
  496. package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -0
  497. package/types/hermes-ui-angular-layout.d.ts +20 -0
  498. package/types/hermes-ui-angular-layout.d.ts.map +1 -0
  499. package/types/hermes-ui-angular-modal.d.ts +161 -0
  500. package/types/hermes-ui-angular-modal.d.ts.map +1 -0
  501. package/types/hermes-ui-angular-popover-common.d.ts +317 -0
  502. package/types/hermes-ui-angular-popover-common.d.ts.map +1 -0
  503. package/types/hermes-ui-angular-popover-dropdown.d.ts +124 -0
  504. package/types/hermes-ui-angular-popover-dropdown.d.ts.map +1 -0
  505. package/types/hermes-ui-angular-popover-signpost.d.ts +158 -0
  506. package/types/hermes-ui-angular-popover-signpost.d.ts.map +1 -0
  507. package/types/hermes-ui-angular-popover-tooltip.d.ts +84 -0
  508. package/types/hermes-ui-angular-popover-tooltip.d.ts.map +1 -0
  509. package/types/hermes-ui-angular-popover.d.ts +17 -0
  510. package/types/hermes-ui-angular-popover.d.ts.map +1 -0
  511. package/types/hermes-ui-angular-progress-progress-bars.d.ts +58 -0
  512. package/types/hermes-ui-angular-progress-progress-bars.d.ts.map +1 -0
  513. package/types/hermes-ui-angular-progress-spinner.d.ts +45 -0
  514. package/types/hermes-ui-angular-progress-spinner.d.ts.map +1 -0
  515. package/types/hermes-ui-angular-stepper.d.ts +180 -0
  516. package/types/hermes-ui-angular-stepper.d.ts.map +1 -0
  517. package/types/hermes-ui-angular-timeline.d.ts +87 -0
  518. package/types/hermes-ui-angular-timeline.d.ts.map +1 -0
  519. package/types/hermes-ui-angular-toast.d.ts +131 -0
  520. package/types/hermes-ui-angular-toast.d.ts.map +1 -0
  521. package/types/hermes-ui-angular-utils-conditional.d.ts +133 -0
  522. package/types/hermes-ui-angular-utils-conditional.d.ts.map +1 -0
  523. package/types/hermes-ui-angular-utils-loading.d.ts +39 -0
  524. package/types/hermes-ui-angular-utils-loading.d.ts.map +1 -0
  525. package/types/hermes-ui-angular-utils.d.ts +914 -0
  526. package/types/hermes-ui-angular-utils.d.ts.map +1 -0
  527. package/types/hermes-ui-angular-wizard.d.ts +1509 -0
  528. package/types/hermes-ui-angular-wizard.d.ts.map +1 -0
  529. package/types/hermes-ui-angular.d.ts +44 -0
  530. package/types/hermes-ui-angular.d.ts.map +1 -0
  531. package/typography/_code.scss +36 -0
  532. package/typography/_font-metropolis.scss +45 -0
  533. package/typography/_lists.scss +81 -0
  534. package/typography/_typography.scss +322 -0
  535. package/utils/animations/_animations.clarity.scss +44 -0
  536. package/utils/animations/_mixins.animations.scss +33 -0
  537. package/wizard/_properties.wizard.scss +54 -0
  538. package/wizard/_variables.wizard.scss +59 -0
  539. package/wizard/_wizard.clarity.scss +692 -0
@@ -0,0 +1,610 @@
1
+ import * as i6 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Component, EventEmitter, Input, ViewChildren, ViewChild, Output, Optional, Inject, NgModule } from '@angular/core';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import * as i1 from '@hermes-ui/angular/addons/property-view';
7
+ import { PropertyViewBuilder, PropertyViewModule } from '@hermes-ui/angular/addons/property-view';
8
+ import * as i1$1 from '@hermes-ui/angular/addons/var';
9
+ import { StepValidationState, formatError, modalServiceToken, WorkflowModelMonitor, StepContainer, RelevanceService, WorkflowModelManager, AppfxWorkflowCoreModule } from '@hermes-ui/angular/addons/var';
10
+ import * as i5 from '@hermes-ui/angular/icon';
11
+ import { ClarityIcons, dotCircleIcon, HermesIcon } from '@hermes-ui/angular/icon';
12
+ import * as i4 from '@hermes-ui/angular/wizard';
13
+ import { HermesWizardModule } from '@hermes-ui/angular/wizard';
14
+ import * as i3 from '@hermes-ui/angular/addons/a11y';
15
+ import { ZoomLevel } from '@hermes-ui/angular/addons/a11y';
16
+ import { ReplaySubject, Subject, Subscription, combineLatest, of } from 'rxjs';
17
+ import { take, filter, switchMap, map, tap } from 'rxjs/operators';
18
+ import * as i2 from '@hermes-ui/angular/addons/workflow/strings';
19
+
20
+ /*
21
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
22
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
23
+ * This software is released under MIT license.
24
+ * The full license information can be found in LICENSE in the root directory of this project.
25
+ */
26
+ /**
27
+ * This is re-usable summary component that can be used as last step of the Wizard.
28
+ * The data required by this component comes from the PropertyViewSectionModel returned by Step#summary
29
+ */
30
+ class SummaryComponent {
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: SummaryComponent, isStandalone: false, selector: "appfx-summary", ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<appfx-property-view *ngIf=\"model?.data\" [data]=\"model.data\"></appfx-property-view>\r\n", styles: ["appfx-property-view{height:unset}appfx-property-view ::ng-deep appfx-property-view-category{padding-left:unset}appfx-property-view ::ng-deep .table td,appfx-property-view ::ng-deep .table th{font-size:unset!important;background:none}\n"], dependencies: [{ kind: "component", type: i1.PropertyViewComponent, selector: "appfx-property-view", inputs: ["data", "config"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SummaryComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'appfx-summary', standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<appfx-property-view *ngIf=\"model?.data\" [data]=\"model.data\"></appfx-property-view>\r\n", styles: ["appfx-property-view{height:unset}appfx-property-view ::ng-deep appfx-property-view-category{padding-left:unset}appfx-property-view ::ng-deep .table td,appfx-property-view ::ng-deep .table th{font-size:unset!important;background:none}\n"] }]
37
+ }] });
38
+
39
+ /*
40
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
41
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
42
+ * This software is released under MIT license.
43
+ * The full license information can be found in LICENSE in the root directory of this project.
44
+ */
45
+ class SummaryModel {
46
+ constructor() {
47
+ this.loading = false;
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Component used to render the composition of wizard page components and apply the base
53
+ * wizard workflow provided by the clarity wizard component.
54
+ */
55
+ class WizardComponent {
56
+ #pages;
57
+ #opened;
58
+ #wizardModel;
59
+ constructor(cdr, modelMgr, relevanceService, configService, workflowStrings, zoomLevelService,
60
+ /**
61
+ * openModalComponent = undefined - Wizard is used without ModalService
62
+ * openModalComponent = true - opened using ModalService.openModalComponent API
63
+ * openModalComponent = false - opened using ModalService.openModal API
64
+ */
65
+ openModalComponent) {
66
+ this.cdr = cdr;
67
+ this.modelMgr = modelMgr;
68
+ this.relevanceService = relevanceService;
69
+ this.configService = configService;
70
+ this.workflowStrings = workflowStrings;
71
+ this.zoomLevelService = zoomLevelService;
72
+ this.loading = false;
73
+ /**
74
+ * Clarity Wizard size - 'md', 'lg', 'xl' and 'full-screen'.
75
+ * Default is 'lg'.
76
+ */
77
+ this.size = 'lg';
78
+ /**
79
+ * Emits when {@link opened} input is changed.
80
+ */
81
+ this.openedChange = new EventEmitter();
82
+ /**
83
+ * Dispatches when any of the workflow state's variables changes.
84
+ */
85
+ this.onModelChange = new EventEmitter();
86
+ /**
87
+ * Dispatched when the wizard is finishing via the Finish button.
88
+ * You can perform the actions you want there (i.e modify or create something)
89
+ */
90
+ this.onFinish = new EventEmitter();
91
+ /**
92
+ * Dispatched when the wizard is closed (in all three cases: via the close button
93
+ * or the cancel button or the finish button)
94
+ */
95
+ this.onClose = new EventEmitter();
96
+ this.ZoomLevel = ZoomLevel;
97
+ this.showNav = false;
98
+ this.activeStepIndex = 1;
99
+ this.closeHandlerValidationState = new StepValidationState();
100
+ this.awaitingWizardPageOnLoad$ = new ReplaySubject(Infinity);
101
+ this.componentAfterViewInit$ = new Subject();
102
+ this.subscriptions = new Subscription();
103
+ this.errorActivatingStep = false;
104
+ this.#opened = true;
105
+ if (openModalComponent === false) {
106
+ // This means that the Wizard was opened using ModalService, but using wrong method.
107
+ throw new Error('AppFx Wizard must be opened using ModalService.openModalComponent method.');
108
+ }
109
+ ClarityIcons.addIcons(dotCircleIcon);
110
+ }
111
+ /**
112
+ * The descriptions of the pages that are visualized.
113
+ */
114
+ get pages() {
115
+ return this.#pages;
116
+ }
117
+ set pages(value) {
118
+ if (value && value.some(step => !!step.summary)) {
119
+ // if at least one step has summary defined, append summary page.
120
+ this.appendSummaryPage(value);
121
+ this.subscriptions.add(this.relevanceService.onStepRelevanceChange$().subscribe(() => {
122
+ this.recalculateSummaryPageSkipState();
123
+ }));
124
+ }
125
+ this.relevanceService.steps = value;
126
+ this.subscriptions.add(this.relevanceService
127
+ .checkComplete$()
128
+ .pipe(take(1))
129
+ .subscribe((steps) => {
130
+ this.#pages = steps;
131
+ this.modelMgr.steps = steps;
132
+ this.recalculateSummaryPageSkipState();
133
+ }));
134
+ }
135
+ get pagesInternal() {
136
+ return this.#pages;
137
+ }
138
+ /**
139
+ * You can supply here any structure you like. As long as it has the
140
+ * needed properties to inject to the page models and eject back from
141
+ * the page models.
142
+ *
143
+ * If not specified, the pages will simply stay disconnected from each other,
144
+ * so you would need other means of communication between them.
145
+ */
146
+ get wizardModel() {
147
+ return this.#wizardModel;
148
+ }
149
+ set wizardModel(value) {
150
+ this.#wizardModel = value;
151
+ this.modelMgr.model = value;
152
+ }
153
+ /**
154
+ * Open/close the wizard. Default value is `true`.
155
+ * If the wizard is closed and then re-opened again, the wizard is reset.
156
+ *
157
+ * This input should not be set when the wizard is opened through the ModalService.
158
+ * Its primary use case is when the wizard is used outside vSphere UI.
159
+ */
160
+ get opened() {
161
+ return this.#opened;
162
+ }
163
+ set opened(value) {
164
+ if (!this.#opened && value) {
165
+ // The wizard was closed and is re-opened.
166
+ this.reset();
167
+ }
168
+ this.#opened = value;
169
+ this.openedChange.next(value);
170
+ }
171
+ // Accessible from the component HTML
172
+ get isLoading() {
173
+ return (this.loading || // explicitly set as busy
174
+ this.relevanceService.loading || // check if relevanceCheck computation in progress
175
+ // additionally inspect pages containers and see if any one is loading
176
+ (!!this.pagesContainers &&
177
+ this.pagesContainers.some((value) => !!value.step.modelInstance && !!value.step.modelInstance.loading)));
178
+ }
179
+ get pageProgressDetails() {
180
+ return this.activeStep?.modelInstance?.progressStatus || '';
181
+ }
182
+ get showProgressCancelButton() {
183
+ return typeof this.activeStep?.modelInstance?.cancelableValidation?.cancelValidation === 'function';
184
+ }
185
+ get cancelValidationButtonLabel() {
186
+ return this.activeStep?.modelInstance?.cancelableValidation?.cancelButtonLabel || '';
187
+ }
188
+ get isSignPostOpen() {
189
+ return !!(this.debugPopup && this.debugPopup.isOpen);
190
+ }
191
+ get isNextButtonDisabled() {
192
+ return this.isLoading || this.errorActivatingStep || (this.activePage ? !this.activePage.readyToComplete : false);
193
+ }
194
+ cancelPageValidation() {
195
+ if (typeof this.activeStep?.modelInstance?.cancelableValidation?.cancelValidation === 'function') {
196
+ this.activeStep?.modelInstance?.cancelableValidation.cancelValidation();
197
+ }
198
+ }
199
+ ngOnInit() {
200
+ this.subscriptions.add(this.modelMgr.onModelChange$.subscribe((changes) => {
201
+ this.onModelChange.emit(changes);
202
+ this.invalidateNextSteps();
203
+ }));
204
+ this.subscriptions.add(this.modelMgr.loading$.subscribe((loading) => {
205
+ this.loading = loading;
206
+ this.cdr.detectChanges();
207
+ }));
208
+ if (this.zoomLevelService) {
209
+ this.subscriptions.add(this.zoomLevelService.onChange.subscribe((level) => {
210
+ this.currentZoomLevel = level;
211
+ this.cdr.detectChanges();
212
+ }));
213
+ }
214
+ }
215
+ ngOnDestroy() {
216
+ this.pages = [];
217
+ this.activeStep = undefined;
218
+ this.subscriptions.unsubscribe();
219
+ this.unsubscribeRetry();
220
+ this.relevanceService.destroy();
221
+ this.modelMgr.destroy();
222
+ }
223
+ ngAfterViewInit() {
224
+ this.patchWizardNavigationService();
225
+ if (this.pagesContainers.length) {
226
+ // If relevance checks are fast enough (or there are no relevance checks), _pagesContainers will be initialized.
227
+ this.componentAfterViewInit$.next();
228
+ }
229
+ else {
230
+ // Relevance checks may take some time, wait for _pagesContainers to initialize
231
+ this.pagesContainers.changes.pipe(take(1)).subscribe(() => this.componentAfterViewInit$.next());
232
+ }
233
+ }
234
+ ngAfterContentInit() {
235
+ // upon getting a wizard page onLoad signal and safely ensuring component has instantiated itself with `AppfxWizardPage`
236
+ // elements in the template, only then activate the pending container
237
+ this.subscriptions.add(combineLatest([this.componentAfterViewInit$, this.awaitingWizardPageOnLoad$])
238
+ .pipe(filter(() => !!this.pagesContainers), switchMap(([, pendingStep]) => this.modelMgr.injectPropertiesToPendingStep(pendingStep)))
239
+ .subscribe(result => {
240
+ this.errorActivatingStep = !!result.error;
241
+ this.activatePendingContainer(result);
242
+ }));
243
+ }
244
+ onWizardPageActivated(page) {
245
+ this.showNav = false;
246
+ this.awaitingWizardPageOnLoad$.next(page);
247
+ }
248
+ onWizardCommit() {
249
+ this.commitActiveStep()
250
+ .pipe(take(1), filter(isValid => isValid))
251
+ .subscribe(() => {
252
+ if (this.wizard.navService.currentPageIsLast) {
253
+ const close$ = this.closeHandler?.onSubmit?.() || of("finish" /* Reason.finish */);
254
+ this.subscribeForFinishHandler(close$);
255
+ }
256
+ else {
257
+ this.wizard.forceNext();
258
+ }
259
+ });
260
+ }
261
+ onWizardCancel() {
262
+ if (!this.wizard) {
263
+ return;
264
+ }
265
+ this.subscribeForCloseHandler(this.closeHandler?.onCancel?.() || of("cancel" /* Reason.cancel */));
266
+ }
267
+ onWizardBack() {
268
+ if (!this.wizard) {
269
+ return;
270
+ }
271
+ // Hide the loading indicator of the current page, if any.
272
+ if (this.activeStep && this.activeStep.modelInstance) {
273
+ this.activeStep.modelInstance.loading = false;
274
+ }
275
+ this.wizard.navService.previous();
276
+ }
277
+ openStepNavPanel() {
278
+ this.showNav = true;
279
+ }
280
+ subscribeForFinishHandler(finish$) {
281
+ this.loading = true;
282
+ finish$.subscribe({
283
+ error: (error) => {
284
+ this.loading = false;
285
+ if (error !== preventDisplayingWizardError) {
286
+ this.closeHandlerValidationState.errors = [
287
+ formatError(error).data.message || this.workflowStrings.defaultWizardSubmitError,
288
+ ];
289
+ }
290
+ },
291
+ complete: () => {
292
+ this.loading = false;
293
+ this.closeHandlerValidationState.errors = [];
294
+ this.onFinish.emit();
295
+ this.wizard.forceFinish();
296
+ this.closeWizard("finish" /* Reason.finish */);
297
+ },
298
+ });
299
+ }
300
+ subscribeForCloseHandler(close$) {
301
+ this.loading = true;
302
+ close$.subscribe({
303
+ error: (error) => {
304
+ this.loading = false;
305
+ if (error !== preventDisplayingWizardError) {
306
+ this.closeHandlerValidationState.errors = [
307
+ formatError(error).data.message || this.workflowStrings.defaultWizardSubmitError,
308
+ ];
309
+ }
310
+ },
311
+ complete: () => {
312
+ this.loading = false;
313
+ this.closeHandlerValidationState.errors = [];
314
+ this.wizard.close();
315
+ this.closeWizard("cancel" /* Reason.cancel */);
316
+ },
317
+ });
318
+ }
319
+ closeWizard(reason) {
320
+ this.onClose.emit(reason);
321
+ }
322
+ appendSummaryPage(steps) {
323
+ const summaryModel = new SummaryModel();
324
+ this.summaryStep = {
325
+ title: this.workflowStrings.summary.title,
326
+ description: this.workflowStrings.summary.description,
327
+ componentClass: SummaryComponent,
328
+ model: () => {
329
+ const propertyViewModelBuilder = new PropertyViewBuilder();
330
+ const propertyViewModel = propertyViewModelBuilder.build();
331
+ const categoryBuilder = propertyViewModelBuilder.generateAllCategory(''); // No title for category.
332
+ const category = categoryBuilder.build();
333
+ const sections = this.#pages
334
+ .filter(step => !step.isSkipped && !!step.summary)
335
+ .map(step => step.summary?.(categoryBuilder.section(step.title).title(step.navTitle || step.title), step.modelInstance));
336
+ category.content = sections;
337
+ propertyViewModel.categories = [category];
338
+ summaryModel.data = propertyViewModel;
339
+ return summaryModel;
340
+ },
341
+ instantiateLazy: true,
342
+ recreateComponent: () => true,
343
+ };
344
+ steps.push(this.summaryStep);
345
+ }
346
+ commitActiveStep() {
347
+ if (!this.activePage) {
348
+ return of(false);
349
+ }
350
+ this.loading = true;
351
+ return this.activePage.onCommit().pipe(switchMap(isValid => {
352
+ if (isValid) {
353
+ this.modelMgr.ejectPropertiesFromCurrentStep(this.activeStep);
354
+ return this.relevanceService.checkComplete$().pipe(map(() => {
355
+ return isValid;
356
+ }));
357
+ }
358
+ return of(isValid);
359
+ }), tap(() => {
360
+ this.loading = false;
361
+ this.cdr.detectChanges();
362
+ }));
363
+ }
364
+ activatePendingContainer(result) {
365
+ this.unsubscribeRetry();
366
+ const pendingPage = this.pagesContainers.find((item) => item.step === result.pendingStep);
367
+ if (pendingPage) {
368
+ if (result.error) {
369
+ this.retrySubscription = pendingPage.onRetry
370
+ .pipe(take(1))
371
+ .subscribe((step) => this.retryStepTransition(step));
372
+ }
373
+ else {
374
+ this.activeStep = result.pendingStep;
375
+ this.setActiveStepIndex();
376
+ this.activePage = this.pagesContainers.find(item => item.step === this.activeStep);
377
+ this.updateFooterComponent();
378
+ }
379
+ // Finally activate the container
380
+ pendingPage.onActivate(result.error, result.stepModelChanges, result.recreateComponent);
381
+ // Force digest as activation trigger changes Clarity wizard. template conditionals must re-evaluate
382
+ this.cdr.detectChanges();
383
+ }
384
+ }
385
+ updateFooterComponent() {
386
+ if (!this.footer?.componentClass) {
387
+ return;
388
+ }
389
+ this.footerComponentInputs = {
390
+ currentStep: this.activeStep,
391
+ steps: this.#pages,
392
+ workflowModel: this.wizardModel,
393
+ };
394
+ }
395
+ retryStepTransition(step) {
396
+ this.onWizardPageActivated(step);
397
+ }
398
+ invalidateNextSteps() {
399
+ if (this.wizard.currentPage) {
400
+ this.wizard.currentPage.completed = false;
401
+ let nextPage = this.wizard.pageCollection.getNextPage(this.wizard.currentPage);
402
+ while (nextPage) {
403
+ nextPage.completed = false;
404
+ nextPage = this.wizard.pageCollection.getNextPage(nextPage);
405
+ }
406
+ }
407
+ }
408
+ unsubscribeRetry() {
409
+ if (this.retrySubscription && !this.retrySubscription.closed) {
410
+ this.retrySubscription.unsubscribe();
411
+ }
412
+ }
413
+ patchWizardNavigationService() {
414
+ const navService = this.wizard.navService;
415
+ const originalGoToFunction = navService.goTo;
416
+ navService.goTo = (...args) => {
417
+ const pages = this.wizard.pages.toArray();
418
+ let firstIncompletePageIndex = pages.findIndex(p => !p.enabled) - 1;
419
+ // if firstIncompletePageIndex is negative, Currently in last page, set firstIncompletePageIndex = pages.length - 1
420
+ firstIncompletePageIndex = firstIncompletePageIndex < 0 ? pages.length - 1 : firstIncompletePageIndex;
421
+ const activeContainerIndex = this.pagesContainers.toArray().findIndex(item => item === this.activePage);
422
+ if (firstIncompletePageIndex === activeContainerIndex) {
423
+ // When moving from incomplete step to previous steps, do not call commit
424
+ originalGoToFunction.apply(navService, args);
425
+ }
426
+ else {
427
+ this.commitActiveStep()
428
+ .pipe(take(1), filter(isValid => isValid))
429
+ .subscribe(() => {
430
+ originalGoToFunction.apply(navService, args);
431
+ });
432
+ }
433
+ };
434
+ }
435
+ setActiveStepIndex() {
436
+ this.activeStepIndex =
437
+ this.#pages
438
+ .filter(page => {
439
+ return !page.isSkipped;
440
+ })
441
+ .indexOf(this.activeStep) + 1;
442
+ }
443
+ /**
444
+ * Reset the wizard. This means:
445
+ * - recreate the page components
446
+ * - reset page states (all pages are marked incomplete)
447
+ * - first page is activated
448
+ *
449
+ * NOTE: Wizard and step models remain unchanged.
450
+ */
451
+ reset() {
452
+ if (this.wizard) {
453
+ this.wizard.reset();
454
+ if (this.pages) {
455
+ // Recreate the pages.
456
+ this.pages = this.pages.map(step => Object.assign({}, step));
457
+ }
458
+ }
459
+ }
460
+ recalculateSummaryPageSkipState() {
461
+ if (!this.summaryStep) {
462
+ return;
463
+ }
464
+ const showDefaultPage = this.#pages &&
465
+ this.#pages.some((step) => {
466
+ return !step.isSkipped && step.summary;
467
+ });
468
+ this.summaryStep.isSkipped = !showDefaultPage;
469
+ }
470
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: WizardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.WorkflowModelManager }, { token: i1$1.RelevanceService }, { token: i1$1.WorkflowConfigurationService }, { token: i2.WorkflowStrings }, { token: i3.ZoomLevelService, optional: true }, { token: modalServiceToken, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
471
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: WizardComponent, isStandalone: false, selector: "appfx-wizard", inputs: { title: "title", loading: "loading", closeHandler: "closeHandler", footer: "footer", size: "size", pages: "pages", wizardModel: "wizardModel", opened: "opened" }, outputs: { openedChange: "openedChange", onModelChange: "onModelChange", onFinish: "onFinish", onClose: "onClose" }, providers: [RelevanceService, WorkflowModelManager], viewQueries: [{ propertyName: "wizard", first: true, predicate: ["wizard"], descendants: true, static: true }, { propertyName: "debugPopup", first: true, predicate: WorkflowModelMonitor, descendants: true }, { propertyName: "pagesContainers", predicate: StepContainer, descendants: true }], ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-wizard\r\n #wizard\r\n [(hermesWizardOpen)]=\"opened\"\r\n [hermesWizardSize]=\"size\"\r\n class=\"app-wizard\"\r\n [class.zoom2x]=\"currentZoomLevel === ZoomLevel.x2\"\r\n [class.zoom4x]=\"currentZoomLevel === ZoomLevel.x4\"\r\n [class.showNav]=\"showNav\"\r\n [class.debug-popup]=\"isSignPostOpen\"\r\n>\r\n <hermes-wizard-title *ngIf=\"!configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n <hermes-wizard-title *ngIf=\"configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <appfx-model-popup [modelMgr]=\"modelMgr\"></appfx-model-popup>\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n\r\n <div *ngIf=\"footer?.componentClass\" ngProjectAs=\"hermes-wizard-button\" class=\"appfx-wizard-footer\">\r\n <ng-container\r\n [ngComponentOutlet]=\"footer.componentClass\"\r\n [ngComponentOutletInputs]=\"footerComponentInputs\"\r\n ></ng-container>\r\n </div>\r\n\r\n <hermes-wizard-button [type]=\"'cancel'\">{{ workflowStrings.cancel }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'previous'\">{{ workflowStrings.back }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'next'\">{{ workflowStrings.next }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'finish'\">{{ workflowStrings.finish }}</hermes-wizard-button>\r\n\r\n <!-- A wizard with empty pages cannot be opened with latest Clarity 15 and above. -->\r\n <!-- We need an empty placeholder page, in order to be able to use wizards with asynchronous page loading. -->\r\n <!-- More details: https://github.com/vmware-clarity/ng-clarity/issues/1108 -->\r\n <ng-container *ngIf=\"!pages?.length\">\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle> </ng-template>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-validation-banner\r\n *ngIf=\"closeHandlerValidationState.errors?.length\"\r\n hermes-layout=\"m-b:sm\"\r\n [state]=\"closeHandlerValidationState\"\r\n >\r\n </appfx-validation-banner>\r\n <ng-container *ngFor=\"let page of pagesInternal; let pageIndex = index\">\r\n <hermes-wizard-page\r\n #hermesWizardPage\r\n *ngIf=\"!page.isSkipped\"\r\n class=\"pb-0\"\r\n [class.pt-0]=\"page.description\"\r\n [hermesWizardPageNextDisabled]=\"isNextButtonDisabled\"\r\n [class.is-loading]=\"isLoading\"\r\n hermesWizardPagePreventDefault=\"true\"\r\n (hermesWizardPageOnCommit)=\"onWizardCommit()\"\r\n (hermesWizardPageOnCancel)=\"onWizardCancel()\"\r\n (hermesWizardPagePrevious)=\"onWizardBack()\"\r\n (hermesWizardPageOnLoad)=\"onWizardPageActivated(page)\"\r\n [attr.data-test-id]=\"'appfx-wizard-step-content'\"\r\n >\r\n <ng-template hermesPageTitle>\r\n <button\r\n class=\"btn-show-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.openStepNavAriaLabel\"\r\n (click)=\"openStepNavPanel()\"\r\n >\r\n <hermes-icon shape=\"bars\"></hermes-icon>\r\n </button>\r\n <span class=\"page-index\">{{ activeStepIndex }}.&nbsp;</span>{{ page.title }}\r\n </ng-template>\r\n\r\n <ng-template hermesPageNavTitle>\r\n <!-- TODO: Should remove these hermes-icon tags when clarity fixes https://github.com/vmware/clarity/issues/3976 -->\r\n <hermes-icon\r\n shape=\"success-standard\"\r\n class=\"hermes-sr-only\"\r\n status=\"success\"\r\n *ngIf=\"hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.completed\"\r\n ></hermes-icon>\r\n <hermes-icon\r\n shape=\"pencil\"\r\n class=\"hermes-sr-only\"\r\n *ngIf=\"hermesWizardPage.enabled && !hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.inProgress\"\r\n ></hermes-icon>\r\n {{ page.navTitle || page.title }}\r\n </ng-template>\r\n <appfx-step-container [step]=\"page\" [description]=\"page.description\" class=\"content-container hermes-flex-column\">\r\n </appfx-step-container>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-spinner\r\n *ngIf=\"isLoading\"\r\n [message]=\"workflowStrings.loading\"\r\n [progressDetails]=\"pageProgressDetails\"\r\n [showActionButton]=\"showProgressCancelButton\"\r\n [actionButtonLabel]=\"cancelValidationButtonLabel\"\r\n (actionClick)=\"cancelPageValidation()\"\r\n ></appfx-spinner>\r\n</hermes-wizard>\r\n", styles: [".app-wizard .btn-close-stepnav{display:none;border:0;background:transparent;padding:0}.app-wizard .btn-close-stepnav hermes-icon{cursor:pointer}.app-wizard .btn-show-stepnav{display:none;border:0;background:transparent}.app-wizard .btn-show-stepnav hermes-icon{cursor:pointer}.app-wizard .page-index{display:none}.app-wizard .appfx-wizard-footer{flex:1 1 auto;overflow:hidden;margin-right:auto}.app-wizard.zoom2x.showNav ::ng-deep .hermes-wizard-stepnav{overflow:auto}.app-wizard ::ng-deep appfx-spinner{left:27%;width:73%}.app-wizard ::ng-deep hermes-spinner{position:static!important}.app-wizard ::ng-deep div.hermes-wizard-body-wrapper{display:flex;flex:1 1 auto;width:100%}.app-wizard ::ng-deep main.hermes-wizard-content{height:100%;display:flex;flex-direction:column}.app-wizard ::ng-deep .btn.btn-link.hermes-wizard-stepnav-link{height:unset;max-width:unset}.app-wizard ::ng-deep .hermes-wizard-stepnav-link-title{overflow-wrap:break-word;white-space:normal;line-height:1.2rem}.app-wizard.zoom2x ::ng-deep appfx-spinner,.app-wizard.zoom4x ::ng-deep appfx-spinner{left:0;width:100%}.app-wizard.zoom2x ::ng-deep .hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x ::ng-deep .hermes-wizard-stepnav-wrapper{display:none}.app-wizard.zoom2x ::ng-deep .modal,.app-wizard.zoom4x ::ng-deep .modal{overflow:visible}.app-wizard.zoom2x hermes-wizard-page appfx-step-container.content-container,.app-wizard.zoom4x hermes-wizard-page appfx-step-container.content-container{height:auto}.app-wizard.zoom2x .btn-show-stepnav,.app-wizard.zoom2x .page-index,.app-wizard.zoom4x .btn-show-stepnav,.app-wizard.zoom4x .page-index{display:inline-flex;padding-left:0}.app-wizard.zoom2x .btn-show-stepnav hermes-icon,.app-wizard.zoom4x .btn-show-stepnav hermes-icon{fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom2x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper{display:inherit;position:absolute;width:100%;height:100%;max-width:unset;padding:0;z-index:1001}.app-wizard.zoom2x.showNav .btn-close-stepnav,.app-wizard.zoom4x.showNav .btn-close-stepnav{display:inherit}.app-wizard.zoom2x.showNav .btn-close-stepnav hermes-icon,.app-wizard.zoom4x.showNav .btn-close-stepnav hermes-icon{vertical-align:baseline;fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom4x ::ng-deep .modal{padding:0}.app-wizard.zoom4x ::ng-deep .modal .modal-dialog{width:100%;height:100%;margin:0;min-height:unset}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content{display:block;overflow-y:auto}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content .hermes-wizard-body{overflow-y:hidden;max-height:unset;height:unset}.app-wizard.zoom4x ::ng-deep .modal-footer{position:sticky;bottom:0;background-color:inherit;min-height:3.2rem;height:3.2rem;padding-top:.7rem;z-index:1000}.app-wizard hermes-wizard-page{height:100%;padding-bottom:0}.app-wizard hermes-wizard-page.is-loading{pointer-events:none;cursor:not-allowed;opacity:.6}.app-wizard hermes-wizard-page.is-loading .div-disabled{opacity:1}.app-wizard hermes-wizard-page .first-row{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:.84rem;margin-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~form .form-group{margin-bottom:3px;margin-top:2px}.app-wizard hermes-wizard-page appfx-validation-banner~*{padding-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~*>span{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:9px}.app-wizard hermes-wizard-page appfx-validation-banner~*~*{padding-top:0}.app-wizard hermes-wizard-page .alert-item{align-items:center}.app-wizard hermes-wizard-page appfx-step-container{height:100%;flex-flow:column;display:flex}.debug-popup ::ng-deep hermes-modal>div>div.modal-dialog.modal-xl{margin-left:350px}\n"], dependencies: [{ kind: "component", type: i1$1.ValidationBannerComponent, selector: "appfx-validation-banner", inputs: ["state", "closable"] }, { kind: "component", type: i1$1.StepContainerComponent, selector: "appfx-step-container", inputs: ["step", "description"], outputs: ["onRetry"] }, { kind: "component", type: i1$1.WorkflowModelMonitorComponent, selector: "appfx-model-popup", inputs: ["modelMgr"] }, { kind: "component", type: i1$1.SpinnerComponent, selector: "appfx-spinner", inputs: ["message", "politeness", "isModal", "progressDetails", "showActionButton", "actionButtonLabel"], outputs: ["actionClick"] }, { kind: "component", type: i4.HermesWizard, selector: "hermes-wizard", inputs: ["hermesWizardStepnavAriaLabel", "hermesWizardStepnavLayout", "hermesWizardSize", "hermesWizardInPage", "hermesWizardInPageFillContentArea", "hermesWizardHideFooter", "hermesWizardFooterAlign", "hermesWizardClosable", "hermesWizardPreventModalAnimation", "hermesWizardForceForwardNavigation", "hermesWizardOpen", "hermesWizardPreventDefaultNext", "hermesWizardPreventDefaultCancel", "hermesWizardPreventNavigation", "hermesWizardDisableStepnav"], outputs: ["hermesWizardOpenChange", "hermesWizardOnCancel", "hermesWizardOnFinish", "hermesWizardOnReset", "hermesWizardCurrentPageChange", "hermesWizardOnNext", "hermesWizardOnPrevious"] }, { kind: "component", type: i4.HermesWizardPage, selector: "hermes-wizard-page", inputs: ["id", "hermesWizardPagePreventDefault", "hermesWizardPageNextDisabled", "hermesWizardPagePreviousDisabled", "hermesWizardPageHasError", "hermesWizardPagePreventDefaultCancel", "hermesWizardPagePreventDefaultNext"], outputs: ["hermesWizardPageNextDisabledChange", "hermesWizardPagePreviousDisabledChange", "hermesWizardPagePreventDefaultCancelChange", "hermesWizardPageOnCommit", "hermesWizardPageOnLoad", "hermesWizardPageOnCancel", "hermesWizardPageFinish", "hermesWizardPagePrevious", "hermesWizardPageNext", "hermesWizardPageDanger", "hermesWizardPagePrimary", "hermesWizardPageCustomButton"] }, { kind: "component", type: i4.HermesWizardButton, selector: "hermes-wizard-button", inputs: ["type", "hermesWizardButtonDisabled", "hermesWizardButtonHidden"], outputs: ["hermesWizardButtonClicked"] }, { kind: "directive", type: i4.HermesWizardTitle, selector: "hermes-wizard-title", inputs: ["hermesHeadingLevel"] }, { kind: "directive", type: i4.HermesWizardPageTitle, selector: "[hermesPageTitle]", inputs: ["hermesHeadingLevel"] }, { kind: "directive", type: i4.HermesWizardPageNavTitle, selector: "[hermesPageNavTitle]" }, { kind: "component", type: i5.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i6.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
472
+ }
473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: WizardComponent, decorators: [{
474
+ type: Component,
475
+ args: [{ selector: 'appfx-wizard', standalone: false, providers: [RelevanceService, WorkflowModelManager], template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-wizard\r\n #wizard\r\n [(hermesWizardOpen)]=\"opened\"\r\n [hermesWizardSize]=\"size\"\r\n class=\"app-wizard\"\r\n [class.zoom2x]=\"currentZoomLevel === ZoomLevel.x2\"\r\n [class.zoom4x]=\"currentZoomLevel === ZoomLevel.x4\"\r\n [class.showNav]=\"showNav\"\r\n [class.debug-popup]=\"isSignPostOpen\"\r\n>\r\n <hermes-wizard-title *ngIf=\"!configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n <hermes-wizard-title *ngIf=\"configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <appfx-model-popup [modelMgr]=\"modelMgr\"></appfx-model-popup>\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n\r\n <div *ngIf=\"footer?.componentClass\" ngProjectAs=\"hermes-wizard-button\" class=\"appfx-wizard-footer\">\r\n <ng-container\r\n [ngComponentOutlet]=\"footer.componentClass\"\r\n [ngComponentOutletInputs]=\"footerComponentInputs\"\r\n ></ng-container>\r\n </div>\r\n\r\n <hermes-wizard-button [type]=\"'cancel'\">{{ workflowStrings.cancel }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'previous'\">{{ workflowStrings.back }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'next'\">{{ workflowStrings.next }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'finish'\">{{ workflowStrings.finish }}</hermes-wizard-button>\r\n\r\n <!-- A wizard with empty pages cannot be opened with latest Clarity 15 and above. -->\r\n <!-- We need an empty placeholder page, in order to be able to use wizards with asynchronous page loading. -->\r\n <!-- More details: https://github.com/vmware-clarity/ng-clarity/issues/1108 -->\r\n <ng-container *ngIf=\"!pages?.length\">\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle> </ng-template>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-validation-banner\r\n *ngIf=\"closeHandlerValidationState.errors?.length\"\r\n hermes-layout=\"m-b:sm\"\r\n [state]=\"closeHandlerValidationState\"\r\n >\r\n </appfx-validation-banner>\r\n <ng-container *ngFor=\"let page of pagesInternal; let pageIndex = index\">\r\n <hermes-wizard-page\r\n #hermesWizardPage\r\n *ngIf=\"!page.isSkipped\"\r\n class=\"pb-0\"\r\n [class.pt-0]=\"page.description\"\r\n [hermesWizardPageNextDisabled]=\"isNextButtonDisabled\"\r\n [class.is-loading]=\"isLoading\"\r\n hermesWizardPagePreventDefault=\"true\"\r\n (hermesWizardPageOnCommit)=\"onWizardCommit()\"\r\n (hermesWizardPageOnCancel)=\"onWizardCancel()\"\r\n (hermesWizardPagePrevious)=\"onWizardBack()\"\r\n (hermesWizardPageOnLoad)=\"onWizardPageActivated(page)\"\r\n [attr.data-test-id]=\"'appfx-wizard-step-content'\"\r\n >\r\n <ng-template hermesPageTitle>\r\n <button\r\n class=\"btn-show-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.openStepNavAriaLabel\"\r\n (click)=\"openStepNavPanel()\"\r\n >\r\n <hermes-icon shape=\"bars\"></hermes-icon>\r\n </button>\r\n <span class=\"page-index\">{{ activeStepIndex }}.&nbsp;</span>{{ page.title }}\r\n </ng-template>\r\n\r\n <ng-template hermesPageNavTitle>\r\n <!-- TODO: Should remove these hermes-icon tags when clarity fixes https://github.com/vmware/clarity/issues/3976 -->\r\n <hermes-icon\r\n shape=\"success-standard\"\r\n class=\"hermes-sr-only\"\r\n status=\"success\"\r\n *ngIf=\"hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.completed\"\r\n ></hermes-icon>\r\n <hermes-icon\r\n shape=\"pencil\"\r\n class=\"hermes-sr-only\"\r\n *ngIf=\"hermesWizardPage.enabled && !hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.inProgress\"\r\n ></hermes-icon>\r\n {{ page.navTitle || page.title }}\r\n </ng-template>\r\n <appfx-step-container [step]=\"page\" [description]=\"page.description\" class=\"content-container hermes-flex-column\">\r\n </appfx-step-container>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-spinner\r\n *ngIf=\"isLoading\"\r\n [message]=\"workflowStrings.loading\"\r\n [progressDetails]=\"pageProgressDetails\"\r\n [showActionButton]=\"showProgressCancelButton\"\r\n [actionButtonLabel]=\"cancelValidationButtonLabel\"\r\n (actionClick)=\"cancelPageValidation()\"\r\n ></appfx-spinner>\r\n</hermes-wizard>\r\n", styles: [".app-wizard .btn-close-stepnav{display:none;border:0;background:transparent;padding:0}.app-wizard .btn-close-stepnav hermes-icon{cursor:pointer}.app-wizard .btn-show-stepnav{display:none;border:0;background:transparent}.app-wizard .btn-show-stepnav hermes-icon{cursor:pointer}.app-wizard .page-index{display:none}.app-wizard .appfx-wizard-footer{flex:1 1 auto;overflow:hidden;margin-right:auto}.app-wizard.zoom2x.showNav ::ng-deep .hermes-wizard-stepnav{overflow:auto}.app-wizard ::ng-deep appfx-spinner{left:27%;width:73%}.app-wizard ::ng-deep hermes-spinner{position:static!important}.app-wizard ::ng-deep div.hermes-wizard-body-wrapper{display:flex;flex:1 1 auto;width:100%}.app-wizard ::ng-deep main.hermes-wizard-content{height:100%;display:flex;flex-direction:column}.app-wizard ::ng-deep .btn.btn-link.hermes-wizard-stepnav-link{height:unset;max-width:unset}.app-wizard ::ng-deep .hermes-wizard-stepnav-link-title{overflow-wrap:break-word;white-space:normal;line-height:1.2rem}.app-wizard.zoom2x ::ng-deep appfx-spinner,.app-wizard.zoom4x ::ng-deep appfx-spinner{left:0;width:100%}.app-wizard.zoom2x ::ng-deep .hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x ::ng-deep .hermes-wizard-stepnav-wrapper{display:none}.app-wizard.zoom2x ::ng-deep .modal,.app-wizard.zoom4x ::ng-deep .modal{overflow:visible}.app-wizard.zoom2x hermes-wizard-page appfx-step-container.content-container,.app-wizard.zoom4x hermes-wizard-page appfx-step-container.content-container{height:auto}.app-wizard.zoom2x .btn-show-stepnav,.app-wizard.zoom2x .page-index,.app-wizard.zoom4x .btn-show-stepnav,.app-wizard.zoom4x .page-index{display:inline-flex;padding-left:0}.app-wizard.zoom2x .btn-show-stepnav hermes-icon,.app-wizard.zoom4x .btn-show-stepnav hermes-icon{fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom2x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper{display:inherit;position:absolute;width:100%;height:100%;max-width:unset;padding:0;z-index:1001}.app-wizard.zoom2x.showNav .btn-close-stepnav,.app-wizard.zoom4x.showNav .btn-close-stepnav{display:inherit}.app-wizard.zoom2x.showNav .btn-close-stepnav hermes-icon,.app-wizard.zoom4x.showNav .btn-close-stepnav hermes-icon{vertical-align:baseline;fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom4x ::ng-deep .modal{padding:0}.app-wizard.zoom4x ::ng-deep .modal .modal-dialog{width:100%;height:100%;margin:0;min-height:unset}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content{display:block;overflow-y:auto}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content .hermes-wizard-body{overflow-y:hidden;max-height:unset;height:unset}.app-wizard.zoom4x ::ng-deep .modal-footer{position:sticky;bottom:0;background-color:inherit;min-height:3.2rem;height:3.2rem;padding-top:.7rem;z-index:1000}.app-wizard hermes-wizard-page{height:100%;padding-bottom:0}.app-wizard hermes-wizard-page.is-loading{pointer-events:none;cursor:not-allowed;opacity:.6}.app-wizard hermes-wizard-page.is-loading .div-disabled{opacity:1}.app-wizard hermes-wizard-page .first-row{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:.84rem;margin-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~form .form-group{margin-bottom:3px;margin-top:2px}.app-wizard hermes-wizard-page appfx-validation-banner~*{padding-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~*>span{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:9px}.app-wizard hermes-wizard-page appfx-validation-banner~*~*{padding-top:0}.app-wizard hermes-wizard-page .alert-item{align-items:center}.app-wizard hermes-wizard-page appfx-step-container{height:100%;flex-flow:column;display:flex}.debug-popup ::ng-deep hermes-modal>div>div.modal-dialog.modal-xl{margin-left:350px}\n"] }]
476
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.WorkflowModelManager }, { type: i1$1.RelevanceService }, { type: i1$1.WorkflowConfigurationService }, { type: i2.WorkflowStrings }, { type: i3.ZoomLevelService, decorators: [{
477
+ type: Optional
478
+ }] }, { type: undefined, decorators: [{
479
+ type: Inject,
480
+ args: [modalServiceToken]
481
+ }, {
482
+ type: Optional
483
+ }] }], propDecorators: { title: [{
484
+ type: Input
485
+ }], loading: [{
486
+ type: Input
487
+ }], closeHandler: [{
488
+ type: Input
489
+ }], footer: [{
490
+ type: Input
491
+ }], size: [{
492
+ type: Input
493
+ }], openedChange: [{
494
+ type: Output
495
+ }], onModelChange: [{
496
+ type: Output
497
+ }], onFinish: [{
498
+ type: Output
499
+ }], onClose: [{
500
+ type: Output
501
+ }], wizard: [{
502
+ type: ViewChild,
503
+ args: ['wizard', { static: true }]
504
+ }], debugPopup: [{
505
+ type: ViewChild,
506
+ args: [WorkflowModelMonitor, { static: false }]
507
+ }], pagesContainers: [{
508
+ type: ViewChildren,
509
+ args: [StepContainer]
510
+ }], pages: [{
511
+ type: Input
512
+ }], wizardModel: [{
513
+ type: Input
514
+ }], opened: [{
515
+ type: Input
516
+ }] } });
517
+ /**
518
+ * If this error is thrown from the closeHandler function, no error message will be displayed.
519
+ * The wizard will remain open, and will be responsibility of the consumers to handle the error path.
520
+ */
521
+ const preventDisplayingWizardError = new Error('AppfxWizard error is not set.');
522
+
523
+ /*
524
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
525
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
526
+ * This software is released under MIT license.
527
+ * The full license information can be found in LICENSE in the root directory of this project.
528
+ */
529
+ const clarityDependencies = [HermesWizardModule, HermesIcon];
530
+ const appfxDependencies = [PropertyViewModule, AppfxWorkflowCoreModule];
531
+ class AppfxWizardModule {
532
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
533
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, declarations: [SummaryComponent, WizardComponent], imports: [PropertyViewModule, AppfxWorkflowCoreModule, HermesWizardModule, HermesIcon, CommonModule, FormsModule, ReactiveFormsModule], exports: [WizardComponent] }); }
534
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, imports: [appfxDependencies, clarityDependencies, CommonModule, FormsModule, ReactiveFormsModule] }); }
535
+ }
536
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, decorators: [{
537
+ type: NgModule,
538
+ args: [{
539
+ imports: [...appfxDependencies, ...clarityDependencies, CommonModule, FormsModule, ReactiveFormsModule],
540
+ declarations: [SummaryComponent, WizardComponent],
541
+ exports: [WizardComponent],
542
+ }]
543
+ }] });
544
+
545
+ /*
546
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
547
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
548
+ * This software is released under MIT license.
549
+ * The full license information can be found in LICENSE in the root directory of this project.
550
+ */
551
+ /**
552
+ * Class that holds data about the steps in the wizard and the flows (combinations of pages).
553
+ */
554
+ class WorkflowService {
555
+ constructor() {
556
+ this.currentFlow = [];
557
+ this.stepsByFlowId = {};
558
+ }
559
+ /**
560
+ * Return the flow, selected by {@link switchToWorkflow}.
561
+ */
562
+ get flow() {
563
+ return this.currentFlow;
564
+ }
565
+ /**
566
+ * Define a workflow (sequence of steps).
567
+ * When the first flow is added, it is selected as current.
568
+ *
569
+ * @param flowId Unique flow id.
570
+ * @param steps Steps to include in the flow.
571
+ * @throws Error In case of duplicate flowId.
572
+ */
573
+ addWorkflow(flowId, steps) {
574
+ if (Object.prototype.hasOwnProperty.call(this.stepsByFlowId, flowId)) {
575
+ throw new Error(`Duplicate workflow id: ${flowId}`);
576
+ }
577
+ this.stepsByFlowId[flowId] = steps;
578
+ // Preselect the first added workflow.
579
+ if (Object.keys(this.stepsByFlowId).length === 1) {
580
+ this.switchToWorkflow(flowId);
581
+ }
582
+ }
583
+ /**
584
+ * Switches the current workflow.
585
+ *
586
+ * @throws Error
587
+ * If flow with the given id does not exist.
588
+ */
589
+ switchToWorkflow(newFlowId) {
590
+ const flowSteps = this.stepsByFlowId[newFlowId];
591
+ if (!flowSteps) {
592
+ throw new Error(`Flow with id=${newFlowId} does not exist!`);
593
+ }
594
+ this.currentFlow = flowSteps;
595
+ }
596
+ }
597
+
598
+ /*
599
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
600
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
601
+ * This software is released under MIT license.
602
+ * The full license information can be found in LICENSE in the root directory of this project.
603
+ */
604
+
605
+ /**
606
+ * Generated bundle index. Do not edit.
607
+ */
608
+
609
+ export { AppfxWizardModule, SummaryComponent, SummaryModel, WizardComponent as Wizard, WizardComponent, WorkflowService, preventDisplayingWizardError };
610
+ //# sourceMappingURL=hermes-ui-angular-addons-wizard.mjs.map