@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,1142 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Input, Component, HostBinding, Optional, EventEmitter, Output, ViewChildren, SkipSelf, NgModule } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import * as i3 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i2$1 from '@hermes-ui/angular/popover/dropdown';
7
+ import { HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';
8
+ import * as i3$1 from '@hermes-ui/angular/popover/common';
9
+ import * as i4 from '@hermes-ui/angular/icon';
10
+ import { ClarityIcons, angleIcon } from '@hermes-ui/angular/icon';
11
+ import * as i2 from '@hermes-ui/angular/addons/a11y';
12
+ import { ZoomLevel } from '@hermes-ui/angular/addons/a11y';
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
+ var PropertyViewModelType;
21
+ (function (PropertyViewModelType) {
22
+ PropertyViewModelType["Message"] = "Message";
23
+ PropertyViewModelType["PropertyValue"] = "PropertyValue";
24
+ PropertyViewModelType["PropertyKey"] = "PropertyKey";
25
+ PropertyViewModelType["Property"] = "Property";
26
+ PropertyViewModelType["Section"] = "Section";
27
+ PropertyViewModelType["Category"] = "Category";
28
+ PropertyViewModelType["PropertyValueComponent"] = "PropertyValueComponent";
29
+ })(PropertyViewModelType || (PropertyViewModelType = {}));
30
+
31
+ /*
32
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
33
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
34
+ * This software is released under MIT license.
35
+ * The full license information can be found in LICENSE in the root directory of this project.
36
+ */
37
+ /* eslint-disable @typescript-eslint/parameter-properties */
38
+ class PropertyViewMessageBuilder {
39
+ #text;
40
+ #icon;
41
+ #renderAsHtml;
42
+ constructor(parent) {
43
+ this.parent = parent;
44
+ this.#text = null;
45
+ this.#icon = null;
46
+ this.#renderAsHtml = false;
47
+ }
48
+ text(value) {
49
+ this.#text = value;
50
+ return this;
51
+ }
52
+ icon(value) {
53
+ this.#icon = value;
54
+ return this;
55
+ }
56
+ renderAsHtml(value) {
57
+ this.#renderAsHtml = value;
58
+ return this;
59
+ }
60
+ build() {
61
+ return {
62
+ type: PropertyViewModelType.Message,
63
+ text: this.#text,
64
+ icon: this.#icon,
65
+ renderAsHtml: this.#renderAsHtml,
66
+ };
67
+ }
68
+ clone(parentClone) {
69
+ const result = new PropertyViewMessageBuilder(parentClone);
70
+ result.#text = this.#text;
71
+ result.#icon = this.#icon;
72
+ result.#renderAsHtml = this.#renderAsHtml;
73
+ return result;
74
+ }
75
+ exit() {
76
+ return this.parent;
77
+ }
78
+ }
79
+
80
+ /*
81
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
82
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
83
+ * This software is released under MIT license.
84
+ * The full license information can be found in LICENSE in the root directory of this project.
85
+ */
86
+ /* eslint-disable @typescript-eslint/parameter-properties */
87
+ class PropertyViewPropertyKeyBuilder {
88
+ #text;
89
+ #icon;
90
+ constructor(parent) {
91
+ this.parent = parent;
92
+ this.#text = null;
93
+ this.#icon = null;
94
+ }
95
+ text(value) {
96
+ this.#text = value;
97
+ return this;
98
+ }
99
+ icon(value) {
100
+ this.#icon = value;
101
+ return this;
102
+ }
103
+ build() {
104
+ return {
105
+ type: PropertyViewModelType.PropertyKey,
106
+ text: this.#text,
107
+ icon: this.#icon,
108
+ };
109
+ }
110
+ clone(parentClone) {
111
+ const result = new PropertyViewPropertyKeyBuilder(parentClone);
112
+ result.#text = this.#text;
113
+ result.#icon = this.#icon;
114
+ return result;
115
+ }
116
+ exit() {
117
+ return this.parent;
118
+ }
119
+ }
120
+
121
+ /*
122
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
123
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
124
+ * This software is released under MIT license.
125
+ * The full license information can be found in LICENSE in the root directory of this project.
126
+ */
127
+ /* eslint-disable @typescript-eslint/parameter-properties */
128
+ class PropertyViewPropertyValueBuilder {
129
+ #text;
130
+ #icon;
131
+ #link;
132
+ constructor(parent) {
133
+ this.parent = parent;
134
+ this.#text = null;
135
+ this.#icon = null;
136
+ this.#link = null;
137
+ }
138
+ text(value) {
139
+ this.#text = value !== null ? value.toString() : null;
140
+ return this;
141
+ }
142
+ icon(value) {
143
+ this.#icon = value;
144
+ return this;
145
+ }
146
+ link(value) {
147
+ this.#link = value;
148
+ return this;
149
+ }
150
+ getLink() {
151
+ return this.#link;
152
+ }
153
+ build() {
154
+ return {
155
+ type: PropertyViewModelType.PropertyValue,
156
+ text: this.#text,
157
+ icon: this.#icon,
158
+ link: this.#link,
159
+ };
160
+ }
161
+ clone(parentClone) {
162
+ const result = new PropertyViewPropertyValueBuilder(parentClone);
163
+ result.#text = this.#text;
164
+ result.#icon = this.#icon;
165
+ // This field value is not cloned as it might contain external types.
166
+ result.#link = this.#link;
167
+ return result;
168
+ }
169
+ exit() {
170
+ return this.parent;
171
+ }
172
+ }
173
+
174
+ /*
175
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
176
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
177
+ * This software is released under MIT license.
178
+ * The full license information can be found in LICENSE in the root directory of this project.
179
+ */
180
+ class PropertyViewPropertyValueComponentBuilder {
181
+ constructor(parent) {
182
+ this.parent = parent;
183
+ this.componentType = null;
184
+ this.componentModel = null;
185
+ }
186
+ build() {
187
+ return {
188
+ type: PropertyViewModelType.PropertyValueComponent,
189
+ componentType: this.componentType,
190
+ componentModel: this.componentModel,
191
+ };
192
+ }
193
+ component(componentType) {
194
+ this.componentType = componentType;
195
+ return this;
196
+ }
197
+ model(componentModel) {
198
+ this.componentModel = componentModel;
199
+ return this;
200
+ }
201
+ clone(parentClone) {
202
+ const result = new PropertyViewPropertyValueComponentBuilder(parentClone);
203
+ result.componentType = this.componentType;
204
+ result.componentModel = this.componentModel;
205
+ return result;
206
+ }
207
+ exit() {
208
+ return this.parent;
209
+ }
210
+ }
211
+
212
+ /*
213
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
214
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
215
+ * This software is released under MIT license.
216
+ * The full license information can be found in LICENSE in the root directory of this project.
217
+ */
218
+ /* eslint-disable @typescript-eslint/parameter-properties */
219
+ class PropertyViewPropertyBuilder {
220
+ #keyBuilder;
221
+ #valueBuilders;
222
+ constructor(parent) {
223
+ this.parent = parent;
224
+ this.#keyBuilder = new PropertyViewPropertyKeyBuilder(this);
225
+ this.#valueBuilders = [];
226
+ }
227
+ keyBuilder() {
228
+ return this.#keyBuilder;
229
+ }
230
+ getValueBuilders() {
231
+ return this.#valueBuilders.concat();
232
+ }
233
+ valueBuilder() {
234
+ const result = new PropertyViewPropertyValueBuilder(this);
235
+ this.#valueBuilders.push(result);
236
+ return result;
237
+ }
238
+ valueComponentBuilder() {
239
+ const result = new PropertyViewPropertyValueComponentBuilder(this);
240
+ this.#valueBuilders.push(result);
241
+ return result;
242
+ }
243
+ build() {
244
+ return {
245
+ type: PropertyViewModelType.Property,
246
+ key: this.keyBuilder().build(),
247
+ content: this.getValueBuilders().map(builder => builder.build()),
248
+ };
249
+ }
250
+ clone(parentClone) {
251
+ const result = new PropertyViewPropertyBuilder(parentClone);
252
+ result.#keyBuilder = this.keyBuilder().clone(result);
253
+ result.#valueBuilders = this.getValueBuilders().map(builder => builder.clone(result));
254
+ return result;
255
+ }
256
+ exit() {
257
+ return this.parent;
258
+ }
259
+ }
260
+
261
+ /*
262
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
263
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
264
+ * This software is released under MIT license.
265
+ * The full license information can be found in LICENSE in the root directory of this project.
266
+ */
267
+ /* eslint-disable @typescript-eslint/parameter-properties */
268
+ class PropertyViewSectionBuilder {
269
+ static #infoIconClass = 'vx-icon-info_normal';
270
+ static #warningIconClass = 'vx-icon-warn';
271
+ static #errorIconClass = 'vx-icon-error';
272
+ #renderAsHtml;
273
+ #collapseContent;
274
+ #title;
275
+ #titleIcon;
276
+ #actions;
277
+ constructor(parent, id) {
278
+ this.parent = parent;
279
+ this.id = id;
280
+ this.#renderAsHtml = false;
281
+ this.#collapseContent = false;
282
+ this.#title = null;
283
+ this.#titleIcon = null;
284
+ this.#actions = [];
285
+ this.contentBuilders = [];
286
+ }
287
+ getId() {
288
+ return this.id;
289
+ }
290
+ renderAsHtml(value) {
291
+ this.#renderAsHtml = value;
292
+ return this;
293
+ }
294
+ collapseContent(value) {
295
+ this.#collapseContent = value;
296
+ return this;
297
+ }
298
+ title(value) {
299
+ this.#title = value;
300
+ return this;
301
+ }
302
+ titleIcon(value) {
303
+ this.#titleIcon = value;
304
+ return this;
305
+ }
306
+ action(value) {
307
+ if (value) {
308
+ this.#actions.push(value);
309
+ }
310
+ return this;
311
+ }
312
+ getActions() {
313
+ return this.#actions.concat();
314
+ }
315
+ propertyBuilder() {
316
+ const result = new PropertyViewPropertyBuilder(this);
317
+ this.contentBuilders.push(result);
318
+ return result;
319
+ }
320
+ property(key, values) {
321
+ let valuesArray;
322
+ if (values === null || values === undefined) {
323
+ valuesArray = [];
324
+ }
325
+ else if (values instanceof Array) {
326
+ valuesArray = values;
327
+ }
328
+ else {
329
+ valuesArray = [values];
330
+ }
331
+ const propertyBuilder = this.propertyBuilder();
332
+ propertyBuilder.keyBuilder().text(key);
333
+ valuesArray.forEach(value => propertyBuilder.valueBuilder().text(value));
334
+ return this;
335
+ }
336
+ messageBuilder() {
337
+ const result = new PropertyViewMessageBuilder(this);
338
+ this.contentBuilders.push(result);
339
+ return result;
340
+ }
341
+ message(text, icon) {
342
+ const messageBuilder = this.messageBuilder();
343
+ messageBuilder.text(text);
344
+ if (icon) {
345
+ messageBuilder.icon(icon);
346
+ }
347
+ return this;
348
+ }
349
+ info(text) {
350
+ return this.message(text, PropertyViewSectionBuilder.#infoIconClass);
351
+ }
352
+ warning(text) {
353
+ return this.message(text, PropertyViewSectionBuilder.#warningIconClass);
354
+ }
355
+ error(text) {
356
+ return this.message(text, PropertyViewSectionBuilder.#errorIconClass);
357
+ }
358
+ getContentBuilders() {
359
+ return this.contentBuilders.concat();
360
+ }
361
+ build() {
362
+ return {
363
+ type: PropertyViewModelType.Section,
364
+ id: this.id,
365
+ renderAsHtml: this.#renderAsHtml,
366
+ collapseContent: this.#collapseContent,
367
+ title: this.#title,
368
+ titleIcon: this.#titleIcon,
369
+ actions: this.getActions().concat(),
370
+ content: this.getContentBuilders().map(builder => builder.build()),
371
+ };
372
+ }
373
+ clone(parentClone) {
374
+ const result = new PropertyViewSectionBuilder(parentClone, this.id);
375
+ result.#renderAsHtml = this.#renderAsHtml;
376
+ result.#collapseContent = this.#collapseContent;
377
+ result.#title = this.#title;
378
+ result.#titleIcon = this.#titleIcon;
379
+ // This field value is not cloned as it might contain external types.
380
+ result.#actions = this.getActions().concat();
381
+ result.contentBuilders = this.getContentBuilders().map(builder => builder.clone(result));
382
+ return result;
383
+ }
384
+ exit() {
385
+ return this.parent;
386
+ }
387
+ }
388
+
389
+ /*
390
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
391
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
392
+ * This software is released under MIT license.
393
+ * The full license information can be found in LICENSE in the root directory of this project.
394
+ */
395
+ /* eslint-disable @typescript-eslint/parameter-properties */
396
+ class PropertyViewCategoryBuilder {
397
+ #title;
398
+ constructor(parent, id) {
399
+ this.parent = parent;
400
+ this.id = id;
401
+ this.#title = null;
402
+ this.contentBuilders = [];
403
+ }
404
+ getId() {
405
+ return this.id;
406
+ }
407
+ title(value) {
408
+ this.#title = value;
409
+ return this;
410
+ }
411
+ getAllSections() {
412
+ return this.contentBuilders.concat();
413
+ }
414
+ getSection(id) {
415
+ const matchingSections = this.getAllSections().filter(section => section.getId() === id);
416
+ if (matchingSections.length === 1) {
417
+ return matchingSections[0];
418
+ }
419
+ return null;
420
+ }
421
+ section(id) {
422
+ let sectionBuilder = this.getSection(id);
423
+ if (sectionBuilder === null) {
424
+ sectionBuilder = new PropertyViewSectionBuilder(this, id);
425
+ this.contentBuilders.push(sectionBuilder);
426
+ }
427
+ return sectionBuilder;
428
+ }
429
+ cloneAndAddBuilder(builder) {
430
+ if (this.getSection(builder.getId()) !== null) {
431
+ throw new Error(`Section '${builder.getId()}' already exists.`);
432
+ }
433
+ builder = builder.clone(this);
434
+ this.contentBuilders.push(builder);
435
+ return this;
436
+ }
437
+ cloneAndAddBuilders(builders) {
438
+ builders.forEach(builder => this.cloneAndAddBuilder(builder));
439
+ return this;
440
+ }
441
+ build() {
442
+ return {
443
+ type: PropertyViewModelType.Category,
444
+ id: this.id,
445
+ title: this.#title,
446
+ content: this.getAllSections().map(builder => builder.build()),
447
+ };
448
+ }
449
+ clone(parentClone) {
450
+ const result = new PropertyViewCategoryBuilder(parentClone, this.id);
451
+ result.#title = this.#title;
452
+ result.contentBuilders = this.getAllSections().map(builder => builder.clone(result));
453
+ return result;
454
+ }
455
+ exit() {
456
+ return this.parent;
457
+ }
458
+ }
459
+
460
+ /*
461
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
462
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
463
+ * This software is released under MIT license.
464
+ * The full license information can be found in LICENSE in the root directory of this project.
465
+ */
466
+ class PropertyViewBuilder {
467
+ static #allCategoryId = 'all';
468
+ #categoryBuilders;
469
+ constructor() {
470
+ this.#categoryBuilders = [];
471
+ }
472
+ getAllCategories() {
473
+ return this.#categoryBuilders.concat();
474
+ }
475
+ getCategory(id) {
476
+ const matchingBuilder = this.getAllCategories().filter(s => s.getId() === id);
477
+ if (matchingBuilder.length === 1) {
478
+ return matchingBuilder[0];
479
+ }
480
+ return null;
481
+ }
482
+ getSection(categoryId, sectionId) {
483
+ const category = this.getCategory(categoryId);
484
+ if (category === null) {
485
+ return null;
486
+ }
487
+ return category.getSection(sectionId);
488
+ }
489
+ category(id, insertionIndex) {
490
+ let categoryBuilder = this.getCategory(id);
491
+ if (categoryBuilder === null) {
492
+ categoryBuilder = new PropertyViewCategoryBuilder(this, id);
493
+ this.#categoryBuilders.push(categoryBuilder);
494
+ }
495
+ const removalIndex = this.#categoryBuilders.findIndex(b => b.getId() === id);
496
+ this.#categoryBuilders.splice(removalIndex, 1);
497
+ if (insertionIndex === undefined) {
498
+ insertionIndex = removalIndex;
499
+ }
500
+ else if (isNaN(insertionIndex) ||
501
+ !isFinite(insertionIndex) ||
502
+ insertionIndex !== parseInt(insertionIndex.toString(), 10) ||
503
+ insertionIndex < 0 ||
504
+ this.#categoryBuilders.length < insertionIndex) {
505
+ throw new Error(`Invalid insertion index ${insertionIndex}.` +
506
+ ` Insertion index must be an integer in the range` +
507
+ ` [0, ${this.#categoryBuilders.length}].`);
508
+ }
509
+ else {
510
+ // no action
511
+ }
512
+ this.#categoryBuilders.splice(insertionIndex, 0, categoryBuilder);
513
+ return categoryBuilder;
514
+ }
515
+ generateAllCategory(categoryTitle) {
516
+ if (this.getCategory(PropertyViewBuilder.#allCategoryId)) {
517
+ throw new Error(`Category '${PropertyViewBuilder.#allCategoryId}' already exists.`);
518
+ }
519
+ return this.category(PropertyViewBuilder.#allCategoryId, 0)
520
+ .title(categoryTitle)
521
+ .cloneAndAddBuilders(this.getAllCategories()
522
+ .map(category => category.getAllSections())
523
+ // Array.flat()
524
+ .reduce((previous, current) => previous.concat(current)));
525
+ }
526
+ build() {
527
+ return {
528
+ categories: this.getAllCategories().map(builder => builder.build()),
529
+ };
530
+ }
531
+ clone() {
532
+ const result = new PropertyViewBuilder();
533
+ result.#categoryBuilders = this.getAllCategories().map(builder => builder.clone(result));
534
+ return result;
535
+ }
536
+ exit() {
537
+ return null;
538
+ }
539
+ }
540
+
541
+ /*
542
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
543
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
544
+ * This software is released under MIT license.
545
+ * The full license information can be found in LICENSE in the root directory of this project.
546
+ */
547
+ class PropertyViewConfigProvider {
548
+ constructor() {
549
+ this.configSubject = new BehaviorSubject(undefined);
550
+ }
551
+ getConfig() {
552
+ return this.config;
553
+ }
554
+ config$() {
555
+ return this.configSubject.asObservable();
556
+ }
557
+ setConfig(value) {
558
+ this.config = value;
559
+ this.configSubject.next(value);
560
+ }
561
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewConfigProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
562
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewConfigProvider }); }
563
+ }
564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewConfigProvider, decorators: [{
565
+ type: Injectable
566
+ }] });
567
+
568
+ /*
569
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
570
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
571
+ * This software is released under MIT license.
572
+ * The full license information can be found in LICENSE in the root directory of this project.
573
+ */
574
+ class PropertyViewSectionsExpandedStateManager {
575
+ constructor() {
576
+ this.categoriesSectionsExpandedStateData = {};
577
+ }
578
+ getSectionExpandedState(categoryId, sectionId) {
579
+ if (!(categoryId in this.categoriesSectionsExpandedStateData)) {
580
+ throw new Error(`Unknown category ID: ${categoryId}`);
581
+ }
582
+ if (!(sectionId in this.categoriesSectionsExpandedStateData[categoryId])) {
583
+ throw new Error(`Unknown section ID: ${sectionId}`);
584
+ }
585
+ const sectionExpandedState = this.categoriesSectionsExpandedStateData[categoryId][sectionId];
586
+ if (typeof sectionExpandedState.user === 'boolean') {
587
+ return sectionExpandedState.user;
588
+ }
589
+ return sectionExpandedState.data;
590
+ }
591
+ setSectionExpandedUserState(categoryId, sectionId, expandedUserState) {
592
+ if (!(categoryId in this.categoriesSectionsExpandedStateData)) {
593
+ throw new Error(`Unknown category ID: ${categoryId}`);
594
+ }
595
+ if (!(sectionId in this.categoriesSectionsExpandedStateData[categoryId])) {
596
+ throw new Error(`Unknown section ID: ${sectionId}`);
597
+ }
598
+ this.categoriesSectionsExpandedStateData[categoryId][sectionId].user = expandedUserState;
599
+ }
600
+ update(categories) {
601
+ const categoriesById = {};
602
+ for (const category of categories) {
603
+ categoriesById[category.id] = category;
604
+ }
605
+ this.removeOldCategories(categoriesById);
606
+ this.createNewCategories(categoriesById);
607
+ // Update categories' sections
608
+ for (const categoryId of Object.keys(categoriesById)) {
609
+ this.updateCategorySections(categoryId, categoriesById);
610
+ }
611
+ }
612
+ removeOldCategories(categoriesById) {
613
+ for (const categoryId of Object.keys(this.categoriesSectionsExpandedStateData)) {
614
+ if (!(categoryId in categoriesById)) {
615
+ delete this.categoriesSectionsExpandedStateData[categoryId];
616
+ }
617
+ }
618
+ }
619
+ createNewCategories(categoriesById) {
620
+ for (const categoryId of Object.keys(categoriesById)) {
621
+ if (!(categoryId in this.categoriesSectionsExpandedStateData)) {
622
+ this.categoriesSectionsExpandedStateData[categoryId] = {};
623
+ }
624
+ }
625
+ }
626
+ updateCategorySections(categoryId, categoriesById) {
627
+ const sectionsById = {};
628
+ for (const section of categoriesById[categoryId].content) {
629
+ sectionsById[section.id] = section;
630
+ }
631
+ const sectionsExpandedState = this.categoriesSectionsExpandedStateData[categoryId];
632
+ // Remove sections
633
+ for (const sectionId of Object.keys(sectionsExpandedState)) {
634
+ if (!(sectionId in sectionsById)) {
635
+ delete sectionsExpandedState[sectionId];
636
+ }
637
+ }
638
+ // Update sections
639
+ for (const sectionId of Object.keys(sectionsExpandedState)) {
640
+ sectionsExpandedState[sectionId].data = !sectionsById[sectionId].collapseContent;
641
+ }
642
+ // Create sections
643
+ for (const sectionId of Object.keys(sectionsById)) {
644
+ if (!(sectionId in sectionsExpandedState)) {
645
+ sectionsExpandedState[sectionId] = {
646
+ user: undefined,
647
+ data: !sectionsById[sectionId].collapseContent,
648
+ };
649
+ }
650
+ }
651
+ }
652
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewSectionsExpandedStateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
653
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewSectionsExpandedStateManager }); }
654
+ }
655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewSectionsExpandedStateManager, decorators: [{
656
+ type: Injectable
657
+ }], ctorParameters: () => [] });
658
+
659
+ /*
660
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
661
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
662
+ * This software is released under MIT license.
663
+ * The full license information can be found in LICENSE in the root directory of this project.
664
+ */
665
+ /**
666
+ * User-visible strings used in the 'appfx-property-view' library.
667
+ * Fields are read-only to avoid accidentally modifying the values and affecting all
668
+ * components in the application.
669
+ *
670
+ * Strings are in English only. If you need to provide localized strings:
671
+ * - extend this class
672
+ * - override all fields with localized values
673
+ * - provide instance in the module where you use PropertyViewModule
674
+ *
675
+ * ```
676
+ * @NgModule({
677
+ * ...
678
+ * providers: [
679
+ * { provide: PropertyViewStrings, useClass: LocalizedPropertyViewStrings },
680
+ * ]
681
+ * })
682
+ * export class AppModule {}
683
+ * ```
684
+ */
685
+ class PropertyViewStrings {
686
+ constructor() {
687
+ /**
688
+ * Toggle button aria-label.
689
+ */
690
+ this.toggle = 'Toggle {0} section';
691
+ /**
692
+ * Actions drop-down label.
693
+ */
694
+ this.actions = 'Actions';
695
+ /**
696
+ * Aria label describing number of section items in a property view
697
+ */
698
+ this.categoryListItemsAreaLabel = '{0} items grouped in {1} sections.';
699
+ /**
700
+ * Aria label describing number section items in a property view when one item
701
+ */
702
+ this.categoryListItemAreaLabel = '{0} items grouped in 1 section.';
703
+ }
704
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewStrings, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
705
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewStrings }); }
706
+ }
707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewStrings, decorators: [{
708
+ type: Injectable
709
+ }] });
710
+
711
+ /*
712
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
713
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
714
+ * This software is released under MIT license.
715
+ * The full license information can be found in LICENSE in the root directory of this project.
716
+ */
717
+ class PropertyViewMessageComponent {
718
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
719
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PropertyViewMessageComponent, isStandalone: false, selector: "[appfx-property-view-message]", inputs: { data: "data" }, ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<td colspan=\"2\" class=\"pv-message-container left\" role=\"presentation\">\r\n <span class=\"pv-message-content\">\r\n <span *ngIf=\"data.icon\" class=\"pv-message-icon\" [attr.aria-hidden]=\"true\" [ngClass]=\"data.icon\"></span>\r\n <span\r\n *ngIf=\"!data.renderAsHtml\"\r\n class=\"pv-message-text\"\r\n [attr.aria-label]=\"data.text\"\r\n [innerText]=\"data.text\"\r\n ></span>\r\n <span\r\n *ngIf=\"data.renderAsHtml\"\r\n class=\"pv-message-text\"\r\n [attr.aria-label]=\"data.text\"\r\n [innerHtml]=\"data.text\"\r\n ></span>\r\n </span>\r\n</td>\r\n", styles: [":host.indented .pv-message-container{padding-left:.96rem}:host.collapsed{visibility:hidden}:host.collapsed .pv-message-container{padding-top:0;padding-bottom:0}:host.collapsed .pv-message-container .pv-message-content{display:block;height:0;overflow:hidden}:host .pv-message-container{padding-left:0;padding-right:0;line-height:inherit}:host .pv-message-container .pv-message-content{display:inline-block}:host .pv-message-container .pv-message-content .pv-message-icon{display:inline-block;margin:0;vertical-align:middle}:host .pv-message-container .pv-message-content .pv-message-text{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
720
+ }
721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewMessageComponent, decorators: [{
722
+ type: Component,
723
+ args: [{ selector: '[appfx-property-view-message]', standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<td colspan=\"2\" class=\"pv-message-container left\" role=\"presentation\">\r\n <span class=\"pv-message-content\">\r\n <span *ngIf=\"data.icon\" class=\"pv-message-icon\" [attr.aria-hidden]=\"true\" [ngClass]=\"data.icon\"></span>\r\n <span\r\n *ngIf=\"!data.renderAsHtml\"\r\n class=\"pv-message-text\"\r\n [attr.aria-label]=\"data.text\"\r\n [innerText]=\"data.text\"\r\n ></span>\r\n <span\r\n *ngIf=\"data.renderAsHtml\"\r\n class=\"pv-message-text\"\r\n [attr.aria-label]=\"data.text\"\r\n [innerHtml]=\"data.text\"\r\n ></span>\r\n </span>\r\n</td>\r\n", styles: [":host.indented .pv-message-container{padding-left:.96rem}:host.collapsed{visibility:hidden}:host.collapsed .pv-message-container{padding-top:0;padding-bottom:0}:host.collapsed .pv-message-container .pv-message-content{display:block;height:0;overflow:hidden}:host .pv-message-container{padding-left:0;padding-right:0;line-height:inherit}:host .pv-message-container .pv-message-content{display:inline-block}:host .pv-message-container .pv-message-content .pv-message-icon{display:inline-block;margin:0;vertical-align:middle}:host .pv-message-container .pv-message-content .pv-message-text{vertical-align:middle}\n"] }]
724
+ }], propDecorators: { data: [{
725
+ type: Input
726
+ }] } });
727
+
728
+ /*
729
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
730
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
731
+ * This software is released under MIT license.
732
+ * The full license information can be found in LICENSE in the root directory of this project.
733
+ */
734
+ /**
735
+ * Component used to dynamically render
736
+ * a given component passed as a property of the PropertyViewPropertyComponentValueModel
737
+ */
738
+ class PropertyViewPropertyValueContainerComponent {
739
+ #pageComponent;
740
+ constructor(componentFactoryResolver, cdRef, viewContainer) {
741
+ this.componentFactoryResolver = componentFactoryResolver;
742
+ this.cdRef = cdRef;
743
+ this.viewContainer = viewContainer;
744
+ }
745
+ ngOnInit() {
746
+ this.createComponent();
747
+ }
748
+ ngOnChanges(changes) {
749
+ if (changes.componentType && !changes.componentType.firstChange) {
750
+ this.createComponent();
751
+ }
752
+ else if (changes.componentModel && !changes.componentModel.firstChange) {
753
+ if (this.#pageComponent) {
754
+ this.#pageComponent.model = this.componentModel;
755
+ this.cdRef.detectChanges();
756
+ }
757
+ }
758
+ else {
759
+ // no action
760
+ }
761
+ }
762
+ ngOnDestroy() {
763
+ this.clear();
764
+ }
765
+ createComponent() {
766
+ this.clear();
767
+ if (!this.componentType) {
768
+ return;
769
+ }
770
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentType);
771
+ const componentRef = this.viewContainer.createComponent(componentFactory);
772
+ this.#pageComponent = componentRef.instance;
773
+ this.#pageComponent.model = this.componentModel;
774
+ this.cdRef.detectChanges();
775
+ }
776
+ clear() {
777
+ this.viewContainer.clear();
778
+ this.#pageComponent = undefined;
779
+ }
780
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewPropertyValueContainerComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
781
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PropertyViewPropertyValueContainerComponent, isStandalone: false, selector: "appfx-property-view-property-value-component", inputs: { componentType: "componentType", componentModel: "componentModel" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
782
+ }
783
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewPropertyValueContainerComponent, decorators: [{
784
+ type: Component,
785
+ args: [{
786
+ selector: 'appfx-property-view-property-value-component',
787
+ standalone: false,
788
+ template: '',
789
+ }]
790
+ }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }], propDecorators: { componentType: [{
791
+ type: Input
792
+ }], componentModel: [{
793
+ type: Input
794
+ }] } });
795
+
796
+ /*
797
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
798
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
799
+ * This software is released under MIT license.
800
+ * The full license information can be found in LICENSE in the root directory of this project.
801
+ */
802
+ class PropertyViewPropertyComponent {
803
+ constructor(propertyViewConfigProvider, zoomLevelService) {
804
+ this.propertyViewConfigProvider = propertyViewConfigProvider;
805
+ this.zoomLevelService = zoomLevelService;
806
+ this.PropertyViewModelType = PropertyViewModelType;
807
+ this.is4xZoomed = false;
808
+ }
809
+ ngOnChanges(changes) {
810
+ if (changes.data) {
811
+ this.propertyValueModelContent = this.data?.content.filter(value => value.type === PropertyViewModelType.PropertyValue);
812
+ this.propertyValueComponentModelContent = this.data?.content.filter(value => value.type === PropertyViewModelType.PropertyValueComponent);
813
+ }
814
+ }
815
+ handleLinkClick(link) {
816
+ link.clickHandler();
817
+ }
818
+ getValueTrackingId(index) {
819
+ return index;
820
+ }
821
+ ngOnInit() {
822
+ this.zoomLevelSubscription = this.zoomLevelService?.onChange.subscribe((level) => (this.is4xZoomed = level === ZoomLevel.x4));
823
+ }
824
+ ngOnDestroy() {
825
+ this.zoomLevelSubscription?.unsubscribe();
826
+ }
827
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewPropertyComponent, deps: [{ token: PropertyViewConfigProvider }, { token: i2.ZoomLevelService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
828
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PropertyViewPropertyComponent, isStandalone: false, selector: "[appfx-property-view-property]", inputs: { data: "data" }, host: { properties: { "class.zoom4x": "this.is4xZoomed" } }, usesOnChanges: true, ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<td class=\"pv-property-key-container left\" role=\"presentation\">\r\n <span\r\n class=\"pv-property-key-content\"\r\n [style.width.rem]=\"!is4xZoomed ? propertyViewConfigProvider.getConfig()?.propertyKeyWidthInRem : undefined\"\r\n >\r\n <span *ngIf=\"data.key.icon\" class=\"pv-property-key-icon\" [ngClass]=\"data.key.icon\"></span>\r\n <span class=\"pv-property-key-text\" [attr.aria-label]=\"data.key.text\" [innerText]=\"data.key.text\"></span>\r\n </span>\r\n</td>\r\n<td class=\"pv-property-values-container left\" role=\"presentation\">\r\n <span *ngIf=\"data.content.length > 0\" class=\"pv-property-values-content\">\r\n <span *ngFor=\"let value of propertyValueModelContent; trackBy: getValueTrackingId\" class=\"pv-property-value\">\r\n <span *ngIf=\"value.icon\" class=\"pv-property-value-icon\" [ngClass]=\"value.icon\"></span>\r\n <a\r\n *ngIf=\"value.link\"\r\n class=\"pv-property-value-link\"\r\n href=\"javascript:void(0)\"\r\n [innerText]=\"value.text\"\r\n (click)=\"handleLinkClick(value.link)\"\r\n ></a>\r\n <span\r\n *ngIf=\"!value.link\"\r\n class=\"pv-property-value-text\"\r\n [attr.aria-label]=\"value.text\"\r\n [innerText]=\"value.text\"\r\n ></span>\r\n </span>\r\n <span\r\n *ngFor=\"let value of propertyValueComponentModelContent; trackBy: getValueTrackingId\"\r\n class=\"pv-property-value\"\r\n >\r\n <appfx-property-view-property-value-component\r\n [componentType]=\"value.componentType\"\r\n [componentModel]=\"value.componentModel\"\r\n >\r\n </appfx-property-view-property-value-component>\r\n </span>\r\n </span>\r\n</td>\r\n", styles: [":host.indented .pv-property-key-container{padding-left:.96rem}:host.collapsed{visibility:hidden}:host.collapsed .pv-property-key-container,:host.collapsed .pv-property-values-container{padding-top:0;padding-bottom:0}:host.collapsed .pv-property-key-container .pv-property-key-content,:host.collapsed .pv-property-key-container .pv-property-values-content,:host.collapsed .pv-property-values-container .pv-property-key-content,:host.collapsed .pv-property-values-container .pv-property-values-content{display:block;height:0;overflow:hidden}:host .pv-property-key-container,:host .pv-property-values-container{padding-top:.4rem!important;padding-bottom:.2rem!important;padding-left:0;padding-right:0;line-height:inherit}:host .pv-property-key-container{font-weight:500;padding-right:.96rem}:host .pv-property-key-container .pv-property-key-content{display:inline-block;width:7.2rem;overflow-wrap:break-word}:host .pv-property-key-container .pv-property-key-content .pv-property-key-icon{display:inline-block;margin:0;vertical-align:middle}:host .pv-property-key-container .pv-property-key-content .pv-property-key-text{white-space:pre-wrap;vertical-align:middle}:host .pv-property-values-container{padding-left:.96rem}:host .pv-property-values-container .pv-property-values-content{min-width:7.2rem;display:inline-block;width:100%;box-sizing:border-box}:host .pv-property-values-container .pv-property-values-content .pv-property-value{width:100%;display:inline-block}:host .pv-property-values-container .pv-property-values-content .pv-property-value:not(:first-child){padding-top:.24rem}:host .pv-property-values-container .pv-property-values-content .pv-property-value .pv-property-value-icon{display:inline-block;margin:0;vertical-align:middle}:host .pv-property-values-container .pv-property-values-content .pv-property-value .pv-property-value-link{vertical-align:middle}:host .pv-property-values-container .pv-property-values-content .pv-property-value .pv-property-value-text{white-space:pre-wrap;vertical-align:middle}:host.zoom4x:not(.indented) .pv-property-values-container{padding-left:0}:host.zoom4x .pv-property-key-container{padding-right:0}:host.zoom4x .pv-property-key-container,:host.zoom4x .pv-property-values-container{display:block;width:100%}:host.zoom4x .pv-property-key-container .pv-property-key-content{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PropertyViewPropertyValueContainerComponent, selector: "appfx-property-view-property-value-component", inputs: ["componentType", "componentModel"] }] }); }
829
+ }
830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewPropertyComponent, decorators: [{
831
+ type: Component,
832
+ args: [{ selector: '[appfx-property-view-property]', standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<td class=\"pv-property-key-container left\" role=\"presentation\">\r\n <span\r\n class=\"pv-property-key-content\"\r\n [style.width.rem]=\"!is4xZoomed ? propertyViewConfigProvider.getConfig()?.propertyKeyWidthInRem : undefined\"\r\n >\r\n <span *ngIf=\"data.key.icon\" class=\"pv-property-key-icon\" [ngClass]=\"data.key.icon\"></span>\r\n <span class=\"pv-property-key-text\" [attr.aria-label]=\"data.key.text\" [innerText]=\"data.key.text\"></span>\r\n </span>\r\n</td>\r\n<td class=\"pv-property-values-container left\" role=\"presentation\">\r\n <span *ngIf=\"data.content.length > 0\" class=\"pv-property-values-content\">\r\n <span *ngFor=\"let value of propertyValueModelContent; trackBy: getValueTrackingId\" class=\"pv-property-value\">\r\n <span *ngIf=\"value.icon\" class=\"pv-property-value-icon\" [ngClass]=\"value.icon\"></span>\r\n <a\r\n *ngIf=\"value.link\"\r\n class=\"pv-property-value-link\"\r\n href=\"javascript:void(0)\"\r\n [innerText]=\"value.text\"\r\n (click)=\"handleLinkClick(value.link)\"\r\n ></a>\r\n <span\r\n *ngIf=\"!value.link\"\r\n class=\"pv-property-value-text\"\r\n [attr.aria-label]=\"value.text\"\r\n [innerText]=\"value.text\"\r\n ></span>\r\n </span>\r\n <span\r\n *ngFor=\"let value of propertyValueComponentModelContent; trackBy: getValueTrackingId\"\r\n class=\"pv-property-value\"\r\n >\r\n <appfx-property-view-property-value-component\r\n [componentType]=\"value.componentType\"\r\n [componentModel]=\"value.componentModel\"\r\n >\r\n </appfx-property-view-property-value-component>\r\n </span>\r\n </span>\r\n</td>\r\n", styles: [":host.indented .pv-property-key-container{padding-left:.96rem}:host.collapsed{visibility:hidden}:host.collapsed .pv-property-key-container,:host.collapsed .pv-property-values-container{padding-top:0;padding-bottom:0}:host.collapsed .pv-property-key-container .pv-property-key-content,:host.collapsed .pv-property-key-container .pv-property-values-content,:host.collapsed .pv-property-values-container .pv-property-key-content,:host.collapsed .pv-property-values-container .pv-property-values-content{display:block;height:0;overflow:hidden}:host .pv-property-key-container,:host .pv-property-values-container{padding-top:.4rem!important;padding-bottom:.2rem!important;padding-left:0;padding-right:0;line-height:inherit}:host .pv-property-key-container{font-weight:500;padding-right:.96rem}:host .pv-property-key-container .pv-property-key-content{display:inline-block;width:7.2rem;overflow-wrap:break-word}:host .pv-property-key-container .pv-property-key-content .pv-property-key-icon{display:inline-block;margin:0;vertical-align:middle}:host .pv-property-key-container .pv-property-key-content .pv-property-key-text{white-space:pre-wrap;vertical-align:middle}:host .pv-property-values-container{padding-left:.96rem}:host .pv-property-values-container .pv-property-values-content{min-width:7.2rem;display:inline-block;width:100%;box-sizing:border-box}:host .pv-property-values-container .pv-property-values-content .pv-property-value{width:100%;display:inline-block}:host .pv-property-values-container .pv-property-values-content .pv-property-value:not(:first-child){padding-top:.24rem}:host .pv-property-values-container .pv-property-values-content .pv-property-value .pv-property-value-icon{display:inline-block;margin:0;vertical-align:middle}:host .pv-property-values-container .pv-property-values-content .pv-property-value .pv-property-value-link{vertical-align:middle}:host .pv-property-values-container .pv-property-values-content .pv-property-value .pv-property-value-text{white-space:pre-wrap;vertical-align:middle}:host.zoom4x:not(.indented) .pv-property-values-container{padding-left:0}:host.zoom4x .pv-property-key-container{padding-right:0}:host.zoom4x .pv-property-key-container,:host.zoom4x .pv-property-values-container{display:block;width:100%}:host.zoom4x .pv-property-key-container .pv-property-key-content{width:100%}\n"] }]
833
+ }], ctorParameters: () => [{ type: PropertyViewConfigProvider }, { type: i2.ZoomLevelService, decorators: [{
834
+ type: Optional
835
+ }] }], propDecorators: { data: [{
836
+ type: Input
837
+ }], is4xZoomed: [{
838
+ type: HostBinding,
839
+ args: ['class.zoom4x']
840
+ }] } });
841
+
842
+ /*
843
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
844
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
845
+ * This software is released under MIT license.
846
+ * The full license information can be found in LICENSE in the root directory of this project.
847
+ */
848
+ class PropertyViewSectionComponent {
849
+ constructor(propertyViewStrings) {
850
+ this.propertyViewStrings = propertyViewStrings;
851
+ this.PropertyViewModelType = PropertyViewModelType;
852
+ this.expandedChange = new EventEmitter();
853
+ }
854
+ toggleExpandedState() {
855
+ this.expandedChange.emit(!this.expanded);
856
+ }
857
+ handleActionClick(action) {
858
+ if (!action.isEnabled) {
859
+ return;
860
+ }
861
+ action.clickHandler();
862
+ }
863
+ getContentTrackingId(index) {
864
+ return index;
865
+ }
866
+ getSectionTitleToggleButtonAriaLabel() {
867
+ return this.getFormattedLabel(this.propertyViewStrings.toggle);
868
+ }
869
+ /**
870
+ * Returns unique formatted label if title is not null,
871
+ * otherwise sets static label without any placeholder
872
+ */
873
+ getFormattedLabel(label) {
874
+ return label.replace('{0} ', this.data.title ? this.data.title + ' ' : '');
875
+ }
876
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewSectionComponent, deps: [{ token: PropertyViewStrings }], target: i0.ɵɵFactoryTarget.Component }); }
877
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PropertyViewSectionComponent, isStandalone: false, selector: "[appfx-property-view-section]", inputs: { data: "data", expanded: "expanded", componentId: "componentId" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<tr *ngIf=\"data.title\" class=\"pv-section-title-container\" role=\"listitem\">\r\n <th colspan=\"2\" class=\"pv-section-title-content left\" role=\"presentation\" scope=\"colgroup\">\r\n <button\r\n class=\"pv-section-title-expand-button\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-controls]=\"componentId\"\r\n [attr.aria-label]=\"getSectionTitleToggleButtonAriaLabel()\"\r\n (click)=\"toggleExpandedState()\"\r\n >\r\n <hermes-icon shape=\"angle\" aria-hidden=\"true\" [direction]=\"expanded ? 'down' : 'right'\"></hermes-icon>\r\n </button>\r\n <span *ngIf=\"data.titleIcon\" class=\"pv-section-title-icon\" aria-hidden=\"true\" [ngClass]=\"data.titleIcon\"></span>\r\n <span\r\n *ngIf=\"!data.renderAsHtml\"\r\n class=\"pv-section-title-text\"\r\n role=\"heading\"\r\n aria-level=\"3\"\r\n [innerText]=\"data.title\"\r\n ></span>\r\n <span\r\n *ngIf=\"data.renderAsHtml\"\r\n class=\"pv-section-title-text\"\r\n role=\"heading\"\r\n aria-level=\"3\"\r\n [innerHtml]=\"data.title\"\r\n ></span>\r\n <hermes-dropdown *ngIf=\"data.actions.length > 0\" class=\"pv-section-actions-dropdown\">\r\n <button type=\"button\" class=\"btn btn-link\" hermesDropdownTrigger>\r\n {{ propertyViewStrings.actions }}\r\n <hermes-icon shape=\"angle\" direction=\"down\" aria-hidden=\"true\"></hermes-icon>\r\n </button>\r\n <hermes-dropdown-menu *hermesIfOpen>\r\n <div\r\n *ngFor=\"let action of data.actions\"\r\n hermesDropdownItem\r\n [innerText]=\"action.title\"\r\n [hermesDisabled]=\"!action.isEnabled\"\r\n (click)=\"handleActionClick(action)\"\r\n ></div>\r\n </hermes-dropdown-menu>\r\n </hermes-dropdown>\r\n </th>\r\n</tr>\r\n<ng-container *ngFor=\"let item of data.content; trackBy: getContentTrackingId\">\r\n <tr\r\n *ngIf=\"item.type === PropertyViewModelType.Message\"\r\n appfx-property-view-message\r\n [data]=\"item\"\r\n role=\"listitem\"\r\n [ngClass]=\"{ indented: !!data.title, collapsed: !expanded && !!data.title }\"\r\n ></tr>\r\n <tr\r\n *ngIf=\"item.type === PropertyViewModelType.Property\"\r\n appfx-property-view-property\r\n [data]=\"item\"\r\n role=\"listitem\"\r\n [ngClass]=\"{ indented: !!data.title, collapsed: !expanded && !!data.title }\"\r\n ></tr>\r\n</ng-container>\r\n", styles: [":host .pv-section-title-container .pv-section-title-content{padding-left:0;padding-right:0;border:0 solid transparent;line-height:inherit;font-size:.65rem;background-color:unset}:host .pv-section-title-container .pv-section-title-content .pv-section-title-expand-button{padding:0;border:0;background-color:transparent;cursor:pointer;vertical-align:middle;color:unset}:host .pv-section-title-container .pv-section-title-content .pv-section-title-icon{margin:0;vertical-align:middle}:host .pv-section-title-container .pv-section-title-content .pv-section-title-text{vertical-align:middle}:host .pv-section-title-container .pv-section-title-content .pv-section-actions-dropdown{display:inline-block;vertical-align:middle}:host .pv-section-title-container .pv-section-title-content .pv-section-actions-dropdown [hermesDropdownTrigger]{height:auto;font-size:inherit;line-height:inherit}:host .pv-section-title-container .pv-section-title-content .pv-section-actions-dropdown hermes-icon{top:2px}\n"], dependencies: [{ kind: "component", type: i2$1.HermesDropdown, selector: "hermes-dropdown", inputs: ["hermesCloseMenuOnItemClick"] }, { kind: "component", type: i2$1.HermesDropdownMenu, selector: "hermes-dropdown-menu", inputs: ["hermesPosition"] }, { kind: "directive", type: i2$1.HermesDropdownTrigger, selector: "[hermesDropdownTrigger],[hermesDropdownToggle]" }, { kind: "directive", type: i2$1.HermesDropdownItem, selector: "[hermesDropdownItem]", inputs: ["hermesDisabled", "id"] }, { kind: "directive", type: i3$1.HermesIfOpen, selector: "[hermesIfOpen]", inputs: ["hermesIfOpen"], outputs: ["hermesIfOpenChange"] }, { kind: "component", type: i4.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PropertyViewMessageComponent, selector: "[appfx-property-view-message]", inputs: ["data"] }, { kind: "component", type: PropertyViewPropertyComponent, selector: "[appfx-property-view-property]", inputs: ["data"] }] }); }
878
+ }
879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewSectionComponent, decorators: [{
880
+ type: Component,
881
+ args: [{ selector: '[appfx-property-view-section]', standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<tr *ngIf=\"data.title\" class=\"pv-section-title-container\" role=\"listitem\">\r\n <th colspan=\"2\" class=\"pv-section-title-content left\" role=\"presentation\" scope=\"colgroup\">\r\n <button\r\n class=\"pv-section-title-expand-button\"\r\n [attr.aria-expanded]=\"expanded\"\r\n [attr.aria-controls]=\"componentId\"\r\n [attr.aria-label]=\"getSectionTitleToggleButtonAriaLabel()\"\r\n (click)=\"toggleExpandedState()\"\r\n >\r\n <hermes-icon shape=\"angle\" aria-hidden=\"true\" [direction]=\"expanded ? 'down' : 'right'\"></hermes-icon>\r\n </button>\r\n <span *ngIf=\"data.titleIcon\" class=\"pv-section-title-icon\" aria-hidden=\"true\" [ngClass]=\"data.titleIcon\"></span>\r\n <span\r\n *ngIf=\"!data.renderAsHtml\"\r\n class=\"pv-section-title-text\"\r\n role=\"heading\"\r\n aria-level=\"3\"\r\n [innerText]=\"data.title\"\r\n ></span>\r\n <span\r\n *ngIf=\"data.renderAsHtml\"\r\n class=\"pv-section-title-text\"\r\n role=\"heading\"\r\n aria-level=\"3\"\r\n [innerHtml]=\"data.title\"\r\n ></span>\r\n <hermes-dropdown *ngIf=\"data.actions.length > 0\" class=\"pv-section-actions-dropdown\">\r\n <button type=\"button\" class=\"btn btn-link\" hermesDropdownTrigger>\r\n {{ propertyViewStrings.actions }}\r\n <hermes-icon shape=\"angle\" direction=\"down\" aria-hidden=\"true\"></hermes-icon>\r\n </button>\r\n <hermes-dropdown-menu *hermesIfOpen>\r\n <div\r\n *ngFor=\"let action of data.actions\"\r\n hermesDropdownItem\r\n [innerText]=\"action.title\"\r\n [hermesDisabled]=\"!action.isEnabled\"\r\n (click)=\"handleActionClick(action)\"\r\n ></div>\r\n </hermes-dropdown-menu>\r\n </hermes-dropdown>\r\n </th>\r\n</tr>\r\n<ng-container *ngFor=\"let item of data.content; trackBy: getContentTrackingId\">\r\n <tr\r\n *ngIf=\"item.type === PropertyViewModelType.Message\"\r\n appfx-property-view-message\r\n [data]=\"item\"\r\n role=\"listitem\"\r\n [ngClass]=\"{ indented: !!data.title, collapsed: !expanded && !!data.title }\"\r\n ></tr>\r\n <tr\r\n *ngIf=\"item.type === PropertyViewModelType.Property\"\r\n appfx-property-view-property\r\n [data]=\"item\"\r\n role=\"listitem\"\r\n [ngClass]=\"{ indented: !!data.title, collapsed: !expanded && !!data.title }\"\r\n ></tr>\r\n</ng-container>\r\n", styles: [":host .pv-section-title-container .pv-section-title-content{padding-left:0;padding-right:0;border:0 solid transparent;line-height:inherit;font-size:.65rem;background-color:unset}:host .pv-section-title-container .pv-section-title-content .pv-section-title-expand-button{padding:0;border:0;background-color:transparent;cursor:pointer;vertical-align:middle;color:unset}:host .pv-section-title-container .pv-section-title-content .pv-section-title-icon{margin:0;vertical-align:middle}:host .pv-section-title-container .pv-section-title-content .pv-section-title-text{vertical-align:middle}:host .pv-section-title-container .pv-section-title-content .pv-section-actions-dropdown{display:inline-block;vertical-align:middle}:host .pv-section-title-container .pv-section-title-content .pv-section-actions-dropdown [hermesDropdownTrigger]{height:auto;font-size:inherit;line-height:inherit}:host .pv-section-title-container .pv-section-title-content .pv-section-actions-dropdown hermes-icon{top:2px}\n"] }]
882
+ }], ctorParameters: () => [{ type: PropertyViewStrings }], propDecorators: { data: [{
883
+ type: Input
884
+ }], expanded: [{
885
+ type: Input
886
+ }], componentId: [{
887
+ type: Input
888
+ }], expandedChange: [{
889
+ type: Output
890
+ }] } });
891
+
892
+ /*
893
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
894
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
895
+ * This software is released under MIT license.
896
+ * The full license information can be found in LICENSE in the root directory of this project.
897
+ */
898
+ class PropertyViewCategoryComponent {
899
+ constructor(expandedStateManager, propertyViewStrings) {
900
+ this.expandedStateManager = expandedStateManager;
901
+ this.propertyViewStrings = propertyViewStrings;
902
+ this.PropertyViewModelType = PropertyViewModelType;
903
+ }
904
+ getSectionExpandedState(sectionId) {
905
+ return this.expandedStateManager.getSectionExpandedState(this.data.id, sectionId);
906
+ }
907
+ onSectionExpandedStateChange(sectionId, expandedUserState) {
908
+ this.expandedStateManager.setSectionExpandedUserState(this.data.id, sectionId, expandedUserState);
909
+ }
910
+ getSectionTrackingId(index, data) {
911
+ return data.id;
912
+ }
913
+ getSectionComponentId(section) {
914
+ return `${this.componentId}-section-${section.id}-component`;
915
+ }
916
+ getSectionComponentAriaLabelId(section) {
917
+ if (section.title) {
918
+ return `${this.getSectionComponentId(section)}-aria-label`;
919
+ }
920
+ return undefined;
921
+ }
922
+ getCategoryListItemsAreaLabel() {
923
+ let propertiesCount = 0;
924
+ this.data.content.forEach((section) => {
925
+ propertiesCount += section.content.length;
926
+ });
927
+ return this.data.content.length > 1
928
+ ? this.propertyViewStrings.categoryListItemsAreaLabel
929
+ .replace('{0}', propertiesCount.toString())
930
+ .replace('{1}', this.data.content.length.toString())
931
+ : this.propertyViewStrings.categoryListItemAreaLabel.replace('{0}', propertiesCount.toString());
932
+ }
933
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewCategoryComponent, deps: [{ token: PropertyViewSectionsExpandedStateManager }, { token: PropertyViewStrings }], target: i0.ɵɵFactoryTarget.Component }); }
934
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PropertyViewCategoryComponent, isStandalone: false, selector: "appfx-property-view-category", inputs: { data: "data", componentId: "componentId" }, ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<table\r\n *ngIf=\"data.content.length > 0\"\r\n class=\"pv-sections-table table table-compact table-noborder\"\r\n role=\"presentation\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"getCategoryListItemsAreaLabel()\"\r\n>\r\n <ng-container *ngFor=\"let section of data.content; first as first; trackBy: getSectionTrackingId\">\r\n <tbody class=\"section-spacer\" *ngIf=\"!first\" aria-hidden=\"true\">\r\n <tr>\r\n <th scope=\"colgroup\"></th>\r\n </tr>\r\n </tbody>\r\n <!-- Due to bug in NVDA we need to put the labelling element next to\r\n the labelled element. In some cases NVDA does not announce\r\n the labelled element text when the labelling element is a child\r\n of the labelled element.-->\r\n <tbody\r\n *ngIf=\"section.type === PropertyViewModelType.Section && section.title\"\r\n class=\"pv-section-visually-hidden\"\r\n [attr.id]=\"getSectionComponentAriaLabelId(section)\"\r\n >\r\n <tr>\r\n <th *ngIf=\"!section.renderAsHtml\" [innerText]=\"section.title\" scope=\"colgroup\"></th>\r\n <th *ngIf=\"section.renderAsHtml\" [innerHTML]=\"section.title\" scope=\"colgroup\"></th>\r\n </tr>\r\n </tbody>\r\n <tbody\r\n *ngIf=\"section.type === PropertyViewModelType.Section\"\r\n appfx-property-view-section\r\n role=\"list\"\r\n [attr.aria-labelledby]=\"getSectionComponentAriaLabelId(section)\"\r\n [attr.id]=\"getSectionComponentId(section)\"\r\n [componentId]=\"getSectionComponentId(section)\"\r\n [data]=\"section\"\r\n [expanded]=\"getSectionExpandedState(section.id)\"\r\n (expandedChange)=\"onSectionExpandedStateChange(section.id, $event)\"\r\n ></tbody>\r\n </ng-container>\r\n</table>\r\n", styles: [":host{display:block;width:100%;height:100%;overflow:auto;padding:.6rem;line-height:14px;box-sizing:border-box}:host .pv-sections-table{width:auto;margin:0;box-sizing:border-box;border-collapse:separate}:host .pv-sections-table .section-spacer,:host .pv-sections-table [appfx-property-view-section]{border:0 solid transparent}:host .pv-sections-table .section-spacer th{padding-top:.6rem;padding-bottom:0;background-color:unset}:host .pv-sections-table .pv-section-visually-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PropertyViewSectionComponent, selector: "[appfx-property-view-section]", inputs: ["data", "expanded", "componentId"], outputs: ["expandedChange"] }] }); }
935
+ }
936
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewCategoryComponent, decorators: [{
937
+ type: Component,
938
+ args: [{ selector: 'appfx-property-view-category', standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<table\r\n *ngIf=\"data.content.length > 0\"\r\n class=\"pv-sections-table table table-compact table-noborder\"\r\n role=\"presentation\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"getCategoryListItemsAreaLabel()\"\r\n>\r\n <ng-container *ngFor=\"let section of data.content; first as first; trackBy: getSectionTrackingId\">\r\n <tbody class=\"section-spacer\" *ngIf=\"!first\" aria-hidden=\"true\">\r\n <tr>\r\n <th scope=\"colgroup\"></th>\r\n </tr>\r\n </tbody>\r\n <!-- Due to bug in NVDA we need to put the labelling element next to\r\n the labelled element. In some cases NVDA does not announce\r\n the labelled element text when the labelling element is a child\r\n of the labelled element.-->\r\n <tbody\r\n *ngIf=\"section.type === PropertyViewModelType.Section && section.title\"\r\n class=\"pv-section-visually-hidden\"\r\n [attr.id]=\"getSectionComponentAriaLabelId(section)\"\r\n >\r\n <tr>\r\n <th *ngIf=\"!section.renderAsHtml\" [innerText]=\"section.title\" scope=\"colgroup\"></th>\r\n <th *ngIf=\"section.renderAsHtml\" [innerHTML]=\"section.title\" scope=\"colgroup\"></th>\r\n </tr>\r\n </tbody>\r\n <tbody\r\n *ngIf=\"section.type === PropertyViewModelType.Section\"\r\n appfx-property-view-section\r\n role=\"list\"\r\n [attr.aria-labelledby]=\"getSectionComponentAriaLabelId(section)\"\r\n [attr.id]=\"getSectionComponentId(section)\"\r\n [componentId]=\"getSectionComponentId(section)\"\r\n [data]=\"section\"\r\n [expanded]=\"getSectionExpandedState(section.id)\"\r\n (expandedChange)=\"onSectionExpandedStateChange(section.id, $event)\"\r\n ></tbody>\r\n </ng-container>\r\n</table>\r\n", styles: [":host{display:block;width:100%;height:100%;overflow:auto;padding:.6rem;line-height:14px;box-sizing:border-box}:host .pv-sections-table{width:auto;margin:0;box-sizing:border-box;border-collapse:separate}:host .pv-sections-table .section-spacer,:host .pv-sections-table [appfx-property-view-section]{border:0 solid transparent}:host .pv-sections-table .section-spacer th{padding-top:.6rem;padding-bottom:0;background-color:unset}:host .pv-sections-table .pv-section-visually-hidden{display:none}\n"] }]
939
+ }], ctorParameters: () => [{ type: PropertyViewSectionsExpandedStateManager }, { type: PropertyViewStrings }], propDecorators: { data: [{
940
+ type: Input
941
+ }], componentId: [{
942
+ type: Input
943
+ }] } });
944
+
945
+ /*
946
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
947
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
948
+ * This software is released under MIT license.
949
+ * The full license information can be found in LICENSE in the root directory of this project.
950
+ */
951
+ class PropertyViewComponent {
952
+ static { this.idCounter = 0; }
953
+ constructor(expandedStateManager, propertyViewConfigProvider) {
954
+ this.expandedStateManager = expandedStateManager;
955
+ this.propertyViewConfigProvider = propertyViewConfigProvider;
956
+ this.basedId = 'appfx-property-view-' + PropertyViewComponent.idCounter++;
957
+ }
958
+ set config(value) {
959
+ this.propertyViewConfigProvider.setConfig(value);
960
+ }
961
+ ngDoCheck() {
962
+ this.expandedStateManager.update(this.data ? this.data.categories : []);
963
+ this.validateAndUpdateSelectedCategory();
964
+ this.validateAndUpdateFocusedCategory();
965
+ }
966
+ selectCategory(category) {
967
+ this.selectedCategoryId = category.id;
968
+ this.focusedCategoryId = this.selectedCategoryId;
969
+ }
970
+ isCategorySelected(category) {
971
+ return category.id === this.selectedCategoryId;
972
+ }
973
+ isCategoryFocused(category) {
974
+ return category.id === this.focusedCategoryId;
975
+ }
976
+ getCategoryTabId(category) {
977
+ return `${this.basedId}-category-${category.id}-tab`;
978
+ }
979
+ getCategoryPanelId(category) {
980
+ return `${this.basedId}-category-${category.id}-panel`;
981
+ }
982
+ getCategoryComponentId(category) {
983
+ return `${this.basedId}-category-${category.id}-component`;
984
+ }
985
+ getCategoryTrackingId(index, data) {
986
+ return data.id;
987
+ }
988
+ onTabListKeydown(event) {
989
+ if (!this.data || this.data.categories.length === 0 || this.focusedCategoryId === undefined) {
990
+ return;
991
+ }
992
+ const focusedCategoryIndex = this.data.categories.findIndex(category => category.id === this.focusedCategoryId);
993
+ if (focusedCategoryIndex === -1) {
994
+ return;
995
+ }
996
+ let newFocusedCategoryIndex = focusedCategoryIndex;
997
+ if (event.key === 'ArrowLeft' || event.key === 'Left') {
998
+ if (newFocusedCategoryIndex === 0) {
999
+ newFocusedCategoryIndex = this.data.categories.length - 1;
1000
+ }
1001
+ else {
1002
+ newFocusedCategoryIndex--;
1003
+ }
1004
+ }
1005
+ else if (event.key === 'ArrowRight' || event.key === 'Right') {
1006
+ if (newFocusedCategoryIndex === this.data.categories.length - 1) {
1007
+ newFocusedCategoryIndex = 0;
1008
+ }
1009
+ else {
1010
+ newFocusedCategoryIndex++;
1011
+ }
1012
+ }
1013
+ else {
1014
+ // no action
1015
+ }
1016
+ this.focusedCategoryId = this.data.categories[newFocusedCategoryIndex].id;
1017
+ if (newFocusedCategoryIndex !== focusedCategoryIndex) {
1018
+ const categoryTabButtons = this.categoryTabButtonsList.toArray();
1019
+ const focusedCategoryTabButton = categoryTabButtons[newFocusedCategoryIndex].nativeElement;
1020
+ focusedCategoryTabButton.focus();
1021
+ }
1022
+ }
1023
+ validateAndUpdateSelectedCategory() {
1024
+ if (!this.data || this.data.categories.length === 0) {
1025
+ this.selectedCategoryId = undefined;
1026
+ return;
1027
+ }
1028
+ const isSelectedCategoryValid = this.data.categories.some(category => category.id === this.selectedCategoryId);
1029
+ if (!isSelectedCategoryValid) {
1030
+ this.selectedCategoryId = this.data.categories[0].id;
1031
+ }
1032
+ }
1033
+ validateAndUpdateFocusedCategory() {
1034
+ if (!this.data || this.data.categories.length === 0) {
1035
+ this.focusedCategoryId = undefined;
1036
+ return;
1037
+ }
1038
+ const isFocusedCategoryValid = this.data.categories.some(category => category.id === this.focusedCategoryId);
1039
+ if (!isFocusedCategoryValid) {
1040
+ this.focusedCategoryId = this.selectedCategoryId;
1041
+ }
1042
+ }
1043
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewComponent, deps: [{ token: PropertyViewSectionsExpandedStateManager }, { token: PropertyViewConfigProvider }], target: i0.ɵɵFactoryTarget.Component }); }
1044
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: PropertyViewComponent, isStandalone: false, selector: "appfx-property-view", inputs: { data: "data", config: "config" }, providers: [PropertyViewConfigProvider, PropertyViewSectionsExpandedStateManager], viewQueries: [{ propertyName: "categoryTabButtonsList", predicate: ["categoryTabButton"], descendants: true }], ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<ng-container *ngIf=\"data && data.categories && data.categories.length > 1\">\r\n <ul class=\"nav\" role=\"tablist\" (keydown)=\"onTabListKeydown($event)\">\r\n <li *ngFor=\"let category of data?.categories\" class=\"nav-item\" role=\"presentation\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-link nav-link\"\r\n role=\"tab\"\r\n #categoryTabButton\r\n [attr.id]=\"getCategoryTabId(category)\"\r\n [attr.tabindex]=\"isCategoryFocused(category) ? 0 : -1\"\r\n [attr.aria-selected]=\"isCategorySelected(category)\"\r\n [attr.aria-controls]=\"getCategoryPanelId(category)\"\r\n [ngClass]=\"{ active: isCategorySelected(category) }\"\r\n [innerText]=\"category.title\"\r\n (click)=\"selectCategory(category)\"\r\n ></button>\r\n </li>\r\n </ul>\r\n <ng-container *ngFor=\"let category of data?.categories; trackBy: getCategoryTrackingId\">\r\n <div\r\n *ngIf=\"category.id === selectedCategoryId\"\r\n class=\"pv-category-container\"\r\n role=\"tabpanel\"\r\n [attr.id]=\"getCategoryPanelId(category)\"\r\n [attr.aria-labelledby]=\"getCategoryTabId(category)\"\r\n [attr.aria-expanded]=\"isCategorySelected(category)\"\r\n [attr.aria-hidden]=\"isCategorySelected(category) ? undefined : true\"\r\n >\r\n <appfx-property-view-category\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n [componentId]=\"getCategoryComponentId(category)\"\r\n [data]=\"category\"\r\n >\r\n </appfx-property-view-category>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<div *ngIf=\"data && data.categories && data.categories.length === 1\" class=\"pv-category-container\" role=\"presentation\">\r\n <appfx-property-view-category\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n [componentId]=\"getCategoryComponentId(data.categories[0])\"\r\n [data]=\"data.categories[0]\"\r\n >\r\n </appfx-property-view-category>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%;height:100%}:host .nav{flex:0 0 auto}:host .pv-category-container{flex:1 1 auto;width:100%;height:100%;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PropertyViewCategoryComponent, selector: "appfx-property-view-category", inputs: ["data", "componentId"] }] }); }
1045
+ }
1046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewComponent, decorators: [{
1047
+ type: Component,
1048
+ args: [{ selector: 'appfx-property-view', standalone: false, providers: [PropertyViewConfigProvider, PropertyViewSectionsExpandedStateManager], template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<ng-container *ngIf=\"data && data.categories && data.categories.length > 1\">\r\n <ul class=\"nav\" role=\"tablist\" (keydown)=\"onTabListKeydown($event)\">\r\n <li *ngFor=\"let category of data?.categories\" class=\"nav-item\" role=\"presentation\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-link nav-link\"\r\n role=\"tab\"\r\n #categoryTabButton\r\n [attr.id]=\"getCategoryTabId(category)\"\r\n [attr.tabindex]=\"isCategoryFocused(category) ? 0 : -1\"\r\n [attr.aria-selected]=\"isCategorySelected(category)\"\r\n [attr.aria-controls]=\"getCategoryPanelId(category)\"\r\n [ngClass]=\"{ active: isCategorySelected(category) }\"\r\n [innerText]=\"category.title\"\r\n (click)=\"selectCategory(category)\"\r\n ></button>\r\n </li>\r\n </ul>\r\n <ng-container *ngFor=\"let category of data?.categories; trackBy: getCategoryTrackingId\">\r\n <div\r\n *ngIf=\"category.id === selectedCategoryId\"\r\n class=\"pv-category-container\"\r\n role=\"tabpanel\"\r\n [attr.id]=\"getCategoryPanelId(category)\"\r\n [attr.aria-labelledby]=\"getCategoryTabId(category)\"\r\n [attr.aria-expanded]=\"isCategorySelected(category)\"\r\n [attr.aria-hidden]=\"isCategorySelected(category) ? undefined : true\"\r\n >\r\n <appfx-property-view-category\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n [componentId]=\"getCategoryComponentId(category)\"\r\n [data]=\"category\"\r\n >\r\n </appfx-property-view-category>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<div *ngIf=\"data && data.categories && data.categories.length === 1\" class=\"pv-category-container\" role=\"presentation\">\r\n <appfx-property-view-category\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n [componentId]=\"getCategoryComponentId(data.categories[0])\"\r\n [data]=\"data.categories[0]\"\r\n >\r\n </appfx-property-view-category>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%;height:100%}:host .nav{flex:0 0 auto}:host .pv-category-container{flex:1 1 auto;width:100%;height:100%;overflow:auto}\n"] }]
1049
+ }], ctorParameters: () => [{ type: PropertyViewSectionsExpandedStateManager }, { type: PropertyViewConfigProvider }], propDecorators: { data: [{
1050
+ type: Input
1051
+ }], categoryTabButtonsList: [{
1052
+ type: ViewChildren,
1053
+ args: ['categoryTabButton']
1054
+ }], config: [{
1055
+ type: Input
1056
+ }] } });
1057
+
1058
+ /*
1059
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1060
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1061
+ * This software is released under MIT license.
1062
+ * The full license information can be found in LICENSE in the root directory of this project.
1063
+ */
1064
+ class PropertyViewService {
1065
+ createPropertyViewBuilder() {
1066
+ return new PropertyViewBuilder();
1067
+ }
1068
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1069
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewService }); }
1070
+ }
1071
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: PropertyViewService, decorators: [{
1072
+ type: Injectable
1073
+ }] });
1074
+
1075
+ /*
1076
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1077
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1078
+ * This software is released under MIT license.
1079
+ * The full license information can be found in LICENSE in the root directory of this project.
1080
+ */
1081
+ function pvStringsServiceFactory(existing) {
1082
+ return existing || new PropertyViewStrings();
1083
+ }
1084
+ class AppfxPropertyViewModule {
1085
+ constructor() {
1086
+ ClarityIcons.addIcons(angleIcon);
1087
+ }
1088
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxPropertyViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1089
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: AppfxPropertyViewModule, declarations: [PropertyViewCategoryComponent,
1090
+ PropertyViewComponent,
1091
+ PropertyViewMessageComponent,
1092
+ PropertyViewPropertyComponent,
1093
+ PropertyViewPropertyValueContainerComponent,
1094
+ PropertyViewSectionComponent], imports: [HermesDropdownModule, CommonModule], exports: [PropertyViewComponent] }); }
1095
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxPropertyViewModule, providers: [
1096
+ PropertyViewService,
1097
+ {
1098
+ // This pattern allows the importer of this module to specify its own PropertyViewStrings.
1099
+ provide: PropertyViewStrings,
1100
+ useFactory: pvStringsServiceFactory,
1101
+ deps: [[new Optional(), new SkipSelf(), PropertyViewStrings]],
1102
+ },
1103
+ ], imports: [HermesDropdownModule, CommonModule] }); }
1104
+ }
1105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxPropertyViewModule, decorators: [{
1106
+ type: NgModule,
1107
+ args: [{
1108
+ imports: [HermesDropdownModule, CommonModule],
1109
+ declarations: [
1110
+ PropertyViewCategoryComponent,
1111
+ PropertyViewComponent,
1112
+ PropertyViewMessageComponent,
1113
+ PropertyViewPropertyComponent,
1114
+ PropertyViewPropertyValueContainerComponent,
1115
+ PropertyViewSectionComponent,
1116
+ ],
1117
+ providers: [
1118
+ PropertyViewService,
1119
+ {
1120
+ // This pattern allows the importer of this module to specify its own PropertyViewStrings.
1121
+ provide: PropertyViewStrings,
1122
+ useFactory: pvStringsServiceFactory,
1123
+ deps: [[new Optional(), new SkipSelf(), PropertyViewStrings]],
1124
+ },
1125
+ ],
1126
+ exports: [PropertyViewComponent],
1127
+ }]
1128
+ }], ctorParameters: () => [] });
1129
+
1130
+ /*
1131
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
1132
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
1133
+ * This software is released under MIT license.
1134
+ * The full license information can be found in LICENSE in the root directory of this project.
1135
+ */
1136
+
1137
+ /**
1138
+ * Generated bundle index. Do not edit.
1139
+ */
1140
+
1141
+ export { AppfxPropertyViewModule, PropertyViewBuilder, PropertyViewCategoryBuilder, PropertyViewComponent, PropertyViewMessageBuilder, PropertyViewModelType, AppfxPropertyViewModule as PropertyViewModule, PropertyViewPropertyBuilder, PropertyViewPropertyKeyBuilder, PropertyViewPropertyValueBuilder, PropertyViewPropertyValueComponentBuilder, PropertyViewSectionBuilder, PropertyViewService, PropertyViewStrings };
1142
+ //# sourceMappingURL=hermes-ui-angular-addons-property-view.mjs.map