@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,1251 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Optional, Directive, Component, ElementRef, HostListener, ContentChild, Input, HostBinding, KeyValueDiffers, Self, ContentChildren, NgModule } from '@angular/core';
3
+ import { BehaviorSubject, Subject, tap, merge, of } from 'rxjs';
4
+ import * as i3 from '@hermes-ui/angular/icon';
5
+ import { ClarityIcons, successStandardIcon, errorStandardIcon, HermesIcon } from '@hermes-ui/angular/icon';
6
+ import { HermesSignpost } from '@hermes-ui/angular/popover/signpost';
7
+ import * as i1 from '@angular/common';
8
+ import { CommonModule } from '@angular/common';
9
+ import { HostWrapper } from '@hermes-ui/angular/utils';
10
+ import * as i1$1 from '@angular/forms';
11
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
+ import { switchMap, startWith } from 'rxjs/operators';
13
+
14
+ /*
15
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
16
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
17
+ * This software is released under MIT license.
18
+ * The full license information can be found in LICENSE in the root directory of this project.
19
+ */
20
+ let counter$1 = 0;
21
+ class ControlIdService {
22
+ constructor() {
23
+ this._id = 'hermes-form-control-' + ++counter$1;
24
+ this._idChange = new BehaviorSubject(this._id);
25
+ }
26
+ get id() {
27
+ return this._id;
28
+ }
29
+ set id(value) {
30
+ this._id = value;
31
+ this._idChange.next(value);
32
+ }
33
+ get idChange() {
34
+ return this._idChange.asObservable();
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ControlIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ControlIdService }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ControlIdService, decorators: [{
40
+ type: Injectable
41
+ }] });
42
+
43
+ /*
44
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
45
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
46
+ * This software is released under MIT license.
47
+ * The full license information can be found in LICENSE in the root directory of this project.
48
+ */
49
+ let counter = 0;
50
+ /**
51
+ * @TODO No idea why I need to use provideIn .. without I'm getting error that
52
+ * ContainerIdService is not defined - But this must be optional service!?
53
+ *
54
+ * There is something wrong - will come back to investigate it when I have more time
55
+ *
56
+ */
57
+ class ContainerIdService {
58
+ constructor() {
59
+ this._id = `hermes-form-container-${++counter}`;
60
+ this._idChange = new BehaviorSubject(this._id);
61
+ }
62
+ get id() {
63
+ return this._id;
64
+ }
65
+ set id(value) {
66
+ this._id = value;
67
+ this._idChange.next(value);
68
+ }
69
+ get idChange() {
70
+ return this._idChange.asObservable();
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ContainerIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
73
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ContainerIdService }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ContainerIdService, decorators: [{
76
+ type: Injectable
77
+ }] });
78
+
79
+ /*
80
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
81
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
82
+ * This software is released under MIT license.
83
+ * The full license information can be found in LICENSE in the root directory of this project.
84
+ */
85
+ const CONTROL_SUFFIX = {
86
+ HELPER: 'helper',
87
+ ERROR: 'error',
88
+ SUCCESS: 'success',
89
+ NONE: null,
90
+ };
91
+ class HermesAbstractControl {
92
+ constructor(controlIdService, containerIdService) {
93
+ this.controlIdService = controlIdService;
94
+ this.containerIdService = containerIdService;
95
+ /**
96
+ * Hold the suffix for the ID
97
+ */
98
+ this.controlIdSuffix = 'abstract';
99
+ }
100
+ get id() {
101
+ /**
102
+ * The order of witch the id will be pick is:
103
+ * - Container ID (Wrapper arround multiple Controls like, Checkbox, Radio, ...)
104
+ * - Control ID (Single Control wrapper like Input, Textarea, Password, ...)
105
+ * - None
106
+ */
107
+ if (this.containerIdService) {
108
+ return `${this.containerIdService.id}-${this.controlIdSuffix}`;
109
+ }
110
+ if (this.controlIdService) {
111
+ return `${this.controlIdService.id}-${this.controlIdSuffix}`;
112
+ }
113
+ return null;
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesAbstractControl, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
116
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesAbstractControl, isStandalone: true, ngImport: i0 }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesAbstractControl, decorators: [{
119
+ type: Directive
120
+ }], ctorParameters: () => [{ type: ControlIdService, decorators: [{
121
+ type: Optional
122
+ }] }, { type: ContainerIdService, decorators: [{
123
+ type: Optional
124
+ }] }] });
125
+
126
+ /*
127
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
128
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
129
+ * This software is released under MIT license.
130
+ * The full license information can be found in LICENSE in the root directory of this project.
131
+ */
132
+ class HermesControlError extends HermesAbstractControl {
133
+ constructor(controlIdService, containerIdService) {
134
+ super(controlIdService, containerIdService);
135
+ this.controlIdService = controlIdService;
136
+ this.containerIdService = containerIdService;
137
+ this.controlIdSuffix = CONTROL_SUFFIX.ERROR;
138
+ }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlError, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: HermesControlError, isStandalone: false, selector: "hermes-control-error", host: { properties: { "class.hermes-subtext-wrapper": "true", "class.error": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `
141
+ <hermes-icon class="hermes-validate-icon" shape="error-standard" status="danger" aria-hidden="true"></hermes-icon>
142
+ <span class="hermes-subtext">
143
+ <ng-content></ng-content>
144
+ </span>
145
+ `, isInline: true, dependencies: [{ kind: "component", type: i3.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }] }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlError, decorators: [{
148
+ type: Component,
149
+ args: [{
150
+ selector: 'hermes-control-error',
151
+ template: `
152
+ <hermes-icon class="hermes-validate-icon" shape="error-standard" status="danger" aria-hidden="true"></hermes-icon>
153
+ <span class="hermes-subtext">
154
+ <ng-content></ng-content>
155
+ </span>
156
+ `,
157
+ host: {
158
+ '[class.hermes-subtext-wrapper]': 'true',
159
+ '[class.error]': 'true',
160
+ '[attr.id]': 'id',
161
+ },
162
+ standalone: false,
163
+ }]
164
+ }], ctorParameters: () => [{ type: ControlIdService, decorators: [{
165
+ type: Optional
166
+ }] }, { type: ContainerIdService, decorators: [{
167
+ type: Optional
168
+ }] }] });
169
+
170
+ /*
171
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
172
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
173
+ * This software is released under MIT license.
174
+ * The full license information can be found in LICENSE in the root directory of this project.
175
+ */
176
+ class HermesControlHelper extends HermesAbstractControl {
177
+ constructor(controlIdService, containerIdService) {
178
+ super(controlIdService, containerIdService);
179
+ this.controlIdService = controlIdService;
180
+ this.containerIdService = containerIdService;
181
+ this.controlIdSuffix = CONTROL_SUFFIX.HELPER;
182
+ }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlHelper, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
184
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: HermesControlHelper, isStandalone: false, selector: "hermes-control-helper", host: { properties: { "class.hermes-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
185
+ }
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlHelper, decorators: [{
187
+ type: Component,
188
+ args: [{
189
+ selector: 'hermes-control-helper',
190
+ template: `<ng-content></ng-content>`,
191
+ host: {
192
+ '[class.hermes-subtext]': 'true',
193
+ '[attr.id]': 'id',
194
+ },
195
+ standalone: false,
196
+ }]
197
+ }], ctorParameters: () => [{ type: ControlIdService, decorators: [{
198
+ type: Optional
199
+ }] }, { type: ContainerIdService, decorators: [{
200
+ type: Optional
201
+ }] }] });
202
+
203
+ /*
204
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
205
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
206
+ * This software is released under MIT license.
207
+ * The full license information can be found in LICENSE in the root directory of this project.
208
+ */
209
+ class HermesControlSuccess extends HermesAbstractControl {
210
+ constructor(controlIdService, containerIdService) {
211
+ super(controlIdService, containerIdService);
212
+ this.controlIdService = controlIdService;
213
+ this.containerIdService = containerIdService;
214
+ this.controlIdSuffix = CONTROL_SUFFIX.SUCCESS;
215
+ }
216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlSuccess, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: HermesControlSuccess, isStandalone: false, selector: "hermes-control-success", host: { properties: { "class.hermes-subtext-wrapper": "true", "class.success": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `
218
+ <hermes-icon class="hermes-validate-icon" shape="success-standard" status="success" aria-hidden="true"></hermes-icon>
219
+ <span class="hermes-subtext">
220
+ <ng-content></ng-content>
221
+ </span>
222
+ `, isInline: true, dependencies: [{ kind: "component", type: i3.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }] }); }
223
+ }
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlSuccess, decorators: [{
225
+ type: Component,
226
+ args: [{
227
+ selector: 'hermes-control-success',
228
+ template: `
229
+ <hermes-icon class="hermes-validate-icon" shape="success-standard" status="success" aria-hidden="true"></hermes-icon>
230
+ <span class="hermes-subtext">
231
+ <ng-content></ng-content>
232
+ </span>
233
+ `,
234
+ host: {
235
+ '[class.hermes-subtext-wrapper]': 'true',
236
+ '[class.success]': 'true',
237
+ '[attr.id]': 'id',
238
+ },
239
+ standalone: false,
240
+ }]
241
+ }], ctorParameters: () => [{ type: ControlIdService, decorators: [{
242
+ type: Optional
243
+ }] }, { type: ContainerIdService, decorators: [{
244
+ type: Optional
245
+ }] }] });
246
+
247
+ /*
248
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
249
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
250
+ * This software is released under MIT license.
251
+ * The full license information can be found in LICENSE in the root directory of this project.
252
+ */
253
+ var CONTROL_STATE;
254
+ (function (CONTROL_STATE) {
255
+ CONTROL_STATE["VALID"] = "VALID";
256
+ CONTROL_STATE["INVALID"] = "INVALID";
257
+ })(CONTROL_STATE || (CONTROL_STATE = {}));
258
+
259
+ /*
260
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
261
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
262
+ * This software is released under MIT license.
263
+ * The full license information can be found in LICENSE in the root directory of this project.
264
+ */
265
+ var HermesFormLayout;
266
+ (function (HermesFormLayout) {
267
+ HermesFormLayout["VERTICAL"] = "vertical";
268
+ HermesFormLayout["HORIZONTAL"] = "horizontal";
269
+ HermesFormLayout["COMPACT"] = "compact";
270
+ })(HermesFormLayout || (HermesFormLayout = {}));
271
+ class LayoutService {
272
+ constructor() {
273
+ this.minLabelSize = 1;
274
+ this.maxLabelSize = 12;
275
+ this.layout = HermesFormLayout.HORIZONTAL;
276
+ this.layoutValues = Object.values(HermesFormLayout);
277
+ this._labelSize = 2;
278
+ }
279
+ get labelSize() {
280
+ return this._labelSize;
281
+ }
282
+ set labelSize(size) {
283
+ if (this.labelSizeIsValid(size)) {
284
+ this._labelSize = size;
285
+ }
286
+ }
287
+ get layoutClass() {
288
+ return `hermes-form-${this.layout}`;
289
+ }
290
+ isVertical() {
291
+ return this.layout === HermesFormLayout.VERTICAL;
292
+ }
293
+ isHorizontal() {
294
+ return this.layout === HermesFormLayout.HORIZONTAL;
295
+ }
296
+ isCompact() {
297
+ return this.layout === HermesFormLayout.COMPACT;
298
+ }
299
+ isValid(layout) {
300
+ return this.layoutValues.indexOf(layout) > -1;
301
+ }
302
+ labelSizeIsValid(labelSize) {
303
+ return Number.isInteger(labelSize) && labelSize >= this.minLabelSize && labelSize <= this.maxLabelSize;
304
+ }
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
306
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LayoutService }); }
307
+ }
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LayoutService, decorators: [{
309
+ type: Injectable
310
+ }] });
311
+
312
+ /*
313
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
314
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
315
+ * This software is released under MIT license.
316
+ * The full license information can be found in LICENSE in the root directory of this project.
317
+ */
318
+ class NgControlService {
319
+ constructor() {
320
+ this._controls = [];
321
+ // Observable to subscribe to the control, since its not available immediately for projected content
322
+ this._controlsChanges = new Subject();
323
+ }
324
+ get controls() {
325
+ return this._controls;
326
+ }
327
+ get controlsChanges() {
328
+ return this._controlsChanges.asObservable();
329
+ }
330
+ get hasMultipleControls() {
331
+ return this._controls?.length > 1;
332
+ }
333
+ addControl(control) {
334
+ this._controls.push(control);
335
+ this.emitControlsChange(this._controls);
336
+ }
337
+ emitControlsChange(controls) {
338
+ this._controlsChanges.next(controls);
339
+ }
340
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: NgControlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
341
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: NgControlService }); }
342
+ }
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: NgControlService, decorators: [{
344
+ type: Injectable
345
+ }] });
346
+
347
+ /*
348
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
349
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
350
+ * This software is released under MIT license.
351
+ * The full license information can be found in LICENSE in the root directory of this project.
352
+ */
353
+ class HermesControlLabel {
354
+ constructor(controlIdService, layoutService, ngControlService, renderer, el) {
355
+ this.controlIdService = controlIdService;
356
+ this.layoutService = layoutService;
357
+ this.ngControlService = ngControlService;
358
+ this.renderer = renderer;
359
+ this.el = el;
360
+ this.enableGrid = true;
361
+ this.subscriptions = [];
362
+ }
363
+ get labelText() {
364
+ return this.el.nativeElement && this.el.nativeElement.textContent;
365
+ }
366
+ ngOnInit() {
367
+ // Prevent id attributes from being removed by the `undefined` host binding.
368
+ // This happens when a `label` is used outside of a control container and other use cases.
369
+ this.idAttr = this.idInput;
370
+ // Only add the hermes-control-label if it is inside a control container
371
+ if (this.controlIdService || this.ngControlService) {
372
+ this.renderer.addClass(this.el.nativeElement, 'hermes-control-label');
373
+ }
374
+ // Only set the grid column classes if we are in the right context and if they aren't already set
375
+ if (this.enableGrid &&
376
+ this.layoutService &&
377
+ !this.layoutService.isVertical() &&
378
+ this.el.nativeElement &&
379
+ this.el.nativeElement.className.indexOf('hermes-col') < 0) {
380
+ this.renderer.addClass(this.el.nativeElement, 'hermes-col-12');
381
+ this.renderer.addClass(this.el.nativeElement, `hermes-col-md-${this.layoutService.labelSize}`);
382
+ }
383
+ if (this.controlIdService && !this.forAttr) {
384
+ this.subscriptions.push(this.controlIdService.idChange.subscribe(id => {
385
+ this.forAttr = id;
386
+ this.idAttr = this.idInput || `${id}-label`;
387
+ }));
388
+ }
389
+ }
390
+ ngOnDestroy() {
391
+ this.subscriptions.forEach(sub => sub.unsubscribe());
392
+ }
393
+ disableGrid() {
394
+ this.enableGrid = false;
395
+ }
396
+ /**
397
+ * Allowing signposts inside labels to work without disabling default behavior. <label> is spreading a click event to its children so signposts get
398
+ * automatically closed once clicked inside a <label>.
399
+ * @param event
400
+ */
401
+ onClick(event) {
402
+ this.preventDefaultOnSignpostTarget(event);
403
+ }
404
+ preventDefaultOnSignpostTarget(event) {
405
+ if (this.signpost && this.signpost.nativeElement && this.signpost.nativeElement.contains(event.target)) {
406
+ event.preventDefault();
407
+ }
408
+ }
409
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlLabel, deps: [{ token: ControlIdService, optional: true }, { token: LayoutService, optional: true }, { token: NgControlService, optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
410
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesControlLabel, isStandalone: false, selector: "label", inputs: { idInput: ["id", "idInput"], forAttr: ["for", "forAttr"] }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.id": "this.idAttr", "attr.for": "this.forAttr" } }, queries: [{ propertyName: "signpost", first: true, predicate: HermesSignpost, descendants: true, read: ElementRef }], ngImport: i0 }); }
411
+ }
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlLabel, decorators: [{
413
+ type: Directive,
414
+ args: [{
415
+ selector: 'label',
416
+ standalone: false,
417
+ }]
418
+ }], ctorParameters: () => [{ type: ControlIdService, decorators: [{
419
+ type: Optional
420
+ }] }, { type: LayoutService, decorators: [{
421
+ type: Optional
422
+ }] }, { type: NgControlService, decorators: [{
423
+ type: Optional
424
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { idInput: [{
425
+ type: Input,
426
+ args: ['id']
427
+ }], idAttr: [{
428
+ type: HostBinding,
429
+ args: ['attr.id']
430
+ }], forAttr: [{
431
+ type: Input,
432
+ args: ['for']
433
+ }, {
434
+ type: HostBinding,
435
+ args: ['attr.for']
436
+ }], signpost: [{
437
+ type: ContentChild,
438
+ args: [HermesSignpost, { read: ElementRef }]
439
+ }], onClick: [{
440
+ type: HostListener,
441
+ args: ['click', ['$event']]
442
+ }] } });
443
+
444
+ /*
445
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
446
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
447
+ * This software is released under MIT license.
448
+ * The full license information can be found in LICENSE in the root directory of this project.
449
+ */
450
+ const CLASS_ERROR = 'hermes-error';
451
+ const CLASS_SUCCESS = 'hermes-success';
452
+ class ControlClassService {
453
+ constructor(layoutService) {
454
+ this.layoutService = layoutService;
455
+ this.className = '';
456
+ }
457
+ controlClass(state, grid = false, additional = '') {
458
+ const controlClasses = [this.className, additional];
459
+ switch (state) {
460
+ case CONTROL_STATE.VALID:
461
+ controlClasses.push(CLASS_SUCCESS);
462
+ break;
463
+ case CONTROL_STATE.INVALID:
464
+ controlClasses.push(CLASS_ERROR);
465
+ break;
466
+ }
467
+ if (grid && this.layoutService && this.className.indexOf('hermes-col') === -1) {
468
+ controlClasses.push(`hermes-col-md-${this.layoutService.maxLabelSize - this.layoutService.labelSize} hermes-col-12`);
469
+ }
470
+ return controlClasses.join(' ').trim();
471
+ }
472
+ // We want to remove the column classes from the input up to the container
473
+ initControlClass(renderer, element) {
474
+ if (element && element.className) {
475
+ const klasses = element.className.split(' ');
476
+ const controlKlasses = [];
477
+ klasses.forEach(klass => {
478
+ if (klass.startsWith('hermes-')) {
479
+ controlKlasses.push(klass);
480
+ }
481
+ if (klass.startsWith('hermes-col')) {
482
+ renderer.removeClass(element, klass);
483
+ }
484
+ });
485
+ this.className = controlKlasses.join(' ').trim();
486
+ }
487
+ }
488
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ControlClassService, deps: [{ token: LayoutService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
489
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ControlClassService }); }
490
+ }
491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ControlClassService, decorators: [{
492
+ type: Injectable
493
+ }], ctorParameters: () => [{ type: LayoutService, decorators: [{
494
+ type: Optional
495
+ }] }] });
496
+
497
+ /*
498
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
499
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
500
+ * This software is released under MIT license.
501
+ * The full license information can be found in LICENSE in the root directory of this project.
502
+ */
503
+ class HermesAbstractContainer {
504
+ constructor(layoutService, controlClassService, ngControlService) {
505
+ this.layoutService = layoutService;
506
+ this.controlClassService = controlClassService;
507
+ this.ngControlService = ngControlService;
508
+ this.controls = [];
509
+ this.subscriptions = [];
510
+ this.subscriptions.push(ngControlService.controlsChanges.subscribe(controls => {
511
+ this.controls = controls;
512
+ }));
513
+ ngControlService.container = this;
514
+ }
515
+ get control() {
516
+ return this.controls[0];
517
+ }
518
+ /**
519
+ * @NOTE
520
+ * Helper control is a bit different than the others, it must be always visible:
521
+ * - Labels and instructions must always accompany forms and are persistent.
522
+ * - The recommendation here is to always have helper text or anything instructions visible.
523
+ * - The expectation is to have error text + helper text in the errored state. this way all users will have the helper text information always available.
524
+ */
525
+ get showHelper() {
526
+ /**
527
+ * @NOTE
528
+ * Saving the previous version in case something is changed. We'll return always true so we can be flexible
529
+ * and keep the condition per components.
530
+ *
531
+ * return (
532
+ * Helper Component exist and the state of the form is NONE (not touched)
533
+ * (!!this.controlHelperComponent && (!this.touched || this.state === CONTROL_STATE.NONE)) ||
534
+ * or there is no success component but the state of the form is VALID - show helper information
535
+ * (!!this.controlSuccessComponent === false && this.state === CONTROL_STATE.VALID) ||
536
+ * or there is no error component but the state of the form is INVALID - show helper information
537
+ * (!!this.controlErrorComponent === false && this.state === CONTROL_STATE.INVALID)
538
+ * );
539
+ */
540
+ return Boolean(this.controlHelperComponent);
541
+ }
542
+ /**
543
+ * We gonna set the helper control state, after all or most of the components
544
+ * are ready - also this will trigger some initial flows into wrappers and controls,
545
+ * like locating IDs and setting attributes.
546
+ */
547
+ get helpers() {
548
+ return {
549
+ show: this.showInvalid || this.showHelper || this.showValid,
550
+ showInvalid: this.showInvalid,
551
+ showHelper: this.showHelper,
552
+ showValid: this.showValid,
553
+ };
554
+ }
555
+ get showValid() {
556
+ return this.touched && this.state === CONTROL_STATE.VALID && this.successMessagePresent;
557
+ }
558
+ get showInvalid() {
559
+ return this.touched && this.state === CONTROL_STATE.INVALID && this.errorMessagePresent;
560
+ }
561
+ get successMessagePresent() {
562
+ return !!this.controlSuccessComponent;
563
+ }
564
+ get errorMessagePresent() {
565
+ return !!this.controlErrorComponent;
566
+ }
567
+ get touched() {
568
+ return !!this.controls?.some(control => control.touched);
569
+ }
570
+ get state() {
571
+ const controlStatuses = this.controls.map((control) => {
572
+ return control.status;
573
+ });
574
+ // These status values are mutually exclusive, so a control
575
+ // cannot be both valid AND invalid or invalid AND disabled.
576
+ // if else order is important!
577
+ if (controlStatuses.includes(CONTROL_STATE.INVALID)) {
578
+ return CONTROL_STATE.INVALID;
579
+ }
580
+ else if (controlStatuses.includes(CONTROL_STATE.VALID)) {
581
+ return CONTROL_STATE.VALID;
582
+ }
583
+ else {
584
+ return null;
585
+ }
586
+ }
587
+ ngOnDestroy() {
588
+ this.subscriptions.forEach(subscription => subscription.unsubscribe());
589
+ }
590
+ controlClass() {
591
+ /**
592
+ * Decide what subtext to display:
593
+ * - container is valid but no success component is implemented - use helper class
594
+ * - container is valid and success component is implemented - use success class
595
+ * - Pass form control state and return string of classes to be applied to the container.
596
+ */
597
+ const currentState = this.touched ? this.state : null;
598
+ return this.controlClassService.controlClass(currentState, this.addGrid());
599
+ }
600
+ addGrid() {
601
+ return this.layoutService && !this.layoutService.isVertical();
602
+ }
603
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesAbstractContainer, deps: [{ token: LayoutService, optional: true }, { token: ControlClassService }, { token: NgControlService }], target: i0.ɵɵFactoryTarget.Directive }); }
604
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesAbstractContainer, isStandalone: true, queries: [{ propertyName: "label", first: true, predicate: HermesControlLabel, descendants: true }, { propertyName: "controlSuccessComponent", first: true, predicate: HermesControlSuccess, descendants: true }, { propertyName: "controlErrorComponent", first: true, predicate: HermesControlError, descendants: true }, { propertyName: "controlHelperComponent", first: true, predicate: HermesControlHelper, descendants: true }], ngImport: i0 }); }
605
+ }
606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesAbstractContainer, decorators: [{
607
+ type: Directive
608
+ }], ctorParameters: () => [{ type: LayoutService, decorators: [{
609
+ type: Optional
610
+ }] }, { type: ControlClassService }, { type: NgControlService }], propDecorators: { label: [{
611
+ type: ContentChild,
612
+ args: [HermesControlLabel, { static: false }]
613
+ }], controlSuccessComponent: [{
614
+ type: ContentChild,
615
+ args: [HermesControlSuccess]
616
+ }], controlErrorComponent: [{
617
+ type: ContentChild,
618
+ args: [HermesControlError]
619
+ }], controlHelperComponent: [{
620
+ type: ContentChild,
621
+ args: [HermesControlHelper]
622
+ }] } });
623
+
624
+ /*
625
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
626
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
627
+ * This software is released under MIT license.
628
+ * The full license information can be found in LICENSE in the root directory of this project.
629
+ */
630
+ class HermesControlContainer extends HermesAbstractContainer {
631
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
632
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: HermesControlContainer, isStandalone: false, selector: "hermes-control-container", host: { properties: { "class.hermes-form-control": "true", "class.hermes-form-control-disabled": "control?.disabled", "class.hermes-row": "addGrid()" } }, providers: [NgControlService, ControlIdService, ControlClassService], usesInheritance: true, ngImport: i0, template: `
633
+ <ng-content select="label"></ng-content>
634
+ @if (!label && addGrid()) {
635
+ <label></label>
636
+ }
637
+ <div class="hermes-control-container" [ngClass]="controlClass()">
638
+ <div class="hermes-input-wrapper">
639
+ <ng-content></ng-content>
640
+ </div>
641
+ @if (showHelper) {
642
+ <ng-content select="hermes-control-helper"></ng-content>
643
+ }
644
+ @if (showInvalid) {
645
+ <ng-content select="hermes-control-error"></ng-content>
646
+ }
647
+ @if (showValid) {
648
+ <ng-content select="hermes-control-success"></ng-content>
649
+ }
650
+ </div>
651
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: HermesControlLabel, selector: "label", inputs: ["id", "for"] }] }); }
652
+ }
653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControlContainer, decorators: [{
654
+ type: Component,
655
+ args: [{
656
+ selector: 'hermes-control-container',
657
+ template: `
658
+ <ng-content select="label"></ng-content>
659
+ @if (!label && addGrid()) {
660
+ <label></label>
661
+ }
662
+ <div class="hermes-control-container" [ngClass]="controlClass()">
663
+ <div class="hermes-input-wrapper">
664
+ <ng-content></ng-content>
665
+ </div>
666
+ @if (showHelper) {
667
+ <ng-content select="hermes-control-helper"></ng-content>
668
+ }
669
+ @if (showInvalid) {
670
+ <ng-content select="hermes-control-error"></ng-content>
671
+ }
672
+ @if (showValid) {
673
+ <ng-content select="hermes-control-success"></ng-content>
674
+ }
675
+ </div>
676
+ `,
677
+ host: {
678
+ '[class.hermes-form-control]': 'true',
679
+ '[class.hermes-form-control-disabled]': 'control?.disabled',
680
+ '[class.hermes-row]': 'addGrid()',
681
+ },
682
+ providers: [NgControlService, ControlIdService, ControlClassService],
683
+ standalone: false,
684
+ }]
685
+ }] });
686
+
687
+ /*
688
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
689
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
690
+ * This software is released under MIT license.
691
+ * The full license information can be found in LICENSE in the root directory of this project.
692
+ */
693
+ class MarkControlService {
694
+ constructor() {
695
+ this._touched = new Subject();
696
+ }
697
+ get touchedChange() {
698
+ return this._touched.asObservable();
699
+ }
700
+ markAsTouched() {
701
+ this._touched.next();
702
+ }
703
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MarkControlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
704
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MarkControlService }); }
705
+ }
706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MarkControlService, decorators: [{
707
+ type: Injectable
708
+ }] });
709
+
710
+ /*
711
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
712
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
713
+ * This software is released under MIT license.
714
+ * The full license information can be found in LICENSE in the root directory of this project.
715
+ */
716
+ var CHANGE_KEYS;
717
+ (function (CHANGE_KEYS) {
718
+ CHANGE_KEYS["FORM"] = "form";
719
+ CHANGE_KEYS["MODEL"] = "model";
720
+ })(CHANGE_KEYS || (CHANGE_KEYS = {}));
721
+ class WrappedFormControl {
722
+ // I lost way too much time trying to make this work without injecting the ViewContainerRef and the Injector,
723
+ // I'm giving up. So we have to inject these two manually for now.
724
+ constructor(vcr, wrapperType, injector, ngControl, renderer, el) {
725
+ this.vcr = vcr;
726
+ this.wrapperType = wrapperType;
727
+ this.ngControl = ngControl;
728
+ this.renderer = renderer;
729
+ this.el = el;
730
+ this.index = 0;
731
+ this.subscriptions = [];
732
+ if (injector) {
733
+ this.ngControlService = injector.get(NgControlService, null);
734
+ this.markControlService = injector.get(MarkControlService, null);
735
+ this.differs = injector.get(KeyValueDiffers, null);
736
+ }
737
+ if (this.markControlService) {
738
+ this.subscriptions.push(this.markControlService.touchedChange.subscribe(() => {
739
+ this.markAsTouched();
740
+ }));
741
+ }
742
+ }
743
+ get id() {
744
+ return this._id;
745
+ }
746
+ set id(value) {
747
+ this._id = value;
748
+ if (this.controlIdService) {
749
+ this.controlIdService.id = value;
750
+ }
751
+ }
752
+ get ariaDescribedById() {
753
+ const helpers = this.ngControlService?.container?.helpers;
754
+ if (!helpers?.show) {
755
+ return null;
756
+ }
757
+ const elementId = this.containerIdService?.id || this.controlIdService?.id;
758
+ /**
759
+ * If ContainerIdService or ControlIdService are missing don't try to guess
760
+ * Don't set anything.
761
+ */
762
+ if (!elementId) {
763
+ return null;
764
+ }
765
+ /**
766
+ * As the helper text is now always visible. If we have error/success then we should use both ids.
767
+ */
768
+ const describedByIds = [`${elementId}-${CONTROL_SUFFIX.HELPER}`];
769
+ if (helpers.showInvalid) {
770
+ describedByIds.push(`${elementId}-${CONTROL_SUFFIX.ERROR}`);
771
+ }
772
+ else if (helpers.showValid) {
773
+ describedByIds.push(`${elementId}-${CONTROL_SUFFIX.SUCCESS}`);
774
+ }
775
+ return describedByIds.join(' ');
776
+ }
777
+ ngOnInit() {
778
+ this._containerInjector = new HostWrapper(this.wrapperType, this.vcr, this.index);
779
+ this.controlIdService = this._containerInjector.get(ControlIdService);
780
+ this.injectControlClassService(this._containerInjector);
781
+ /**
782
+ * not all containers will provide `ContainerIdService`
783
+ */
784
+ this.containerIdService = this._containerInjector.get(ContainerIdService, null);
785
+ if (this._id) {
786
+ this.controlIdService.id = this._id;
787
+ }
788
+ else {
789
+ this._id = this.controlIdService.id;
790
+ }
791
+ // 4 possible variations
792
+ // 1. NO ngControlService and NO ngControl
793
+ // 2. NO ngControlService and YES ngControl
794
+ // 3. YES ngControlService and NO ngControl
795
+ // 4. YES ngControlService and YES ngControl
796
+ if (this.ngControl) {
797
+ this.differ = this.differs.find(this.ngControl).create();
798
+ }
799
+ if (this.ngControlService && this.ngControl) {
800
+ this.ngControlService.addControl(this.ngControl);
801
+ }
802
+ }
803
+ ngDoCheck() {
804
+ if (this.ngControl) {
805
+ this.triggerDoCheck(this.differ, this.ngControl);
806
+ }
807
+ }
808
+ ngOnDestroy() {
809
+ this.subscriptions.forEach(sub => sub?.unsubscribe());
810
+ }
811
+ // blur HostListener decorator MUST be 1 and on the parent.
812
+ // overrides MUST NOT have HostListener decorator.
813
+ triggerValidation() {
814
+ if (this.ngControl?.control?.markAsTouched) {
815
+ this.ngControl.control.markAsTouched();
816
+ }
817
+ }
818
+ // @TODO This method has a try/catch due to an unknown issue that came when building the hermesToggle feature
819
+ // We need to figure out why this fails for the HermesToggle scenario but works for Date picker...
820
+ // To see the error, remove the try/catch here and run the HermesToggle suite to see issues getting the container
821
+ // injector in time, and this ONLY HAPPENS in tests and not in dev/prod mode.
822
+ getProviderFromContainer(token, notFoundValue) {
823
+ try {
824
+ return this._containerInjector.get(token, notFoundValue);
825
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
826
+ }
827
+ catch (e) {
828
+ return notFoundValue;
829
+ }
830
+ }
831
+ injectControlClassService(injector) {
832
+ if (!this.controlClassService) {
833
+ this.controlClassService = injector.get(ControlClassService, null);
834
+ if (this.controlClassService) {
835
+ this.controlClassService.initControlClass(this.renderer, this.el.nativeElement);
836
+ }
837
+ }
838
+ }
839
+ triggerDoCheck(differ, ngControl) {
840
+ if (differ) {
841
+ const changes = differ.diff(ngControl);
842
+ if (changes) {
843
+ changes.forEachChangedItem(change => {
844
+ if ((change.key === CHANGE_KEYS.FORM || change.key === CHANGE_KEYS.MODEL) &&
845
+ change.currentValue !== change.previousValue) {
846
+ if (this.ngControlService) {
847
+ this.ngControlService.emitControlsChange(this.ngControlService.controls);
848
+ }
849
+ this.triggerValidation();
850
+ }
851
+ });
852
+ }
853
+ }
854
+ }
855
+ markAsTouched() {
856
+ if (this.ngControlService && this.ngControlService.hasMultipleControls) {
857
+ this.ngControlService.controls.forEach((ngControl) => {
858
+ ngControl.control.markAsTouched();
859
+ ngControl.control.updateValueAndValidity();
860
+ });
861
+ return;
862
+ }
863
+ if (this.ngControl) {
864
+ this.ngControl.control.markAsTouched();
865
+ this.ngControl.control.updateValueAndValidity();
866
+ }
867
+ }
868
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: WrappedFormControl, deps: [{ token: i0.ViewContainerRef }, { token: i0.Type }, { token: i0.Injector }, { token: i1$1.NgControl }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
869
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: WrappedFormControl, isStandalone: true, inputs: { id: "id" }, host: { listeners: { "blur": "triggerValidation()" }, properties: { "id": "this.id", "attr.aria-describedby": "this.ariaDescribedById" } }, ngImport: i0 }); }
870
+ }
871
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: WrappedFormControl, decorators: [{
872
+ type: Directive
873
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.Type }, { type: i0.Injector }, { type: i1$1.NgControl }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { id: [{
874
+ type: Input
875
+ }, {
876
+ type: HostBinding
877
+ }], ariaDescribedById: [{
878
+ type: HostBinding,
879
+ args: ['attr.aria-describedby']
880
+ }], triggerValidation: [{
881
+ type: HostListener,
882
+ args: ['blur']
883
+ }] } });
884
+
885
+ /*
886
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
887
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
888
+ * This software is released under MIT license.
889
+ * The full license information can be found in LICENSE in the root directory of this project.
890
+ */
891
+ class HermesControl extends WrappedFormControl {
892
+ constructor(vcr, injector, control, renderer, el) {
893
+ super(vcr, HermesControlContainer, injector, control, renderer, el);
894
+ this.index = 1;
895
+ }
896
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControl, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i1$1.NgControl, optional: true, self: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
897
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesControl, isStandalone: false, selector: "[hermesControl]", host: { properties: { "class.hermes-input": "true" } }, usesInheritance: true, ngImport: i0 }); }
898
+ }
899
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesControl, decorators: [{
900
+ type: Directive,
901
+ args: [{
902
+ selector: '[hermesControl]',
903
+ host: { '[class.hermes-input]': 'true' },
904
+ standalone: false,
905
+ }]
906
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1$1.NgControl, decorators: [{
907
+ type: Self
908
+ }, {
909
+ type: Optional
910
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }] });
911
+
912
+ /*
913
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
914
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
915
+ * This software is released under MIT license.
916
+ * The full license information can be found in LICENSE in the root directory of this project.
917
+ */
918
+ class HermesForm {
919
+ constructor(layoutService, markControlService) {
920
+ this.layoutService = layoutService;
921
+ this.markControlService = markControlService;
922
+ }
923
+ set labelSize(size) {
924
+ const sizeNumber = parseInt(size, 10) || 2;
925
+ this.layoutService.labelSize = sizeNumber;
926
+ }
927
+ onFormSubmit() {
928
+ this.markAsTouched();
929
+ }
930
+ // Trying to avoid adding an input and keep this backwards compatible at the same time
931
+ markAsTouched() {
932
+ this.markControlService.markAsTouched();
933
+ }
934
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesForm, deps: [{ token: LayoutService }, { token: MarkControlService }], target: i0.ɵɵFactoryTarget.Directive }); }
935
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesForm, isStandalone: false, selector: "[hermesForm]", inputs: { labelSize: ["hermesLabelSize", "labelSize"] }, host: { listeners: { "submit": "onFormSubmit()" }, properties: { "class.hermes-form": "true", "class.hermes-form-horizontal": "layoutService.isHorizontal()", "class.hermes-form-compact": "layoutService.isCompact()" } }, providers: [LayoutService, MarkControlService], queries: [{ propertyName: "labels", predicate: HermesControlLabel, descendants: true }], ngImport: i0 }); }
936
+ }
937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesForm, decorators: [{
938
+ type: Directive,
939
+ args: [{
940
+ selector: '[hermesForm]',
941
+ providers: [LayoutService, MarkControlService],
942
+ host: {
943
+ '[class.hermes-form]': 'true',
944
+ '[class.hermes-form-horizontal]': 'layoutService.isHorizontal()',
945
+ '[class.hermes-form-compact]': 'layoutService.isCompact()',
946
+ },
947
+ standalone: false,
948
+ }]
949
+ }], ctorParameters: () => [{ type: LayoutService }, { type: MarkControlService }], propDecorators: { labels: [{
950
+ type: ContentChildren,
951
+ args: [HermesControlLabel, { descendants: true }]
952
+ }], labelSize: [{
953
+ type: Input,
954
+ args: ['hermesLabelSize']
955
+ }], onFormSubmit: [{
956
+ type: HostListener,
957
+ args: ['submit']
958
+ }] } });
959
+
960
+ /*
961
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
962
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
963
+ * This software is released under MIT license.
964
+ * The full license information can be found in LICENSE in the root directory of this project.
965
+ */
966
+ class AbstractIfState {
967
+ constructor(ngControlService) {
968
+ this.ngControlService = ngControlService;
969
+ this.displayedContent = false;
970
+ if (ngControlService) {
971
+ ngControlService.controlsChanges
972
+ .pipe(tap(controls => {
973
+ this.controls = controls;
974
+ }), switchMap(controls => {
975
+ if (!controls || controls.length === 0) {
976
+ return [];
977
+ }
978
+ const statusStreams = controls.map(c => this.getControlStatusChangesObservable(c));
979
+ return merge(...statusStreams);
980
+ }), takeUntilDestroyed())
981
+ .subscribe(status => {
982
+ this.state = status;
983
+ this.handleState(status);
984
+ });
985
+ }
986
+ }
987
+ handleState(_state) {
988
+ /* overwrite in implementation to handle status change */
989
+ }
990
+ getControlStatusChangesObservable(control) {
991
+ if (!control.statusChanges) {
992
+ return of(null);
993
+ }
994
+ return control.statusChanges.pipe(startWith(control.status));
995
+ }
996
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AbstractIfState, deps: [{ token: NgControlService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
997
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: AbstractIfState, isStandalone: true, ngImport: i0 }); }
998
+ }
999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AbstractIfState, decorators: [{
1000
+ type: Directive
1001
+ }], ctorParameters: () => [{ type: NgControlService, decorators: [{
1002
+ type: Optional
1003
+ }] }] });
1004
+
1005
+ /*
1006
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1007
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1008
+ * This software is released under MIT license.
1009
+ * The full license information can be found in LICENSE in the root directory of this project.
1010
+ */
1011
+ class HermesIfError extends AbstractIfState {
1012
+ constructor(ngControlService, template, container) {
1013
+ super(ngControlService);
1014
+ this.template = template;
1015
+ this.container = container;
1016
+ if (!ngControlService) {
1017
+ throw new Error('hermesIfError can only be used within a form control container element like hermes-input-container');
1018
+ }
1019
+ }
1020
+ get error() {
1021
+ return this._error;
1022
+ }
1023
+ set error(value) {
1024
+ this._error = value;
1025
+ this.handleState(this.state);
1026
+ }
1027
+ /**
1028
+ * @param state CONTROL_STATE
1029
+ */
1030
+ handleState(state) {
1031
+ if (!this.controls?.length) {
1032
+ return;
1033
+ }
1034
+ if (this.error) {
1035
+ const invalidControl = this.controls?.filter(control => control.hasError(this.error))[0];
1036
+ this.displayError(!!invalidControl, invalidControl);
1037
+ }
1038
+ else {
1039
+ this.displayError(CONTROL_STATE.INVALID === state, this.controls[0]);
1040
+ }
1041
+ }
1042
+ displayError(invalid, control) {
1043
+ /* if no container do nothing */
1044
+ if (!this.container) {
1045
+ return;
1046
+ }
1047
+ if (invalid) {
1048
+ if (this.displayedContent === false) {
1049
+ this.embeddedViewRef = this.container.createEmbeddedView(this.template, {
1050
+ error: control.getError(this.error),
1051
+ });
1052
+ this.displayedContent = true;
1053
+ }
1054
+ else if (this.embeddedViewRef && this.embeddedViewRef.context) {
1055
+ // if view is already rendered, update the error object to keep it in sync
1056
+ this.embeddedViewRef.context.error = control.getError(this.error);
1057
+ }
1058
+ }
1059
+ else {
1060
+ this.container.clear();
1061
+ this.displayedContent = false;
1062
+ }
1063
+ }
1064
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesIfError, deps: [{ token: NgControlService, optional: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1065
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesIfError, isStandalone: false, selector: "[hermesIfError]", inputs: { error: ["hermesIfError", "error"] }, usesInheritance: true, ngImport: i0 }); }
1066
+ }
1067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesIfError, decorators: [{
1068
+ type: Directive,
1069
+ args: [{
1070
+ selector: '[hermesIfError]',
1071
+ standalone: false,
1072
+ }]
1073
+ }], ctorParameters: () => [{ type: NgControlService, decorators: [{
1074
+ type: Optional
1075
+ }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { error: [{
1076
+ type: Input,
1077
+ args: ['hermesIfError']
1078
+ }] } });
1079
+
1080
+ /*
1081
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1082
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1083
+ * This software is released under MIT license.
1084
+ * The full license information can be found in LICENSE in the root directory of this project.
1085
+ */
1086
+ class HermesIfSuccess extends AbstractIfState {
1087
+ constructor(ngControlService, template, container) {
1088
+ super(ngControlService);
1089
+ this.template = template;
1090
+ this.container = container;
1091
+ if (!ngControlService) {
1092
+ throw new Error('HermesIfSuccess can only be used within a form control container element like hermes-input-container');
1093
+ }
1094
+ }
1095
+ /**
1096
+ * @param state CONTROL_STATE
1097
+ */
1098
+ handleState(state) {
1099
+ const isValid = CONTROL_STATE.VALID === state;
1100
+ if (isValid && !this.displayedContent) {
1101
+ this.container.createEmbeddedView(this.template);
1102
+ }
1103
+ else if (!isValid && this.container) {
1104
+ this.container.clear();
1105
+ }
1106
+ this.displayedContent = isValid;
1107
+ }
1108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesIfSuccess, deps: [{ token: NgControlService, optional: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1109
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesIfSuccess, isStandalone: false, selector: "[hermesIfSuccess]", usesInheritance: true, ngImport: i0 }); }
1110
+ }
1111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesIfSuccess, decorators: [{
1112
+ type: Directive,
1113
+ args: [{
1114
+ selector: '[hermesIfSuccess]',
1115
+ standalone: false,
1116
+ }]
1117
+ }], ctorParameters: () => [{ type: NgControlService, decorators: [{
1118
+ type: Optional
1119
+ }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
1120
+
1121
+ /*
1122
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1123
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1124
+ * This software is released under MIT license.
1125
+ * The full license information can be found in LICENSE in the root directory of this project.
1126
+ */
1127
+ class HermesLayout {
1128
+ constructor(layoutService) {
1129
+ this.layoutService = layoutService;
1130
+ }
1131
+ ngOnInit() {
1132
+ // Only set the layout if it is a valid option
1133
+ if (this.layout && this.layoutService.isValid(this.layout)) {
1134
+ this.layoutService.layout = this.layout;
1135
+ }
1136
+ }
1137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLayout, deps: [{ token: LayoutService }], target: i0.ɵɵFactoryTarget.Directive }); }
1138
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesLayout, isStandalone: false, selector: "[hermesForm][hermesLayout]", inputs: { layout: ["hermesLayout", "layout"] }, ngImport: i0 }); }
1139
+ }
1140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLayout, decorators: [{
1141
+ type: Directive,
1142
+ args: [{
1143
+ selector: '[hermesForm][hermesLayout]',
1144
+ standalone: false,
1145
+ }]
1146
+ }], ctorParameters: () => [{ type: LayoutService }], propDecorators: { layout: [{
1147
+ type: Input,
1148
+ args: ['hermesLayout']
1149
+ }] } });
1150
+
1151
+ /*
1152
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1153
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1154
+ * This software is released under MIT license.
1155
+ * The full license information can be found in LICENSE in the root directory of this project.
1156
+ */
1157
+ class HermesCommonFormsModule {
1158
+ constructor() {
1159
+ ClarityIcons.addIcons(successStandardIcon, errorStandardIcon);
1160
+ }
1161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesCommonFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1162
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesCommonFormsModule, declarations: [HermesControlLabel,
1163
+ HermesControlError,
1164
+ HermesControlSuccess,
1165
+ HermesControlHelper,
1166
+ HermesIfError,
1167
+ HermesIfSuccess,
1168
+ HermesForm,
1169
+ HermesLayout,
1170
+ HermesControlContainer,
1171
+ HermesControl], imports: [CommonModule, HermesIcon], exports: [HermesControlLabel,
1172
+ HermesControlError,
1173
+ HermesControlSuccess,
1174
+ HermesControlHelper,
1175
+ HermesIfError,
1176
+ HermesIfSuccess,
1177
+ HermesForm,
1178
+ HermesLayout,
1179
+ HermesControlContainer,
1180
+ HermesControl,
1181
+ HermesIcon] }); }
1182
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesCommonFormsModule, imports: [CommonModule, HermesIcon] }); }
1183
+ }
1184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesCommonFormsModule, decorators: [{
1185
+ type: NgModule,
1186
+ args: [{
1187
+ imports: [CommonModule, HermesIcon],
1188
+ declarations: [
1189
+ HermesControlLabel,
1190
+ HermesControlError,
1191
+ HermesControlSuccess,
1192
+ HermesControlHelper,
1193
+ HermesIfError,
1194
+ HermesIfSuccess,
1195
+ HermesForm,
1196
+ HermesLayout,
1197
+ HermesControlContainer,
1198
+ HermesControl,
1199
+ ],
1200
+ exports: [
1201
+ HermesControlLabel,
1202
+ HermesControlError,
1203
+ HermesControlSuccess,
1204
+ HermesControlHelper,
1205
+ HermesIfError,
1206
+ HermesIfSuccess,
1207
+ HermesForm,
1208
+ HermesLayout,
1209
+ HermesControlContainer,
1210
+ HermesControl,
1211
+ HermesIcon,
1212
+ ],
1213
+ }]
1214
+ }], ctorParameters: () => [] });
1215
+
1216
+ /*
1217
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1218
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1219
+ * This software is released under MIT license.
1220
+ * The full license information can be found in LICENSE in the root directory of this project.
1221
+ */
1222
+ class FormsFocusService {
1223
+ constructor() {
1224
+ this._focused = new BehaviorSubject(false);
1225
+ }
1226
+ get focusChange() {
1227
+ return this._focused.asObservable();
1228
+ }
1229
+ set focused(state) {
1230
+ this._focused.next(state);
1231
+ }
1232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FormsFocusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1233
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FormsFocusService }); }
1234
+ }
1235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FormsFocusService, decorators: [{
1236
+ type: Injectable
1237
+ }] });
1238
+
1239
+ /*
1240
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1241
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1242
+ * This software is released under MIT license.
1243
+ * The full license information can be found in LICENSE in the root directory of this project.
1244
+ */
1245
+
1246
+ /**
1247
+ * Generated bundle index. Do not edit.
1248
+ */
1249
+
1250
+ export { AbstractIfState, CHANGE_KEYS, ContainerIdService, ControlClassService, ControlIdService, FormsFocusService, HermesAbstractContainer, HermesCommonFormsModule, HermesControl, HermesControlContainer, HermesControlError, HermesControlHelper, HermesControlLabel, HermesControlSuccess, HermesForm, HermesFormLayout, HermesIfError, HermesIfSuccess, HermesLayout, LayoutService, MarkControlService, NgControlService, WrappedFormControl };
1251
+ //# sourceMappingURL=hermes-ui-angular-forms-common.mjs.map