@hermes-ui/angular 0.1.7 → 0.2.0

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 (108) hide show
  1. package/README.md +6 -6
  2. package/button/_buttons.clarity.scss +80 -2
  3. package/button/_mixins.buttons.scss +44 -2
  4. package/button/_properties.buttons.scss +209 -247
  5. package/button/_variables.buttons.scss +22 -0
  6. package/fesm2022/hermes-ui-angular-accordion.mjs +2 -2
  7. package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
  8. package/fesm2022/hermes-ui-angular-addons-card-container.mjs +3 -3
  9. package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
  10. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2 -2
  11. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
  12. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2 -2
  13. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
  14. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +2 -2
  15. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
  16. package/fesm2022/hermes-ui-angular-addons-property-view.mjs +2 -2
  17. package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
  18. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +66 -66
  19. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
  20. package/fesm2022/hermes-ui-angular-addons-var.mjs +2 -2
  21. package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
  22. package/fesm2022/hermes-ui-angular-addons-wizard.mjs +2 -2
  23. package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
  24. package/fesm2022/hermes-ui-angular-button.mjs +2 -2
  25. package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
  26. package/fesm2022/hermes-ui-angular-data-datagrid.mjs +2 -2
  27. package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
  28. package/fesm2022/hermes-ui-angular-data-stack-view.mjs +2 -2
  29. package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
  30. package/fesm2022/hermes-ui-angular-data-tree-view.mjs +2 -2
  31. package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
  32. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +2 -2
  33. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
  34. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +2 -2
  35. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
  36. package/fesm2022/hermes-ui-angular-forms-combobox.mjs +2 -2
  37. package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
  38. package/fesm2022/hermes-ui-angular-forms-common.mjs +2 -2
  39. package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
  40. package/fesm2022/hermes-ui-angular-forms-datalist.mjs +2 -2
  41. package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
  42. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3 -3
  43. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
  44. package/fesm2022/hermes-ui-angular-forms-file-input.mjs +2 -2
  45. package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
  46. package/fesm2022/hermes-ui-angular-forms-input.mjs +2 -2
  47. package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
  48. package/fesm2022/hermes-ui-angular-forms-native-select.mjs +2 -2
  49. package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
  50. package/fesm2022/hermes-ui-angular-forms-number-input.mjs +2 -2
  51. package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
  52. package/fesm2022/hermes-ui-angular-forms-password.mjs +2 -2
  53. package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
  54. package/fesm2022/hermes-ui-angular-forms-radio.mjs +2 -2
  55. package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
  56. package/fesm2022/hermes-ui-angular-forms-range.mjs +2 -2
  57. package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
  58. package/fesm2022/hermes-ui-angular-forms-select.mjs +2 -2
  59. package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
  60. package/fesm2022/hermes-ui-angular-forms-textarea.mjs +2 -2
  61. package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
  62. package/fesm2022/hermes-ui-angular-icon.mjs +29 -29
  63. package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
  64. package/fesm2022/hermes-ui-angular-layout-nav.mjs +2 -2
  65. package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
  66. package/fesm2022/hermes-ui-angular-layout-tabs.mjs +2 -2
  67. package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
  68. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +382 -28
  69. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
  70. package/fesm2022/hermes-ui-angular-modal.mjs +2 -2
  71. package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
  72. package/fesm2022/hermes-ui-angular-popover-signpost.mjs +2 -2
  73. package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
  74. package/fesm2022/hermes-ui-angular-stepper.mjs +2 -2
  75. package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
  76. package/fesm2022/hermes-ui-angular-timeline.mjs +2 -2
  77. package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
  78. package/fesm2022/hermes-ui-angular-toast.mjs +2 -2
  79. package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
  80. package/fesm2022/hermes-ui-angular-utils.mjs +6 -0
  81. package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
  82. package/fesm2022/hermes-ui-angular-wizard.mjs +2 -2
  83. package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
  84. package/forms/combobox/_combobox.clarity.scss +18 -4
  85. package/forms/combobox/_properties.combobox.scss +5 -5
  86. package/forms/styles/_input-group.clarity.scss +7 -0
  87. package/forms/styles/_mixins.forms.scss +12 -10
  88. package/forms/styles/_native-select.clarity.scss +17 -5
  89. package/forms/styles/_properties.forms.scss +29 -18
  90. package/forms/styles/_textarea.clarity.scss +4 -4
  91. package/forms/styles/_variables.forms.scss +6 -0
  92. package/layout/main-container/_properties.header.scss +44 -6
  93. package/layout/main-container/_variables.header.scss +11 -0
  94. package/layout/nav/_header.clarity.scss +14 -0
  95. package/layout/nav/_mixins.header.scss +55 -40
  96. package/layout/nav/_responsive-nav.clarity.scss +21 -10
  97. package/layout/vertical-nav/_properties.vertical-nav.scss +77 -27
  98. package/layout/vertical-nav/_variables.vertical-nav.scss +23 -0
  99. package/layout/vertical-nav/_vertical-nav.clarity.scss +418 -277
  100. package/package.json +1 -1
  101. package/types/hermes-ui-angular-addons-theme-builder.d.ts +2 -2
  102. package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -1
  103. package/types/hermes-ui-angular-icon.d.ts +3 -3
  104. package/types/hermes-ui-angular-icon.d.ts.map +1 -1
  105. package/types/hermes-ui-angular-layout-vertical-nav.d.ts +134 -10
  106. package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
  107. package/types/hermes-ui-angular-utils.d.ts +12 -0
  108. package/types/hermes-ui-angular-utils.d.ts.map +1 -1
@@ -7,7 +7,7 @@ import * as i2$1 from '@hermes-ui/angular/popover/dropdown';
7
7
  import { HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';
8
8
  import * as i3$1 from '@hermes-ui/angular/popover/common';
9
9
  import * as i4 from '@hermes-ui/angular/icon';
10
- import { ClarityIcons, angleIcon } from '@hermes-ui/angular/icon';
10
+ import { HermesIcons, angleIcon } from '@hermes-ui/angular/icon';
11
11
  import * as i2 from '@hermes-ui/angular/addons/a11y';
12
12
  import { ZoomLevel } from '@hermes-ui/angular/addons/a11y';
13
13
 
@@ -1083,7 +1083,7 @@ function pvStringsServiceFactory(existing) {
1083
1083
  }
1084
1084
  class AppfxPropertyViewModule {
1085
1085
  constructor() {
1086
- ClarityIcons.addIcons(angleIcon);
1086
+ HermesIcons.addIcons(angleIcon);
1087
1087
  }
1088
1088
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxPropertyViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1089
1089
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: AppfxPropertyViewModule, declarations: [PropertyViewCategoryComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-ui-angular-addons-property-view.mjs","sources":["../../../addons/property-view/property-view.model.ts","../../../addons/property-view/builders/property-view-message-builder.ts","../../../addons/property-view/builders/property-view-property-key-builder.ts","../../../addons/property-view/builders/property-view-property-value-builder.ts","../../../addons/property-view/builders/property-view-property-value-component-builder.ts","../../../addons/property-view/builders/property-view-property-builder.ts","../../../addons/property-view/builders/property-view-section-builder.ts","../../../addons/property-view/builders/property-view-category-builder.ts","../../../addons/property-view/builders/property-view-builder.ts","../../../addons/property-view/property-view-config-provider.ts","../../../addons/property-view/property-view-sections-expanded-state.manager.ts","../../../addons/property-view/property-view-strings.service.ts","../../../addons/property-view/components/property-view-message.component.ts","../../../addons/property-view/components/property-view-message.component.html","../../../addons/property-view/components/property-view-property-value-container.component.ts","../../../addons/property-view/components/property-view-property.component.ts","../../../addons/property-view/components/property-view-property.component.html","../../../addons/property-view/components/property-view-section.component.ts","../../../addons/property-view/components/property-view-section.component.html","../../../addons/property-view/components/property-view-category.component.ts","../../../addons/property-view/components/property-view-category.component.html","../../../addons/property-view/components/property-view.component.ts","../../../addons/property-view/components/property-view.component.html","../../../addons/property-view/property-view.service.ts","../../../addons/property-view/property-view.module.ts","../../../addons/property-view/index.ts","../../../addons/property-view/hermes-ui-angular-addons-property-view.ts"],"sourcesContent":["/*\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\r\nimport { Type } from '@angular/core';\r\n\r\nexport enum PropertyViewModelType {\r\n Message = 'Message',\r\n PropertyValue = 'PropertyValue',\r\n PropertyKey = 'PropertyKey',\r\n Property = 'Property',\r\n Section = 'Section',\r\n Category = 'Category',\r\n PropertyValueComponent = 'PropertyValueComponent',\r\n}\r\n\r\nexport interface PropertyViewActionModel {\r\n title: string;\r\n isEnabled: boolean;\r\n clickHandler: () => void;\r\n}\r\n\r\nexport interface PropertyViewLinkModel {\r\n clickHandler: () => void;\r\n}\r\n\r\nexport interface PropertyViewMessageModel {\r\n type: PropertyViewModelType.Message;\r\n text: string | null;\r\n icon: string | null;\r\n renderAsHtml: boolean;\r\n}\r\n\r\nexport interface PropertyViewPropertyKeyModel {\r\n type: PropertyViewModelType.PropertyKey;\r\n text: string | null;\r\n icon: string | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyValueModel {\r\n type: PropertyViewModelType.PropertyValue;\r\n text: string | null;\r\n icon: string | null;\r\n link: PropertyViewLinkModel | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyValueComponent<T> {\r\n model?: T | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyValueComponentModel<T> {\r\n type: PropertyViewModelType.PropertyValueComponent;\r\n componentType?: Type<PropertyViewPropertyValueComponent<T>> | null;\r\n componentModel?: T | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyModel {\r\n type: PropertyViewModelType.Property;\r\n key: PropertyViewPropertyKeyModel;\r\n content: Array<PropertyViewPropertyValueModel | PropertyViewPropertyValueComponentModel<any>>;\r\n}\r\n\r\nexport interface PropertyViewSectionModel {\r\n type: PropertyViewModelType.Section;\r\n id: string;\r\n renderAsHtml: boolean;\r\n title: string | null;\r\n titleIcon: string | null;\r\n actions: Array<PropertyViewActionModel>;\r\n content: Array<PropertyViewPropertyModel | PropertyViewMessageModel>;\r\n collapseContent: boolean;\r\n}\r\n\r\nexport interface PropertyViewCategoryModel {\r\n type: PropertyViewModelType.Category;\r\n id: string;\r\n title: string | null;\r\n content: Array<PropertyViewSectionModel>;\r\n}\r\n\r\nexport interface PropertyViewModel {\r\n categories: Array<PropertyViewCategoryModel>;\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewMessageModel, PropertyViewModelType } from '../property-view.model';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewMessageBuilder {\r\n private parent: PropertyViewSectionBuilder;\r\n #text: string | null;\r\n #icon: string | null;\r\n #renderAsHtml: boolean;\r\n\r\n constructor(parent: PropertyViewSectionBuilder) {\r\n this.parent = parent;\r\n this.#text = null;\r\n this.#icon = null;\r\n this.#renderAsHtml = false;\r\n }\r\n\r\n text(value: string | null): PropertyViewMessageBuilder {\r\n this.#text = value;\r\n\r\n return this;\r\n }\r\n\r\n icon(value: string | null): PropertyViewMessageBuilder {\r\n this.#icon = value;\r\n\r\n return this;\r\n }\r\n\r\n renderAsHtml(value: boolean): PropertyViewMessageBuilder {\r\n this.#renderAsHtml = value;\r\n\r\n return this;\r\n }\r\n\r\n build(): PropertyViewMessageModel {\r\n return {\r\n type: PropertyViewModelType.Message,\r\n text: this.#text,\r\n icon: this.#icon,\r\n renderAsHtml: this.#renderAsHtml,\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewSectionBuilder): PropertyViewMessageBuilder {\r\n const result = new PropertyViewMessageBuilder(parentClone);\r\n result.#text = this.#text;\r\n result.#icon = this.#icon;\r\n result.#renderAsHtml = this.#renderAsHtml;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewSectionBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewModelType, PropertyViewPropertyKeyModel } from '../property-view.model';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\nexport class PropertyViewPropertyKeyBuilder {\r\n private parent: PropertyViewPropertyBuilder;\r\n #text: string | null;\r\n #icon: string | null;\r\n\r\n constructor(parent: PropertyViewPropertyBuilder) {\r\n this.parent = parent;\r\n this.#text = null;\r\n this.#icon = null;\r\n }\r\n\r\n text(value: string | null): PropertyViewPropertyKeyBuilder {\r\n this.#text = value;\r\n\r\n return this;\r\n }\r\n\r\n icon(value: string | null): PropertyViewPropertyKeyBuilder {\r\n this.#icon = value;\r\n\r\n return this;\r\n }\r\n\r\n build(): PropertyViewPropertyKeyModel {\r\n return {\r\n type: PropertyViewModelType.PropertyKey,\r\n text: this.#text,\r\n icon: this.#icon,\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewPropertyBuilder): PropertyViewPropertyKeyBuilder {\r\n const result = new PropertyViewPropertyKeyBuilder(parentClone);\r\n result.#text = this.#text;\r\n result.#icon = this.#icon;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewPropertyBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewLinkModel, PropertyViewModelType, PropertyViewPropertyValueModel } from '../property-view.model';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\nexport class PropertyViewPropertyValueBuilder {\r\n private parent: PropertyViewPropertyBuilder;\r\n #text: string | null;\r\n #icon: string | null;\r\n #link: PropertyViewLinkModel | null;\r\n\r\n constructor(parent: PropertyViewPropertyBuilder) {\r\n this.parent = parent;\r\n this.#text = null;\r\n this.#icon = null;\r\n this.#link = null;\r\n }\r\n\r\n text(value: string | boolean | number | null): PropertyViewPropertyValueBuilder {\r\n this.#text = value !== null ? value.toString() : null;\r\n\r\n return this;\r\n }\r\n\r\n icon(value: string | null): PropertyViewPropertyValueBuilder {\r\n this.#icon = value;\r\n\r\n return this;\r\n }\r\n\r\n link(value: PropertyViewLinkModel | null): PropertyViewPropertyValueBuilder {\r\n this.#link = value;\r\n\r\n return this;\r\n }\r\n\r\n getLink(): PropertyViewLinkModel | null {\r\n return this.#link;\r\n }\r\n\r\n build(): PropertyViewPropertyValueModel {\r\n return {\r\n type: PropertyViewModelType.PropertyValue,\r\n text: this.#text,\r\n icon: this.#icon,\r\n link: this.#link,\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewPropertyBuilder): PropertyViewPropertyValueBuilder {\r\n const result = new PropertyViewPropertyValueBuilder(parentClone);\r\n result.#text = this.#text;\r\n result.#icon = this.#icon;\r\n // This field value is not cloned as it might contain external types.\r\n result.#link = this.#link;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewPropertyBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { Type } from '@angular/core';\r\n\r\nimport {\r\n PropertyViewModelType,\r\n PropertyViewPropertyValueComponent,\r\n PropertyViewPropertyValueComponentModel,\r\n} from '../property-view.model';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\nexport class PropertyViewPropertyValueComponentBuilder<T> {\r\n private parent: PropertyViewPropertyBuilder;\r\n private componentType: Type<PropertyViewPropertyValueComponent<T>> | null;\r\n private componentModel: T | null;\r\n\r\n constructor(parent: PropertyViewPropertyBuilder) {\r\n this.parent = parent;\r\n this.componentType = null;\r\n this.componentModel = null;\r\n }\r\n\r\n build(): PropertyViewPropertyValueComponentModel<T> {\r\n return {\r\n type: PropertyViewModelType.PropertyValueComponent,\r\n componentType: this.componentType,\r\n componentModel: this.componentModel,\r\n };\r\n }\r\n\r\n component<U extends T>(\r\n componentType: Type<PropertyViewPropertyValueComponent<U>>\r\n ): PropertyViewPropertyValueComponentBuilder<U> {\r\n this.componentType = componentType;\r\n\r\n return <PropertyViewPropertyValueComponentBuilder<U>>(<unknown>this);\r\n }\r\n\r\n model<U extends T>(componentModel: U): PropertyViewPropertyValueComponentBuilder<U> {\r\n this.componentModel = componentModel;\r\n\r\n return <PropertyViewPropertyValueComponentBuilder<U>>(<unknown>this);\r\n }\r\n\r\n clone(parentClone: PropertyViewPropertyBuilder): PropertyViewPropertyValueComponentBuilder<T> {\r\n const result = new PropertyViewPropertyValueComponentBuilder<T>(parentClone);\r\n result.componentType = this.componentType;\r\n result.componentModel = this.componentModel;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewPropertyBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewModelType, PropertyViewPropertyModel } from '../property-view.model';\r\nimport { PropertyViewPropertyKeyBuilder } from './property-view-property-key-builder';\r\nimport { PropertyViewPropertyValueBuilder } from './property-view-property-value-builder';\r\nimport { PropertyViewPropertyValueComponentBuilder } from './property-view-property-value-component-builder';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewPropertyBuilder {\r\n private parent: PropertyViewSectionBuilder;\r\n #keyBuilder: PropertyViewPropertyKeyBuilder;\r\n #valueBuilders: Array<PropertyViewPropertyValueBuilder | PropertyViewPropertyValueComponentBuilder<any>>;\r\n\r\n constructor(parent: PropertyViewSectionBuilder) {\r\n this.parent = parent;\r\n this.#keyBuilder = new PropertyViewPropertyKeyBuilder(this);\r\n this.#valueBuilders = [];\r\n }\r\n\r\n keyBuilder(): PropertyViewPropertyKeyBuilder {\r\n return this.#keyBuilder;\r\n }\r\n\r\n getValueBuilders(): Array<PropertyViewPropertyValueBuilder | PropertyViewPropertyValueComponentBuilder<any>> {\r\n return this.#valueBuilders.concat();\r\n }\r\n\r\n valueBuilder(): PropertyViewPropertyValueBuilder {\r\n const result = new PropertyViewPropertyValueBuilder(this);\r\n this.#valueBuilders.push(result);\r\n\r\n return result;\r\n }\r\n\r\n valueComponentBuilder<T = any>(): PropertyViewPropertyValueComponentBuilder<T> {\r\n const result = new PropertyViewPropertyValueComponentBuilder<T>(this);\r\n this.#valueBuilders.push(result);\r\n return result;\r\n }\r\n\r\n build(): PropertyViewPropertyModel {\r\n return {\r\n type: PropertyViewModelType.Property,\r\n key: this.keyBuilder().build(),\r\n content: this.getValueBuilders().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewSectionBuilder): PropertyViewPropertyBuilder {\r\n const result = new PropertyViewPropertyBuilder(parentClone);\r\n result.#keyBuilder = this.keyBuilder().clone(result);\r\n result.#valueBuilders = this.getValueBuilders().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewSectionBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewActionModel, PropertyViewModelType, PropertyViewSectionModel } from '../property-view.model';\r\nimport { PropertyViewCategoryBuilder } from './property-view-category-builder';\r\nimport { PropertyViewMessageBuilder } from './property-view-message-builder';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\ntype PropertyValueTextItemType = string | number | boolean;\r\n\r\nexport class PropertyViewSectionBuilder {\r\n private parent: PropertyViewCategoryBuilder;\r\n private id: string;\r\n private contentBuilders: Array<PropertyViewPropertyBuilder | PropertyViewMessageBuilder>;\r\n\r\n static readonly #infoIconClass = 'vx-icon-info_normal';\r\n static readonly #warningIconClass = 'vx-icon-warn';\r\n static readonly #errorIconClass = 'vx-icon-error';\r\n\r\n #renderAsHtml: boolean;\r\n #collapseContent: boolean;\r\n #title: string | null;\r\n #titleIcon: string | null;\r\n #actions: Array<PropertyViewActionModel>;\r\n\r\n constructor(parent: PropertyViewCategoryBuilder, id: string) {\r\n this.parent = parent;\r\n this.id = id;\r\n this.#renderAsHtml = false;\r\n this.#collapseContent = false;\r\n this.#title = null;\r\n this.#titleIcon = null;\r\n this.#actions = [];\r\n this.contentBuilders = [];\r\n }\r\n\r\n getId(): string {\r\n return this.id;\r\n }\r\n\r\n renderAsHtml(value: boolean): PropertyViewSectionBuilder {\r\n this.#renderAsHtml = value;\r\n\r\n return this;\r\n }\r\n\r\n collapseContent(value: boolean): PropertyViewSectionBuilder {\r\n this.#collapseContent = value;\r\n\r\n return this;\r\n }\r\n\r\n title(value: string | null): PropertyViewSectionBuilder {\r\n this.#title = value;\r\n\r\n return this;\r\n }\r\n\r\n titleIcon(value: string | null): PropertyViewSectionBuilder {\r\n this.#titleIcon = value;\r\n\r\n return this;\r\n }\r\n\r\n action(value?: PropertyViewActionModel | null): PropertyViewSectionBuilder {\r\n if (value) {\r\n this.#actions.push(value);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n getActions(): Array<PropertyViewActionModel> {\r\n return this.#actions.concat();\r\n }\r\n\r\n propertyBuilder(): PropertyViewPropertyBuilder {\r\n const result = new PropertyViewPropertyBuilder(this);\r\n this.contentBuilders.push(result);\r\n\r\n return result;\r\n }\r\n\r\n property(\r\n key: string,\r\n values?: Array<PropertyValueTextItemType> | PropertyValueTextItemType | null\r\n ): PropertyViewSectionBuilder {\r\n let valuesArray: Array<PropertyValueTextItemType>;\r\n\r\n if (values === null || values === undefined) {\r\n valuesArray = [];\r\n } else if (values instanceof Array) {\r\n valuesArray = values;\r\n } else {\r\n valuesArray = [values];\r\n }\r\n\r\n const propertyBuilder = this.propertyBuilder();\r\n propertyBuilder.keyBuilder().text(key);\r\n valuesArray.forEach(value => propertyBuilder.valueBuilder().text(value));\r\n\r\n return this;\r\n }\r\n\r\n messageBuilder(): PropertyViewMessageBuilder {\r\n const result = new PropertyViewMessageBuilder(this);\r\n this.contentBuilders.push(result);\r\n\r\n return result;\r\n }\r\n\r\n message(text: string, icon?: string | null): PropertyViewSectionBuilder {\r\n const messageBuilder = this.messageBuilder();\r\n messageBuilder.text(text);\r\n if (icon) {\r\n messageBuilder.icon(icon);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n info(text: string): PropertyViewSectionBuilder {\r\n return this.message(text, PropertyViewSectionBuilder.#infoIconClass);\r\n }\r\n\r\n warning(text: string): PropertyViewSectionBuilder {\r\n return this.message(text, PropertyViewSectionBuilder.#warningIconClass);\r\n }\r\n\r\n error(text: string): PropertyViewSectionBuilder {\r\n return this.message(text, PropertyViewSectionBuilder.#errorIconClass);\r\n }\r\n\r\n getContentBuilders(): Array<PropertyViewPropertyBuilder | PropertyViewMessageBuilder> {\r\n return this.contentBuilders.concat();\r\n }\r\n\r\n build(): PropertyViewSectionModel {\r\n return {\r\n type: PropertyViewModelType.Section,\r\n id: this.id,\r\n renderAsHtml: this.#renderAsHtml,\r\n collapseContent: this.#collapseContent,\r\n title: this.#title,\r\n titleIcon: this.#titleIcon,\r\n actions: this.getActions().concat(),\r\n content: this.getContentBuilders().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewCategoryBuilder): PropertyViewSectionBuilder {\r\n const result = new PropertyViewSectionBuilder(parentClone, this.id);\r\n result.#renderAsHtml = this.#renderAsHtml;\r\n result.#collapseContent = this.#collapseContent;\r\n result.#title = this.#title;\r\n result.#titleIcon = this.#titleIcon;\r\n // This field value is not cloned as it might contain external types.\r\n result.#actions = this.getActions().concat();\r\n result.contentBuilders = this.getContentBuilders().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewCategoryBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewCategoryModel, PropertyViewModelType } from '../property-view.model';\r\nimport { PropertyViewBuilder } from './property-view-builder';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewCategoryBuilder {\r\n private parent: PropertyViewBuilder;\r\n private id: string;\r\n private contentBuilders: Array<PropertyViewSectionBuilder>;\r\n #title: string | null;\r\n\r\n constructor(parent: PropertyViewBuilder, id: string) {\r\n this.parent = parent;\r\n this.id = id;\r\n this.#title = null;\r\n this.contentBuilders = [];\r\n }\r\n\r\n getId(): string {\r\n return this.id;\r\n }\r\n\r\n title(value: string | null): PropertyViewCategoryBuilder {\r\n this.#title = value;\r\n\r\n return this;\r\n }\r\n\r\n getAllSections(): Array<PropertyViewSectionBuilder> {\r\n return this.contentBuilders.concat();\r\n }\r\n\r\n getSection(id: string): PropertyViewSectionBuilder | null {\r\n const matchingSections = this.getAllSections().filter(section => section.getId() === id);\r\n if (matchingSections.length === 1) {\r\n return matchingSections[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n section(id: string): PropertyViewSectionBuilder {\r\n let sectionBuilder = this.getSection(id);\r\n if (sectionBuilder === null) {\r\n sectionBuilder = new PropertyViewSectionBuilder(this, id);\r\n this.contentBuilders.push(sectionBuilder);\r\n }\r\n\r\n return sectionBuilder;\r\n }\r\n\r\n cloneAndAddBuilder(builder: PropertyViewSectionBuilder): PropertyViewCategoryBuilder {\r\n if (this.getSection(builder.getId()) !== null) {\r\n throw new Error(`Section '${builder.getId()}' already exists.`);\r\n }\r\n builder = builder.clone(this);\r\n this.contentBuilders.push(builder);\r\n\r\n return this;\r\n }\r\n\r\n cloneAndAddBuilders(builders: Array<PropertyViewSectionBuilder>): PropertyViewCategoryBuilder {\r\n builders.forEach(builder => this.cloneAndAddBuilder(builder));\r\n\r\n return this;\r\n }\r\n\r\n build(): PropertyViewCategoryModel {\r\n return {\r\n type: PropertyViewModelType.Category,\r\n id: this.id,\r\n title: this.#title,\r\n content: this.getAllSections().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewBuilder): PropertyViewCategoryBuilder {\r\n const result = new PropertyViewCategoryBuilder(parentClone, this.id);\r\n result.#title = this.#title;\r\n result.contentBuilders = this.getAllSections().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\nimport { PropertyViewModel } from '../property-view.model';\r\nimport { PropertyViewCategoryBuilder } from './property-view-category-builder';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewBuilder {\r\n static readonly #allCategoryId = 'all';\r\n\r\n #categoryBuilders: Array<PropertyViewCategoryBuilder>;\r\n\r\n constructor() {\r\n this.#categoryBuilders = [];\r\n }\r\n\r\n getAllCategories(): Array<PropertyViewCategoryBuilder> {\r\n return this.#categoryBuilders.concat();\r\n }\r\n\r\n getCategory(id: string): PropertyViewCategoryBuilder | null {\r\n const matchingBuilder = this.getAllCategories().filter(s => s.getId() === id);\r\n if (matchingBuilder.length === 1) {\r\n return matchingBuilder[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSection(categoryId: string, sectionId: string): PropertyViewSectionBuilder | null {\r\n const category = this.getCategory(categoryId);\r\n if (category === null) {\r\n return null;\r\n }\r\n\r\n return category.getSection(sectionId);\r\n }\r\n\r\n category(id: string, insertionIndex?: number): PropertyViewCategoryBuilder {\r\n let categoryBuilder = this.getCategory(id);\r\n if (categoryBuilder === null) {\r\n categoryBuilder = new PropertyViewCategoryBuilder(this, id);\r\n this.#categoryBuilders.push(categoryBuilder);\r\n }\r\n\r\n const removalIndex = this.#categoryBuilders.findIndex(b => b.getId() === id);\r\n this.#categoryBuilders.splice(removalIndex, 1);\r\n\r\n if (insertionIndex === undefined) {\r\n insertionIndex = removalIndex;\r\n } else if (\r\n isNaN(insertionIndex) ||\r\n !isFinite(insertionIndex) ||\r\n insertionIndex !== parseInt(insertionIndex.toString(), 10) ||\r\n insertionIndex < 0 ||\r\n this.#categoryBuilders.length < insertionIndex\r\n ) {\r\n throw new Error(\r\n `Invalid insertion index ${insertionIndex}.` +\r\n ` Insertion index must be an integer in the range` +\r\n ` [0, ${this.#categoryBuilders.length}].`\r\n );\r\n } else {\r\n // no action\r\n }\r\n\r\n this.#categoryBuilders.splice(insertionIndex, 0, categoryBuilder);\r\n\r\n return categoryBuilder;\r\n }\r\n\r\n generateAllCategory(categoryTitle: string): PropertyViewCategoryBuilder {\r\n if (this.getCategory(PropertyViewBuilder.#allCategoryId)) {\r\n throw new Error(`Category '${PropertyViewBuilder.#allCategoryId}' already exists.`);\r\n }\r\n\r\n return this.category(PropertyViewBuilder.#allCategoryId, 0)\r\n .title(categoryTitle)\r\n .cloneAndAddBuilders(\r\n this.getAllCategories()\r\n .map(category => category.getAllSections())\r\n // Array.flat()\r\n .reduce((previous, current) => previous.concat(current))\r\n );\r\n }\r\n\r\n build(): PropertyViewModel {\r\n return {\r\n categories: this.getAllCategories().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(): PropertyViewBuilder {\r\n const result = new PropertyViewBuilder();\r\n result.#categoryBuilders = this.getAllCategories().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): null {\r\n return null;\r\n }\r\n}\r\n","/*\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\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { PropertyViewConfig } from './property-view-config';\r\n\r\n@Injectable()\r\nexport class PropertyViewConfigProvider {\r\n private config: PropertyViewConfig | undefined;\r\n private configSubject = new BehaviorSubject<PropertyViewConfig | undefined>(undefined);\r\n\r\n getConfig(): PropertyViewConfig | undefined {\r\n return this.config;\r\n }\r\n\r\n config$(): Observable<PropertyViewConfig | undefined> {\r\n return this.configSubject.asObservable();\r\n }\r\n\r\n setConfig(value: PropertyViewConfig | undefined): void {\r\n this.config = value;\r\n this.configSubject.next(value);\r\n }\r\n}\r\n","/*\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\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { PropertyViewCategoryModel, PropertyViewSectionModel } from './property-view.model';\r\n\r\ninterface SectionExpandedState {\r\n user: boolean | undefined;\r\n data: boolean;\r\n}\r\n\r\ninterface SectionsExpandedState {\r\n [sectionId: string]: SectionExpandedState;\r\n}\r\n\r\ninterface CategoriesSectionsExpandedState {\r\n [categoryId: string]: SectionsExpandedState;\r\n}\r\n\r\n@Injectable()\r\nexport class PropertyViewSectionsExpandedStateManager {\r\n private readonly categoriesSectionsExpandedStateData: CategoriesSectionsExpandedState;\r\n\r\n constructor() {\r\n this.categoriesSectionsExpandedStateData = {};\r\n }\r\n\r\n getSectionExpandedState(categoryId: string, sectionId: string): boolean {\r\n if (!(categoryId in this.categoriesSectionsExpandedStateData)) {\r\n throw new Error(`Unknown category ID: ${categoryId}`);\r\n }\r\n\r\n if (!(sectionId in this.categoriesSectionsExpandedStateData[categoryId])) {\r\n throw new Error(`Unknown section ID: ${sectionId}`);\r\n }\r\n\r\n const sectionExpandedState = this.categoriesSectionsExpandedStateData[categoryId][sectionId];\r\n if (typeof sectionExpandedState.user === 'boolean') {\r\n return sectionExpandedState.user;\r\n }\r\n return sectionExpandedState.data;\r\n }\r\n\r\n setSectionExpandedUserState(categoryId: string, sectionId: string, expandedUserState: boolean) {\r\n if (!(categoryId in this.categoriesSectionsExpandedStateData)) {\r\n throw new Error(`Unknown category ID: ${categoryId}`);\r\n }\r\n\r\n if (!(sectionId in this.categoriesSectionsExpandedStateData[categoryId])) {\r\n throw new Error(`Unknown section ID: ${sectionId}`);\r\n }\r\n\r\n this.categoriesSectionsExpandedStateData[categoryId][sectionId].user = expandedUserState;\r\n }\r\n\r\n update(categories: Array<PropertyViewCategoryModel>) {\r\n const categoriesById: { [id: string]: PropertyViewCategoryModel } = {};\r\n for (const category of categories) {\r\n categoriesById[category.id] = category;\r\n }\r\n\r\n this.removeOldCategories(categoriesById);\r\n this.createNewCategories(categoriesById);\r\n\r\n // Update categories' sections\r\n for (const categoryId of Object.keys(categoriesById)) {\r\n this.updateCategorySections(categoryId, categoriesById);\r\n }\r\n }\r\n\r\n private removeOldCategories(categoriesById: { [id: string]: PropertyViewCategoryModel }) {\r\n for (const categoryId of Object.keys(this.categoriesSectionsExpandedStateData)) {\r\n if (!(categoryId in categoriesById)) {\r\n delete this.categoriesSectionsExpandedStateData[categoryId];\r\n }\r\n }\r\n }\r\n\r\n private createNewCategories(categoriesById: { [id: string]: PropertyViewCategoryModel }) {\r\n for (const categoryId of Object.keys(categoriesById)) {\r\n if (!(categoryId in this.categoriesSectionsExpandedStateData)) {\r\n this.categoriesSectionsExpandedStateData[categoryId] = {};\r\n }\r\n }\r\n }\r\n\r\n private updateCategorySections(categoryId: string, categoriesById: { [id: string]: PropertyViewCategoryModel }) {\r\n const sectionsById: { [id: string]: PropertyViewSectionModel } = {};\r\n for (const section of categoriesById[categoryId].content) {\r\n sectionsById[section.id] = section;\r\n }\r\n\r\n const sectionsExpandedState = this.categoriesSectionsExpandedStateData[categoryId];\r\n\r\n // Remove sections\r\n for (const sectionId of Object.keys(sectionsExpandedState)) {\r\n if (!(sectionId in sectionsById)) {\r\n delete sectionsExpandedState[sectionId];\r\n }\r\n }\r\n\r\n // Update sections\r\n for (const sectionId of Object.keys(sectionsExpandedState)) {\r\n sectionsExpandedState[sectionId].data = !sectionsById[sectionId].collapseContent;\r\n }\r\n\r\n // Create sections\r\n for (const sectionId of Object.keys(sectionsById)) {\r\n if (!(sectionId in sectionsExpandedState)) {\r\n sectionsExpandedState[sectionId] = {\r\n user: undefined,\r\n data: !sectionsById[sectionId].collapseContent,\r\n };\r\n }\r\n }\r\n }\r\n}\r\n","/*\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\r\nimport { Injectable } from '@angular/core';\r\n\r\n/**\r\n * User-visible strings used in the 'appfx-property-view' library.\r\n * Fields are read-only to avoid accidentally modifying the values and affecting all\r\n * components in the application.\r\n *\r\n * Strings are in English only. If you need to provide localized strings:\r\n * - extend this class\r\n * - override all fields with localized values\r\n * - provide instance in the module where you use PropertyViewModule\r\n *\r\n * ```\r\n * @NgModule({\r\n * ...\r\n * providers: [\r\n * { provide: PropertyViewStrings, useClass: LocalizedPropertyViewStrings },\r\n * ]\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n */\r\n@Injectable()\r\nexport class PropertyViewStrings {\r\n /**\r\n * Toggle button aria-label.\r\n */\r\n readonly toggle: string = 'Toggle {0} section';\r\n\r\n /**\r\n * Actions drop-down label.\r\n */\r\n readonly actions: string = 'Actions';\r\n\r\n /**\r\n * Aria label describing number of section items in a property view\r\n */\r\n readonly categoryListItemsAreaLabel: string = '{0} items grouped in {1} sections.';\r\n\r\n /**\r\n * Aria label describing number section items in a property view when one item\r\n */\r\n readonly categoryListItemAreaLabel: string = '{0} items grouped in 1 section.';\r\n}\r\n","/*\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\r\nimport { Component, Input } from '@angular/core';\r\n\r\nimport { PropertyViewMessageModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: '[appfx-property-view-message]',\r\n standalone: false,\r\n templateUrl: 'property-view-message.component.html',\r\n styleUrls: ['property-view-message.component.scss'],\r\n})\r\nexport class PropertyViewMessageComponent {\r\n @Input() data: PropertyViewMessageModel;\r\n}\r\n","<!--\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","/*\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\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n Type,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\nimport { PropertyViewPropertyValueComponent } from '../property-view.model';\r\n\r\n/**\r\n * Component used to dynamically render\r\n * a given component passed as a property of the PropertyViewPropertyComponentValueModel\r\n */\r\n@Component({\r\n selector: 'appfx-property-view-property-value-component',\r\n standalone: false,\r\n template: '',\r\n})\r\nexport class PropertyViewPropertyValueContainerComponent<T> implements OnInit, OnChanges, OnDestroy {\r\n @Input() componentType?: Type<PropertyViewPropertyValueComponent<T>> | null;\r\n\r\n @Input() componentModel?: T | null;\r\n\r\n #pageComponent?: PropertyViewPropertyValueComponent<T>;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private cdRef: ChangeDetectorRef,\r\n private viewContainer: ViewContainerRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createComponent();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.componentType && !changes.componentType.firstChange) {\r\n this.createComponent();\r\n } else if (changes.componentModel && !changes.componentModel.firstChange) {\r\n if (this.#pageComponent) {\r\n this.#pageComponent.model = this.componentModel;\r\n this.cdRef.detectChanges();\r\n }\r\n } else {\r\n // no action\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clear();\r\n }\r\n\r\n private createComponent(): void {\r\n this.clear();\r\n if (!this.componentType) {\r\n return;\r\n }\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentType);\r\n const componentRef = this.viewContainer.createComponent(componentFactory);\r\n this.#pageComponent = componentRef.instance;\r\n this.#pageComponent.model = this.componentModel;\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n private clear(): void {\r\n this.viewContainer.clear();\r\n this.#pageComponent = undefined;\r\n }\r\n}\r\n","/*\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\r\nimport { Component, HostBinding, Input, OnChanges, OnDestroy, OnInit, Optional, SimpleChanges } from '@angular/core';\r\nimport { ZoomLevel, ZoomLevelService } from '@hermes-ui/angular/addons/a11y';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { PropertyViewConfigProvider } from '../property-view-config-provider';\r\nimport {\r\n PropertyViewLinkModel,\r\n PropertyViewModelType,\r\n PropertyViewPropertyModel,\r\n PropertyViewPropertyValueComponentModel,\r\n PropertyViewPropertyValueModel,\r\n} from '../property-view.model';\r\n\r\n@Component({\r\n selector: '[appfx-property-view-property]',\r\n standalone: false,\r\n templateUrl: 'property-view-property.component.html',\r\n styleUrls: ['property-view-property.component.scss'],\r\n})\r\nexport class PropertyViewPropertyComponent implements OnInit, OnChanges, OnDestroy {\r\n readonly PropertyViewModelType = PropertyViewModelType;\r\n\r\n @Input() data: PropertyViewPropertyModel;\r\n\r\n propertyValueModelContent: PropertyViewPropertyValueModel[];\r\n\r\n propertyValueComponentModelContent: PropertyViewPropertyValueComponentModel<unknown>[];\r\n\r\n @HostBinding('class.zoom4x') is4xZoomed = false;\r\n\r\n private zoomLevelSubscription: Subscription | undefined;\r\n\r\n constructor(\r\n public propertyViewConfigProvider: PropertyViewConfigProvider,\r\n @Optional() private zoomLevelService?: ZoomLevelService\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n this.propertyValueModelContent = this.data?.content.filter(\r\n value => value.type === PropertyViewModelType.PropertyValue\r\n ) as PropertyViewPropertyValueModel[];\r\n\r\n this.propertyValueComponentModelContent = this.data?.content.filter(\r\n value => value.type === PropertyViewModelType.PropertyValueComponent\r\n ) as PropertyViewPropertyValueComponentModel<unknown>[];\r\n }\r\n }\r\n\r\n handleLinkClick(link: PropertyViewLinkModel): void {\r\n link.clickHandler();\r\n }\r\n\r\n getValueTrackingId(index: number) {\r\n return index;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.zoomLevelSubscription = this.zoomLevelService?.onChange.subscribe(\r\n (level: ZoomLevel) => (this.is4xZoomed = level === ZoomLevel.x4)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.zoomLevelSubscription?.unsubscribe();\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { PropertyViewStrings } from '../property-view-strings.service';\r\nimport { PropertyViewActionModel, PropertyViewModelType, PropertyViewSectionModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: '[appfx-property-view-section]',\r\n standalone: false,\r\n templateUrl: 'property-view-section.component.html',\r\n styleUrls: ['property-view-section.component.scss'],\r\n})\r\nexport class PropertyViewSectionComponent {\r\n readonly PropertyViewModelType = PropertyViewModelType;\r\n\r\n @Input() data: PropertyViewSectionModel;\r\n\r\n @Input() expanded: boolean;\r\n\r\n @Input() componentId: string;\r\n\r\n @Output() expandedChange: EventEmitter<boolean>;\r\n\r\n constructor(public propertyViewStrings: PropertyViewStrings) {\r\n this.expandedChange = new EventEmitter<boolean>();\r\n }\r\n\r\n toggleExpandedState(): void {\r\n this.expandedChange.emit(!this.expanded);\r\n }\r\n\r\n handleActionClick(action: PropertyViewActionModel): void {\r\n if (!action.isEnabled) {\r\n return;\r\n }\r\n\r\n action.clickHandler();\r\n }\r\n\r\n getContentTrackingId(index: number) {\r\n return index;\r\n }\r\n\r\n getSectionTitleToggleButtonAriaLabel() {\r\n return this.getFormattedLabel(this.propertyViewStrings.toggle);\r\n }\r\n\r\n /**\r\n * Returns unique formatted label if title is not null,\r\n * otherwise sets static label without any placeholder\r\n */\r\n private getFormattedLabel(label: string) {\r\n return label.replace('{0} ', this.data.title ? this.data.title + ' ' : '');\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Component, Input } from '@angular/core';\r\n\r\nimport { PropertyViewSectionsExpandedStateManager } from '../property-view-sections-expanded-state.manager';\r\nimport { PropertyViewStrings } from '../property-view-strings.service';\r\nimport { PropertyViewCategoryModel, PropertyViewModelType, PropertyViewSectionModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: 'appfx-property-view-category',\r\n standalone: false,\r\n templateUrl: 'property-view-category.component.html',\r\n styleUrls: ['property-view-category.component.scss'],\r\n})\r\nexport class PropertyViewCategoryComponent {\r\n readonly PropertyViewModelType = PropertyViewModelType;\r\n\r\n @Input() data: PropertyViewCategoryModel;\r\n\r\n @Input() componentId: string;\r\n\r\n constructor(\r\n private expandedStateManager: PropertyViewSectionsExpandedStateManager,\r\n private propertyViewStrings: PropertyViewStrings\r\n ) {}\r\n\r\n getSectionExpandedState(sectionId: string): boolean {\r\n return this.expandedStateManager.getSectionExpandedState(this.data.id, sectionId);\r\n }\r\n\r\n onSectionExpandedStateChange(sectionId: string, expandedUserState: boolean) {\r\n this.expandedStateManager.setSectionExpandedUserState(this.data.id, sectionId, expandedUserState);\r\n }\r\n\r\n getSectionTrackingId(index: number, data: PropertyViewSectionModel) {\r\n return data.id;\r\n }\r\n\r\n getSectionComponentId(section: PropertyViewSectionModel) {\r\n return `${this.componentId}-section-${section.id}-component`;\r\n }\r\n\r\n getSectionComponentAriaLabelId(section: PropertyViewSectionModel) {\r\n if (section.title) {\r\n return `${this.getSectionComponentId(section)}-aria-label`;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n getCategoryListItemsAreaLabel(): string | null {\r\n let propertiesCount = 0;\r\n this.data.content.forEach((section: PropertyViewSectionModel) => {\r\n propertiesCount += section.content.length;\r\n });\r\n return this.data.content.length > 1\r\n ? this.propertyViewStrings.categoryListItemsAreaLabel\r\n .replace('{0}', propertiesCount.toString())\r\n .replace('{1}', this.data.content.length.toString())\r\n : this.propertyViewStrings.categoryListItemAreaLabel.replace('{0}', propertiesCount.toString());\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Component, DoCheck, ElementRef, Input, QueryList, ViewChildren } from '@angular/core';\r\n\r\nimport { PropertyViewConfig } from '../property-view-config';\r\nimport { PropertyViewConfigProvider } from '../property-view-config-provider';\r\nimport { PropertyViewSectionsExpandedStateManager } from '../property-view-sections-expanded-state.manager';\r\nimport { PropertyViewCategoryModel, PropertyViewModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: 'appfx-property-view',\r\n standalone: false,\r\n templateUrl: 'property-view.component.html',\r\n styleUrls: ['property-view.component.scss'],\r\n providers: [PropertyViewConfigProvider, PropertyViewSectionsExpandedStateManager],\r\n})\r\nexport class PropertyViewComponent implements DoCheck {\r\n private static idCounter = 0;\r\n readonly basedId: string;\r\n selectedCategoryId: string | undefined;\r\n focusedCategoryId: string | undefined;\r\n\r\n @Input() data: PropertyViewModel | null | undefined;\r\n\r\n @ViewChildren('categoryTabButton') categoryTabButtonsList: QueryList<ElementRef>;\r\n\r\n constructor(\r\n private expandedStateManager: PropertyViewSectionsExpandedStateManager,\r\n private propertyViewConfigProvider: PropertyViewConfigProvider\r\n ) {\r\n this.basedId = 'appfx-property-view-' + PropertyViewComponent.idCounter++;\r\n }\r\n\r\n @Input()\r\n set config(value: PropertyViewConfig | undefined) {\r\n this.propertyViewConfigProvider.setConfig(value);\r\n }\r\n\r\n ngDoCheck(): void {\r\n this.expandedStateManager.update(this.data ? this.data.categories : []);\r\n this.validateAndUpdateSelectedCategory();\r\n this.validateAndUpdateFocusedCategory();\r\n }\r\n\r\n selectCategory(category: PropertyViewCategoryModel) {\r\n this.selectedCategoryId = category.id;\r\n this.focusedCategoryId = this.selectedCategoryId;\r\n }\r\n\r\n isCategorySelected(category: PropertyViewCategoryModel) {\r\n return category.id === this.selectedCategoryId;\r\n }\r\n\r\n isCategoryFocused(category: PropertyViewCategoryModel) {\r\n return category.id === this.focusedCategoryId;\r\n }\r\n\r\n getCategoryTabId(category: PropertyViewCategoryModel) {\r\n return `${this.basedId}-category-${category.id}-tab`;\r\n }\r\n\r\n getCategoryPanelId(category: PropertyViewCategoryModel) {\r\n return `${this.basedId}-category-${category.id}-panel`;\r\n }\r\n\r\n getCategoryComponentId(category: PropertyViewCategoryModel) {\r\n return `${this.basedId}-category-${category.id}-component`;\r\n }\r\n\r\n getCategoryTrackingId(index: number, data: PropertyViewCategoryModel) {\r\n return data.id;\r\n }\r\n\r\n onTabListKeydown(event: KeyboardEvent) {\r\n if (!this.data || this.data.categories.length === 0 || this.focusedCategoryId === undefined) {\r\n return;\r\n }\r\n\r\n const focusedCategoryIndex = this.data.categories.findIndex(category => category.id === this.focusedCategoryId);\r\n if (focusedCategoryIndex === -1) {\r\n return;\r\n }\r\n\r\n let newFocusedCategoryIndex = focusedCategoryIndex;\r\n if (event.key === 'ArrowLeft' || event.key === 'Left') {\r\n if (newFocusedCategoryIndex === 0) {\r\n newFocusedCategoryIndex = this.data.categories.length - 1;\r\n } else {\r\n newFocusedCategoryIndex--;\r\n }\r\n } else if (event.key === 'ArrowRight' || event.key === 'Right') {\r\n if (newFocusedCategoryIndex === this.data.categories.length - 1) {\r\n newFocusedCategoryIndex = 0;\r\n } else {\r\n newFocusedCategoryIndex++;\r\n }\r\n } else {\r\n // no action\r\n }\r\n this.focusedCategoryId = this.data.categories[newFocusedCategoryIndex].id;\r\n if (newFocusedCategoryIndex !== focusedCategoryIndex) {\r\n const categoryTabButtons = this.categoryTabButtonsList.toArray();\r\n const focusedCategoryTabButton: HTMLElement = categoryTabButtons[newFocusedCategoryIndex].nativeElement;\r\n focusedCategoryTabButton.focus();\r\n }\r\n }\r\n\r\n private validateAndUpdateSelectedCategory() {\r\n if (!this.data || this.data.categories.length === 0) {\r\n this.selectedCategoryId = undefined;\r\n return;\r\n }\r\n\r\n const isSelectedCategoryValid = this.data.categories.some(category => category.id === this.selectedCategoryId);\r\n if (!isSelectedCategoryValid) {\r\n this.selectedCategoryId = this.data.categories[0].id;\r\n }\r\n }\r\n\r\n private validateAndUpdateFocusedCategory() {\r\n if (!this.data || this.data.categories.length === 0) {\r\n this.focusedCategoryId = undefined;\r\n return;\r\n }\r\n\r\n const isFocusedCategoryValid = this.data.categories.some(category => category.id === this.focusedCategoryId);\r\n if (!isFocusedCategoryValid) {\r\n this.focusedCategoryId = this.selectedCategoryId;\r\n }\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { PropertyViewBuilder } from './builders/property-view-builder';\r\n\r\n@Injectable()\r\nexport class PropertyViewService {\r\n createPropertyViewBuilder(): PropertyViewBuilder {\r\n return new PropertyViewBuilder();\r\n }\r\n}\r\n","/*\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\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { angleIcon, ClarityIcons } from '@hermes-ui/angular/icon';\r\nimport { HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';\r\n\r\nimport { PropertyViewCategoryComponent } from './components/property-view-category.component';\r\nimport { PropertyViewMessageComponent } from './components/property-view-message.component';\r\nimport { PropertyViewPropertyValueContainerComponent } from './components/property-view-property-value-container.component';\r\nimport { PropertyViewPropertyComponent } from './components/property-view-property.component';\r\nimport { PropertyViewSectionComponent } from './components/property-view-section.component';\r\nimport { PropertyViewComponent } from './components/property-view.component';\r\nimport { PropertyViewStrings } from './property-view-strings.service';\r\nimport { PropertyViewService } from './property-view.service';\r\n\r\nexport function pvStringsServiceFactory(existing: PropertyViewStrings) {\r\n return existing || new PropertyViewStrings();\r\n}\r\n\r\n@NgModule({\r\n imports: [HermesDropdownModule, CommonModule],\r\n declarations: [\r\n PropertyViewCategoryComponent,\r\n PropertyViewComponent,\r\n PropertyViewMessageComponent,\r\n PropertyViewPropertyComponent,\r\n PropertyViewPropertyValueContainerComponent,\r\n PropertyViewSectionComponent,\r\n ],\r\n providers: [\r\n PropertyViewService,\r\n {\r\n // This pattern allows the importer of this module to specify its own PropertyViewStrings.\r\n provide: PropertyViewStrings,\r\n useFactory: pvStringsServiceFactory,\r\n deps: [[new Optional(), new SkipSelf(), PropertyViewStrings]],\r\n },\r\n ],\r\n exports: [PropertyViewComponent],\r\n})\r\nexport class AppfxPropertyViewModule {\r\n constructor() {\r\n ClarityIcons.addIcons(angleIcon);\r\n }\r\n}\r\n","/*\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\r\nexport { PropertyViewBuilder } from './builders/property-view-builder';\r\nexport { PropertyViewCategoryBuilder } from './builders/property-view-category-builder';\r\nexport { PropertyViewMessageBuilder } from './builders/property-view-message-builder';\r\nexport { PropertyViewPropertyBuilder } from './builders/property-view-property-builder';\r\nexport { PropertyViewPropertyKeyBuilder } from './builders/property-view-property-key-builder';\r\nexport { PropertyViewPropertyValueBuilder } from './builders/property-view-property-value-builder';\r\nexport { PropertyViewPropertyValueComponentBuilder } from './builders/property-view-property-value-component-builder';\r\nexport { PropertyViewSectionBuilder } from './builders/property-view-section-builder';\r\nexport { PropertyViewComponent } from './components/property-view.component';\r\nexport {\r\n PropertyViewActionModel,\r\n PropertyViewCategoryModel,\r\n PropertyViewLinkModel,\r\n PropertyViewMessageModel,\r\n PropertyViewModel,\r\n PropertyViewModelType,\r\n PropertyViewPropertyKeyModel,\r\n PropertyViewPropertyModel,\r\n PropertyViewPropertyValueComponent,\r\n PropertyViewPropertyValueComponentModel,\r\n PropertyViewPropertyValueModel,\r\n PropertyViewSectionModel,\r\n} from './property-view.model';\r\nexport { AppfxPropertyViewModule as PropertyViewModule } from './property-view.module';\r\nexport { AppfxPropertyViewModule } from './property-view.module';\r\nexport { PropertyViewService } from './property-view.service';\r\nexport { PropertyViewConfig } from './property-view-config';\r\nexport { PropertyViewStrings } from './property-view-strings.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.PropertyViewConfigProvider","i4.PropertyViewPropertyValueContainerComponent","i1.PropertyViewStrings","i2","i3","i5","i6.PropertyViewMessageComponent","i7.PropertyViewPropertyComponent","i1.PropertyViewSectionsExpandedStateManager","i2.PropertyViewStrings","i4.PropertyViewSectionComponent","i2.PropertyViewConfigProvider","i4.PropertyViewCategoryComponent"],"mappings":";;;;;;;;;;;;;AAAA;;;;;AAKG;IAIS;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACnD,CAAC,EARW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;;ACTjC;;;;;AAKG;AAEH;MAIa,0BAA0B,CAAA;AAErC,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,aAAa;AAEb,IAAA,WAAA,CAAY,MAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC5B;AAEA,IAAA,IAAI,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAE1B,QAAA,OAAO,IAAI;IACb;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC;IACH;AAEA,IAAA,KAAK,CAAC,WAAuC,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,IAAI,0BAA0B,CAAC,WAAW,CAAC;AAC1D,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACzB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACzB,QAAA,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;AAEzC,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;AC/DD;;;;;AAKG;AAEH;MAIa,8BAA8B,CAAA;AAEzC,IAAA,KAAK;AACL,IAAA,KAAK;AAEL,IAAA,WAAA,CAAY,MAAmC,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AAEA,IAAA,IAAI,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,IAAI;IACb;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,WAAW;YACvC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB;IACH;AAEA,IAAA,KAAK,CAAC,WAAwC,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,8BAA8B,CAAC,WAAW,CAAC;AAC9D,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACzB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAEzB,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;ACrDD;;;;;AAKG;AAEH;MAIa,gCAAgC,CAAA;AAE3C,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,KAAK;AAEL,IAAA,WAAA,CAAY,MAAmC,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AAEA,IAAA,IAAI,CAAC,KAAuC,EAAA;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI;AAErD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,CAAC,KAAmC,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,OAAO,IAAI;IACb;IAEA,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,KAAK;IACnB;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,aAAa;YACzC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB;IACH;AAEA,IAAA,KAAK,CAAC,WAAwC,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,gCAAgC,CAAC,WAAW,CAAC;AAChE,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACzB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;;AAEzB,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAEzB,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;ACpED;;;;;AAKG;MAYU,yCAAyC,CAAA;AAKpD,IAAA,WAAA,CAAY,MAAmC,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;IAC5B;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,sBAAsB;YAClD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC;IACH;AAEA,IAAA,SAAS,CACP,aAA0D,EAAA;AAE1D,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAElC,QAAA,OAA+D,IAAK;IACtE;AAEA,IAAA,KAAK,CAAc,cAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AAEpC,QAAA,OAA+D,IAAK;IACtE;AAEA,IAAA,KAAK,CAAC,WAAwC,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,yCAAyC,CAAI,WAAW,CAAC;AAC5E,QAAA,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;AACzC,QAAA,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;AAE3C,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;AC7DD;;;;;AAKG;AAEH;MAOa,2BAA2B,CAAA;AAEtC,IAAA,WAAW;AACX,IAAA,cAAc;AAEd,IAAA,WAAA,CAAY,MAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;IAC1B;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,WAAW;IACzB;IAEA,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;IACrC;IAEA,YAAY,GAAA;AACV,QAAA,MAAM,MAAM,GAAG,IAAI,gCAAgC,CAAC,IAAI,CAAC;AACzD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAEhC,QAAA,OAAO,MAAM;IACf;IAEA,qBAAqB,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,yCAAyC,CAAI,IAAI,CAAC;AACrE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,QAAA,OAAO,MAAM;IACf;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,QAAQ;AACpC,YAAA,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE;AAC9B,YAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;SACjE;IACH;AAEA,IAAA,KAAK,CAAC,WAAuC,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,IAAI,2BAA2B,CAAC,WAAW,CAAC;AAC3D,QAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAErF,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;ACjED;;;;;AAKG;AAEH;MAQa,0BAA0B,CAAA;AAKrC,IAAA,OAAgB,cAAc,GAAG,qBAAqB;AACtD,IAAA,OAAgB,iBAAiB,GAAG,cAAc;AAClD,IAAA,OAAgB,eAAe,GAAG,eAAe;AAEjD,IAAA,aAAa;AACb,IAAA,gBAAgB;AAChB,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,QAAQ;IAER,WAAA,CAAY,MAAmC,EAAE,EAAU,EAAA;AACzD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;IAC3B;IAEA,KAAK,GAAA;QACH,OAAO,IAAI,CAAC,EAAE;IAChB;AAEA,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAE1B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,eAAe,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAE7B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,KAAK,CAAC,KAAoB,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AAEnB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,CAAC,KAAsC,EAAA;QAC3C,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;IAEA,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;IAC/B;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC;AACpD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAEjC,QAAA,OAAO,MAAM;IACf;IAEA,QAAQ,CACN,GAAW,EACX,MAA4E,EAAA;AAE5E,QAAA,IAAI,WAA6C;QAEjD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;YAC3C,WAAW,GAAG,EAAE;QAClB;AAAO,aAAA,IAAI,MAAM,YAAY,KAAK,EAAE;YAClC,WAAW,GAAG,MAAM;QACtB;aAAO;AACL,YAAA,WAAW,GAAG,CAAC,MAAM,CAAC;QACxB;AAEA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;QAC9C,eAAe,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,QAAA,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAExE,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAEjC,QAAA,OAAO,MAAM;IACf;IAEA,OAAO,CAAC,IAAY,EAAE,IAAoB,EAAA;AACxC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AAC5C,QAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,IAAI,EAAE;AACR,YAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,CAAC,IAAY,EAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,CAAC,cAAc,CAAC;IACtE;AAEA,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,CAAC,iBAAiB,CAAC;IACzE;AAEA,IAAA,KAAK,CAAC,IAAY,EAAA;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,CAAC,eAAe,CAAC;IACvE;IAEA,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;IACtC;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;AACnC,YAAA,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;SACnE;IACH;AAEA,IAAA,KAAK,CAAC,WAAwC,EAAA;QAC5C,MAAM,MAAM,GAAG,IAAI,0BAA0B,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;AACnE,QAAA,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;AACzC,QAAA,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAC/C,QAAA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AAC3B,QAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;;QAEnC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;QAC5C,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAExF,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;;;AC1KF;;;;;AAKG;AAEH;MAKa,2BAA2B,CAAA;AAItC,IAAA,MAAM;IAEN,WAAA,CAAY,MAA2B,EAAE,EAAU,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;IAC3B;IAEA,KAAK,GAAA;QACH,OAAO,IAAI,CAAC,EAAE;IAChB;AAEA,IAAA,KAAK,CAAC,KAAoB,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AAEnB,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;IACtC;AAEA,IAAA,UAAU,CAAC,EAAU,EAAA;QACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;AACxF,QAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,OAAO,gBAAgB,CAAC,CAAC,CAAC;QAC5B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,CAAC,EAAU,EAAA;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACxC,QAAA,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,cAAc,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE,EAAE,CAAC;AACzD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C;AAEA,QAAA,OAAO,cAAc;IACvB;AAEA,IAAA,kBAAkB,CAAC,OAAmC,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,CAAA,SAAA,EAAY,OAAO,CAAC,KAAK,EAAE,CAAA,iBAAA,CAAmB,CAAC;QACjE;AACA,QAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAElC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,mBAAmB,CAAC,QAA2C,EAAA;AAC7D,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE7D,QAAA,OAAO,IAAI;IACb;IAEA,KAAK,GAAA;QACH,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,QAAQ;YACpC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,MAAM;AAClB,YAAA,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;SAC/D;IACH;AAEA,IAAA,KAAK,CAAC,WAAgC,EAAA;QACpC,MAAM,MAAM,GAAG,IAAI,2BAA2B,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;AACpE,QAAA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QAC3B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAEpF,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;AC9FD;;;;;AAKG;MAMU,mBAAmB,CAAA;AAC9B,IAAA,OAAgB,cAAc,GAAG,KAAK;AAEtC,IAAA,iBAAiB;AAEjB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;IAEA,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;IACxC;AAEA,IAAA,WAAW,CAAC,EAAU,EAAA;QACpB,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;AAC7E,QAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAA,OAAO,eAAe,CAAC,CAAC,CAAC;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;IAEA,UAAU,CAAC,UAAkB,EAAE,SAAiB,EAAA;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AAC7C,QAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;IACvC;IAEA,QAAQ,CAAC,EAAU,EAAE,cAAuB,EAAA;QAC1C,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1C,QAAA,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,eAAe,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC;QAC9C;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAC5E,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;AAE9C,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,cAAc,GAAG,YAAY;QAC/B;aAAO,IACL,KAAK,CAAC,cAAc,CAAC;YACrB,CAAC,QAAQ,CAAC,cAAc,CAAC;YACzB,cAAc,KAAK,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC1D,YAAA,cAAc,GAAG,CAAC;AAClB,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,cAAc,EAC9C;AACA,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,wBAAA,EAA2B,cAAc,CAAA,CAAA,CAAG;gBAC1C,CAAA,gDAAA,CAAkD;AAClD,gBAAA,CAAA,KAAA,EAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAA,EAAA,CAAI,CAC5C;QACH;aAAO;;QAEP;QAEA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,eAAe,CAAC;AAEjE,QAAA,OAAO,eAAe;IACxB;AAEA,IAAA,mBAAmB,CAAC,aAAqB,EAAA;QACvC,IAAI,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE;YACxD,MAAM,IAAI,KAAK,CAAC,CAAA,UAAA,EAAa,mBAAmB,CAAC,cAAc,CAAA,iBAAA,CAAmB,CAAC;QACrF;QAEA,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC;aACvD,KAAK,CAAC,aAAa;AACnB,aAAA,mBAAmB,CAClB,IAAI,CAAC,gBAAgB;aAClB,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,cAAc,EAAE;;AAEzC,aAAA,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAC3D;IACL;IAEA,KAAK,GAAA;QACH,OAAO;AACL,YAAA,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;SACpE;IACH;IAEA,KAAK,GAAA;AACH,QAAA,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE;QACxC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAExF,QAAA,OAAO,MAAM;IACf;IAEA,IAAI,GAAA;AACF,QAAA,OAAO,IAAI;IACb;;;ACzGF;;;;;AAKG;MAQU,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;AAGU,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAiC,SAAS,CAAC;AAcvF,IAAA;IAZC,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IAC1C;AAEA,IAAA,SAAS,CAAC,KAAqC,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;+GAfW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAA1B,0BAA0B,EAAA,CAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;ACZD;;;;;AAKG;MAoBU,wCAAwC,CAAA;AAGnD,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,mCAAmC,GAAG,EAAE;IAC/C;IAEA,uBAAuB,CAAC,UAAkB,EAAE,SAAiB,EAAA;QAC3D,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,mCAAmC,CAAC,EAAE;AAC7D,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAA,CAAE,CAAC;QACvD;AAEA,QAAA,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,EAAE;AACxE,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,CAAA,CAAE,CAAC;QACrD;QAEA,MAAM,oBAAoB,GAAG,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;AAC5F,QAAA,IAAI,OAAO,oBAAoB,CAAC,IAAI,KAAK,SAAS,EAAE;YAClD,OAAO,oBAAoB,CAAC,IAAI;QAClC;QACA,OAAO,oBAAoB,CAAC,IAAI;IAClC;AAEA,IAAA,2BAA2B,CAAC,UAAkB,EAAE,SAAiB,EAAE,iBAA0B,EAAA;QAC3F,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,mCAAmC,CAAC,EAAE;AAC7D,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAA,CAAE,CAAC;QACvD;AAEA,QAAA,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,EAAE;AACxE,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,CAAA,CAAE,CAAC;QACrD;AAEA,QAAA,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,iBAAiB;IAC1F;AAEA,IAAA,MAAM,CAAC,UAA4C,EAAA;QACjD,MAAM,cAAc,GAAgD,EAAE;AACtE,QAAA,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AACjC,YAAA,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ;QACxC;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;AACxC,QAAA,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;;QAGxC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC;QACzD;IACF;AAEQ,IAAA,mBAAmB,CAAC,cAA2D,EAAA;AACrF,QAAA,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE;AAC9E,YAAA,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC;YAC7D;QACF;IACF;AAEQ,IAAA,mBAAmB,CAAC,cAA2D,EAAA;QACrF,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACpD,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,mCAAmC,CAAC,EAAE;AAC7D,gBAAA,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC,GAAG,EAAE;YAC3D;QACF;IACF;IAEQ,sBAAsB,CAAC,UAAkB,EAAE,cAA2D,EAAA;QAC5G,MAAM,YAAY,GAA+C,EAAE;QACnE,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;AACxD,YAAA,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO;QACpC;QAEA,MAAM,qBAAqB,GAAG,IAAI,CAAC,mCAAmC,CAAC,UAAU,CAAC;;QAGlF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;AAC1D,YAAA,IAAI,EAAE,SAAS,IAAI,YAAY,CAAC,EAAE;AAChC,gBAAA,OAAO,qBAAqB,CAAC,SAAS,CAAC;YACzC;QACF;;QAGA,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;AAC1D,YAAA,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,eAAe;QAClF;;QAGA,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACjD,YAAA,IAAI,EAAE,SAAS,IAAI,qBAAqB,CAAC,EAAE;gBACzC,qBAAqB,CAAC,SAAS,CAAC,GAAG;AACjC,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,eAAe;iBAC/C;YACH;QACF;IACF;+GA/FW,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAxC,wCAAwC,EAAA,CAAA,CAAA;;4FAAxC,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBADpD;;;ACxBD;;;;;AAKG;AAIH;;;;;;;;;;;;;;;;;;;AAmBG;MAEU,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAEE;;AAEG;QACM,IAAA,CAAA,MAAM,GAAW,oBAAoB;AAE9C;;AAEG;QACM,IAAA,CAAA,OAAO,GAAW,SAAS;AAEpC;;AAEG;QACM,IAAA,CAAA,0BAA0B,GAAW,oCAAoC;AAElF;;AAEG;QACM,IAAA,CAAA,yBAAyB,GAAW,iCAAiC;AAC/E,IAAA;+GApBY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAnB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;AC7BD;;;;;AAKG;MAYU,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,oHCjBzC,+5BAuBA,EAAA,MAAA,EAAA,CAAA,qmBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDNa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAC7B,KAAK,EAAA,QAAA,EAAA,+5BAAA,EAAA,MAAA,EAAA,CAAA,qmBAAA,CAAA,EAAA;;sBAKhB;;;AElBH;;;;;AAKG;AAiBH;;;AAGG;MAMU,2CAA2C,CAAA;AAKtD,IAAA,cAAc;AAEd,IAAA,WAAA,CACU,wBAAkD,EAClD,KAAwB,EACxB,aAA+B,EAAA;QAF/B,IAAA,CAAA,wBAAwB,GAAxB,wBAAwB;QACxB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,aAAa,GAAb,aAAa;IACpB;IAEH,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE;YAC/D,IAAI,CAAC,eAAe,EAAE;QACxB;aAAO,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE;AACxE,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc;AAC/C,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5B;QACF;aAAO;;QAEP;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,EAAE;IACd;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;QACF;AAEA,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;QAClG,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,QAAQ;QAC3C,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;IAC5B;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;IACjC;+GAlDW,2CAA2C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2CAA2C,4MAF5C,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAED,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBALvD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8CAA8C;AACxD,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;sBAEE;;sBAEA;;;AClCH;;;;;AAKG;MAqBU,6BAA6B,CAAA;IAaxC,WAAA,CACS,0BAAsD,EACzC,gBAAmC,EAAA;QADhD,IAAA,CAAA,0BAA0B,GAA1B,0BAA0B;QACb,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAd7B,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;QAQzB,IAAA,CAAA,UAAU,GAAG,KAAK;IAO5C;AAEH,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CACxD,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,aAAa,CACxB;YAErC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CACjE,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,sBAAsB,CACf;QACzD;IACF;AAEA,IAAA,eAAe,CAAC,IAA2B,EAAA;QACzC,IAAI,CAAC,YAAY,EAAE;IACrB;AAEA,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,OAAO,KAAK;IACd;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,SAAS,CACpE,CAAC,KAAgB,MAAM,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC,CACjE;IACH;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,qBAAqB,EAAE,WAAW,EAAE;IAC3C;+GA9CW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,uMC1B1C,u/DA6CA,EAAA,MAAA,EAAA,CAAA,qyEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2CAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDnBa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gCAAgC,cAC9B,KAAK,EAAA,QAAA,EAAA,u/DAAA,EAAA,MAAA,EAAA,CAAA,qyEAAA,CAAA,EAAA;;0BAmBd;;sBAZF;;sBAMA,WAAW;uBAAC,cAAc;;;AEnC7B;;;;;AAKG;MAaU,4BAA4B,CAAA;AAWvC,IAAA,WAAA,CAAmB,mBAAwC,EAAA;QAAxC,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QAV7B,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;AAWpD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAW;IACnD;IAEA,mBAAmB,GAAA;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC1C;AAEA,IAAA,iBAAiB,CAAC,MAA+B,EAAA;AAC/C,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACrB;QACF;QAEA,MAAM,CAAC,YAAY,EAAE;IACvB;AAEA,IAAA,oBAAoB,CAAC,KAAa,EAAA;AAChC,QAAA,OAAO,KAAK;IACd;IAEA,oCAAoC,GAAA;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;IAChE;AAEA;;;AAGG;AACK,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;IAC5E;+GAzCW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,qNClBzC,wsFAiEA,EAAA,MAAA,EAAA,CAAA,k+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD/Ca,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,cAC7B,KAAK,EAAA,QAAA,EAAA,wsFAAA,EAAA,MAAA,EAAA,CAAA,k+BAAA,CAAA,EAAA;;sBAOhB;;sBAEA;;sBAEA;;sBAEA;;;AE3BH;;;;;AAKG;MAcU,6BAA6B,CAAA;IAOxC,WAAA,CACU,oBAA8D,EAC9D,mBAAwC,EAAA;QADxC,IAAA,CAAA,oBAAoB,GAApB,oBAAoB;QACpB,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QARpB,IAAA,CAAA,qBAAqB,GAAG,qBAAqB;IASnD;AAEH,IAAA,uBAAuB,CAAC,SAAiB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC;IACnF;IAEA,4BAA4B,CAAC,SAAiB,EAAE,iBAA0B,EAAA;AACxE,QAAA,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC;IACnG;IAEA,oBAAoB,CAAC,KAAa,EAAE,IAA8B,EAAA;QAChE,OAAO,IAAI,CAAC,EAAE;IAChB;AAEA,IAAA,qBAAqB,CAAC,OAAiC,EAAA;QACrD,OAAO,CAAA,EAAG,IAAI,CAAC,WAAW,YAAY,OAAO,CAAC,EAAE,CAAA,UAAA,CAAY;IAC9D;AAEA,IAAA,8BAA8B,CAAC,OAAiC,EAAA;AAC9D,QAAA,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,OAAO,CAAA,EAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,aAAa;QAC5D;AAEA,QAAA,OAAO,SAAS;IAClB;IAEA,6BAA6B,GAAA;QAC3B,IAAI,eAAe,GAAG,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAiC,KAAI;AAC9D,YAAA,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM;AAC3C,QAAA,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;AAChC,cAAE,IAAI,CAAC,mBAAmB,CAAC;AACtB,iBAAA,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE;AACzC,iBAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;AACvD,cAAE,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC;IACnG;+GA9CW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,wCAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,+ICnB1C,qhEA8CA,EAAA,MAAA,EAAA,CAAA,ifAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD3Ba,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,cAC5B,KAAK,EAAA,QAAA,EAAA,qhEAAA,EAAA,MAAA,EAAA,CAAA,ifAAA,CAAA,EAAA;;sBAOhB;;sBAEA;;;AExBH;;;;;AAKG;MAgBU,qBAAqB,CAAA;aACjB,IAAA,CAAA,SAAS,GAAG,CAAH,CAAK;IAS7B,WAAA,CACU,oBAA8D,EAC9D,0BAAsD,EAAA;QADtD,IAAA,CAAA,oBAAoB,GAApB,oBAAoB;QACpB,IAAA,CAAA,0BAA0B,GAA1B,0BAA0B;QAElC,IAAI,CAAC,OAAO,GAAG,sBAAsB,GAAG,qBAAqB,CAAC,SAAS,EAAE;IAC3E;IAEA,IACI,MAAM,CAAC,KAAqC,EAAA;AAC9C,QAAA,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC;IAClD;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvE,IAAI,CAAC,iCAAiC,EAAE;QACxC,IAAI,CAAC,gCAAgC,EAAE;IACzC;AAEA,IAAA,cAAc,CAAC,QAAmC,EAAA;AAChD,QAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,EAAE;AACrC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;IAClD;AAEA,IAAA,kBAAkB,CAAC,QAAmC,EAAA;AACpD,QAAA,OAAO,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB;IAChD;AAEA,IAAA,iBAAiB,CAAC,QAAmC,EAAA;AACnD,QAAA,OAAO,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB;IAC/C;AAEA,IAAA,gBAAgB,CAAC,QAAmC,EAAA;QAClD,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,aAAa,QAAQ,CAAC,EAAE,CAAA,IAAA,CAAM;IACtD;AAEA,IAAA,kBAAkB,CAAC,QAAmC,EAAA;QACpD,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,aAAa,QAAQ,CAAC,EAAE,CAAA,MAAA,CAAQ;IACxD;AAEA,IAAA,sBAAsB,CAAC,QAAmC,EAAA;QACxD,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,aAAa,QAAQ,CAAC,EAAE,CAAA,UAAA,CAAY;IAC5D;IAEA,qBAAqB,CAAC,KAAa,EAAE,IAA+B,EAAA;QAClE,OAAO,IAAI,CAAC,EAAE;IAChB;AAEA,IAAA,gBAAgB,CAAC,KAAoB,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YAC3F;QACF;QAEA,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC;AAC/G,QAAA,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE;YAC/B;QACF;QAEA,IAAI,uBAAuB,GAAG,oBAAoB;AAClD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE;AACrD,YAAA,IAAI,uBAAuB,KAAK,CAAC,EAAE;gBACjC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC3D;iBAAO;AACL,gBAAA,uBAAuB,EAAE;YAC3B;QACF;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AAC9D,YAAA,IAAI,uBAAuB,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/D,uBAAuB,GAAG,CAAC;YAC7B;iBAAO;AACL,gBAAA,uBAAuB,EAAE;YAC3B;QACF;aAAO;;QAEP;AACA,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,EAAE;AACzE,QAAA,IAAI,uBAAuB,KAAK,oBAAoB,EAAE;YACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE;YAChE,MAAM,wBAAwB,GAAgB,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,aAAa;YACvG,wBAAwB,CAAC,KAAK,EAAE;QAClC;IACF;IAEQ,iCAAiC,GAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS;YACnC;QACF;QAEA,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC;QAC9G,IAAI,CAAC,uBAAuB,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;QACtD;IACF;IAEQ,gCAAgC,GAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;YAClC;QACF;QAEA,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC;QAC5G,IAAI,CAAC,sBAAsB,EAAE;AAC3B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB;QAClD;IACF;+GAjHW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,wCAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,0BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+GAFrB,CAAC,0BAA0B,EAAE,wCAAwC,CAAC,0ICnBnF,0xEAqDA,EAAA,MAAA,EAAA,CAAA,6KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDhCa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,KAAK,EAAA,SAAA,EAGN,CAAC,0BAA0B,EAAE,wCAAwC,CAAC,EAAA,QAAA,EAAA,0xEAAA,EAAA,MAAA,EAAA,CAAA,6KAAA,CAAA,EAAA;;sBAQhF;;sBAEA,YAAY;uBAAC,mBAAmB;;sBAShC;;;AEtCH;;;;;AAKG;MAOU,mBAAmB,CAAA;IAC9B,yBAAyB,GAAA;QACvB,OAAO,IAAI,mBAAmB,EAAE;IAClC;+GAHW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAnB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;ACXD;;;;;AAKG;AAgBG,SAAU,uBAAuB,CAAC,QAA6B,EAAA;AACnE,IAAA,OAAO,QAAQ,IAAI,IAAI,mBAAmB,EAAE;AAC9C;MAuBa,uBAAuB,CAAA;AAClC,IAAA,WAAA,GAAA;AACE,QAAA,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;IAClC;+GAHW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAlBhC,6BAA6B;YAC7B,qBAAqB;YACrB,4BAA4B;YAC5B,6BAA6B;YAC7B,2CAA2C;AAC3C,YAAA,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAPpB,oBAAoB,EAAE,YAAY,aAkBlC,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,SAAA,EAXvB;YACT,mBAAmB;AACnB,YAAA;;AAEE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,uBAAuB;AACnC,gBAAA,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC9D,aAAA;SACF,EAAA,OAAA,EAAA,CAjBS,oBAAoB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAoBjC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBArBnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;AAC7C,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,qBAAqB;wBACrB,4BAA4B;wBAC5B,6BAA6B;wBAC7B,2CAA2C;wBAC3C,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,mBAAmB;AACnB,wBAAA;;AAEE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,uBAAuB;AACnC,4BAAA,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC9D,yBAAA;AACF,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;AC7CD;;;;;AAKG;;ACLH;;AAEG;;"}
1
+ {"version":3,"file":"hermes-ui-angular-addons-property-view.mjs","sources":["../../../addons/property-view/property-view.model.ts","../../../addons/property-view/builders/property-view-message-builder.ts","../../../addons/property-view/builders/property-view-property-key-builder.ts","../../../addons/property-view/builders/property-view-property-value-builder.ts","../../../addons/property-view/builders/property-view-property-value-component-builder.ts","../../../addons/property-view/builders/property-view-property-builder.ts","../../../addons/property-view/builders/property-view-section-builder.ts","../../../addons/property-view/builders/property-view-category-builder.ts","../../../addons/property-view/builders/property-view-builder.ts","../../../addons/property-view/property-view-config-provider.ts","../../../addons/property-view/property-view-sections-expanded-state.manager.ts","../../../addons/property-view/property-view-strings.service.ts","../../../addons/property-view/components/property-view-message.component.ts","../../../addons/property-view/components/property-view-message.component.html","../../../addons/property-view/components/property-view-property-value-container.component.ts","../../../addons/property-view/components/property-view-property.component.ts","../../../addons/property-view/components/property-view-property.component.html","../../../addons/property-view/components/property-view-section.component.ts","../../../addons/property-view/components/property-view-section.component.html","../../../addons/property-view/components/property-view-category.component.ts","../../../addons/property-view/components/property-view-category.component.html","../../../addons/property-view/components/property-view.component.ts","../../../addons/property-view/components/property-view.component.html","../../../addons/property-view/property-view.service.ts","../../../addons/property-view/property-view.module.ts","../../../addons/property-view/index.ts","../../../addons/property-view/hermes-ui-angular-addons-property-view.ts"],"sourcesContent":["/*\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\r\nimport { Type } from '@angular/core';\r\n\r\nexport enum PropertyViewModelType {\r\n Message = 'Message',\r\n PropertyValue = 'PropertyValue',\r\n PropertyKey = 'PropertyKey',\r\n Property = 'Property',\r\n Section = 'Section',\r\n Category = 'Category',\r\n PropertyValueComponent = 'PropertyValueComponent',\r\n}\r\n\r\nexport interface PropertyViewActionModel {\r\n title: string;\r\n isEnabled: boolean;\r\n clickHandler: () => void;\r\n}\r\n\r\nexport interface PropertyViewLinkModel {\r\n clickHandler: () => void;\r\n}\r\n\r\nexport interface PropertyViewMessageModel {\r\n type: PropertyViewModelType.Message;\r\n text: string | null;\r\n icon: string | null;\r\n renderAsHtml: boolean;\r\n}\r\n\r\nexport interface PropertyViewPropertyKeyModel {\r\n type: PropertyViewModelType.PropertyKey;\r\n text: string | null;\r\n icon: string | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyValueModel {\r\n type: PropertyViewModelType.PropertyValue;\r\n text: string | null;\r\n icon: string | null;\r\n link: PropertyViewLinkModel | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyValueComponent<T> {\r\n model?: T | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyValueComponentModel<T> {\r\n type: PropertyViewModelType.PropertyValueComponent;\r\n componentType?: Type<PropertyViewPropertyValueComponent<T>> | null;\r\n componentModel?: T | null;\r\n}\r\n\r\nexport interface PropertyViewPropertyModel {\r\n type: PropertyViewModelType.Property;\r\n key: PropertyViewPropertyKeyModel;\r\n content: Array<PropertyViewPropertyValueModel | PropertyViewPropertyValueComponentModel<any>>;\r\n}\r\n\r\nexport interface PropertyViewSectionModel {\r\n type: PropertyViewModelType.Section;\r\n id: string;\r\n renderAsHtml: boolean;\r\n title: string | null;\r\n titleIcon: string | null;\r\n actions: Array<PropertyViewActionModel>;\r\n content: Array<PropertyViewPropertyModel | PropertyViewMessageModel>;\r\n collapseContent: boolean;\r\n}\r\n\r\nexport interface PropertyViewCategoryModel {\r\n type: PropertyViewModelType.Category;\r\n id: string;\r\n title: string | null;\r\n content: Array<PropertyViewSectionModel>;\r\n}\r\n\r\nexport interface PropertyViewModel {\r\n categories: Array<PropertyViewCategoryModel>;\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewMessageModel, PropertyViewModelType } from '../property-view.model';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewMessageBuilder {\r\n private parent: PropertyViewSectionBuilder;\r\n #text: string | null;\r\n #icon: string | null;\r\n #renderAsHtml: boolean;\r\n\r\n constructor(parent: PropertyViewSectionBuilder) {\r\n this.parent = parent;\r\n this.#text = null;\r\n this.#icon = null;\r\n this.#renderAsHtml = false;\r\n }\r\n\r\n text(value: string | null): PropertyViewMessageBuilder {\r\n this.#text = value;\r\n\r\n return this;\r\n }\r\n\r\n icon(value: string | null): PropertyViewMessageBuilder {\r\n this.#icon = value;\r\n\r\n return this;\r\n }\r\n\r\n renderAsHtml(value: boolean): PropertyViewMessageBuilder {\r\n this.#renderAsHtml = value;\r\n\r\n return this;\r\n }\r\n\r\n build(): PropertyViewMessageModel {\r\n return {\r\n type: PropertyViewModelType.Message,\r\n text: this.#text,\r\n icon: this.#icon,\r\n renderAsHtml: this.#renderAsHtml,\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewSectionBuilder): PropertyViewMessageBuilder {\r\n const result = new PropertyViewMessageBuilder(parentClone);\r\n result.#text = this.#text;\r\n result.#icon = this.#icon;\r\n result.#renderAsHtml = this.#renderAsHtml;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewSectionBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewModelType, PropertyViewPropertyKeyModel } from '../property-view.model';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\nexport class PropertyViewPropertyKeyBuilder {\r\n private parent: PropertyViewPropertyBuilder;\r\n #text: string | null;\r\n #icon: string | null;\r\n\r\n constructor(parent: PropertyViewPropertyBuilder) {\r\n this.parent = parent;\r\n this.#text = null;\r\n this.#icon = null;\r\n }\r\n\r\n text(value: string | null): PropertyViewPropertyKeyBuilder {\r\n this.#text = value;\r\n\r\n return this;\r\n }\r\n\r\n icon(value: string | null): PropertyViewPropertyKeyBuilder {\r\n this.#icon = value;\r\n\r\n return this;\r\n }\r\n\r\n build(): PropertyViewPropertyKeyModel {\r\n return {\r\n type: PropertyViewModelType.PropertyKey,\r\n text: this.#text,\r\n icon: this.#icon,\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewPropertyBuilder): PropertyViewPropertyKeyBuilder {\r\n const result = new PropertyViewPropertyKeyBuilder(parentClone);\r\n result.#text = this.#text;\r\n result.#icon = this.#icon;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewPropertyBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewLinkModel, PropertyViewModelType, PropertyViewPropertyValueModel } from '../property-view.model';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\nexport class PropertyViewPropertyValueBuilder {\r\n private parent: PropertyViewPropertyBuilder;\r\n #text: string | null;\r\n #icon: string | null;\r\n #link: PropertyViewLinkModel | null;\r\n\r\n constructor(parent: PropertyViewPropertyBuilder) {\r\n this.parent = parent;\r\n this.#text = null;\r\n this.#icon = null;\r\n this.#link = null;\r\n }\r\n\r\n text(value: string | boolean | number | null): PropertyViewPropertyValueBuilder {\r\n this.#text = value !== null ? value.toString() : null;\r\n\r\n return this;\r\n }\r\n\r\n icon(value: string | null): PropertyViewPropertyValueBuilder {\r\n this.#icon = value;\r\n\r\n return this;\r\n }\r\n\r\n link(value: PropertyViewLinkModel | null): PropertyViewPropertyValueBuilder {\r\n this.#link = value;\r\n\r\n return this;\r\n }\r\n\r\n getLink(): PropertyViewLinkModel | null {\r\n return this.#link;\r\n }\r\n\r\n build(): PropertyViewPropertyValueModel {\r\n return {\r\n type: PropertyViewModelType.PropertyValue,\r\n text: this.#text,\r\n icon: this.#icon,\r\n link: this.#link,\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewPropertyBuilder): PropertyViewPropertyValueBuilder {\r\n const result = new PropertyViewPropertyValueBuilder(parentClone);\r\n result.#text = this.#text;\r\n result.#icon = this.#icon;\r\n // This field value is not cloned as it might contain external types.\r\n result.#link = this.#link;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewPropertyBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { Type } from '@angular/core';\r\n\r\nimport {\r\n PropertyViewModelType,\r\n PropertyViewPropertyValueComponent,\r\n PropertyViewPropertyValueComponentModel,\r\n} from '../property-view.model';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\nexport class PropertyViewPropertyValueComponentBuilder<T> {\r\n private parent: PropertyViewPropertyBuilder;\r\n private componentType: Type<PropertyViewPropertyValueComponent<T>> | null;\r\n private componentModel: T | null;\r\n\r\n constructor(parent: PropertyViewPropertyBuilder) {\r\n this.parent = parent;\r\n this.componentType = null;\r\n this.componentModel = null;\r\n }\r\n\r\n build(): PropertyViewPropertyValueComponentModel<T> {\r\n return {\r\n type: PropertyViewModelType.PropertyValueComponent,\r\n componentType: this.componentType,\r\n componentModel: this.componentModel,\r\n };\r\n }\r\n\r\n component<U extends T>(\r\n componentType: Type<PropertyViewPropertyValueComponent<U>>\r\n ): PropertyViewPropertyValueComponentBuilder<U> {\r\n this.componentType = componentType;\r\n\r\n return <PropertyViewPropertyValueComponentBuilder<U>>(<unknown>this);\r\n }\r\n\r\n model<U extends T>(componentModel: U): PropertyViewPropertyValueComponentBuilder<U> {\r\n this.componentModel = componentModel;\r\n\r\n return <PropertyViewPropertyValueComponentBuilder<U>>(<unknown>this);\r\n }\r\n\r\n clone(parentClone: PropertyViewPropertyBuilder): PropertyViewPropertyValueComponentBuilder<T> {\r\n const result = new PropertyViewPropertyValueComponentBuilder<T>(parentClone);\r\n result.componentType = this.componentType;\r\n result.componentModel = this.componentModel;\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewPropertyBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewModelType, PropertyViewPropertyModel } from '../property-view.model';\r\nimport { PropertyViewPropertyKeyBuilder } from './property-view-property-key-builder';\r\nimport { PropertyViewPropertyValueBuilder } from './property-view-property-value-builder';\r\nimport { PropertyViewPropertyValueComponentBuilder } from './property-view-property-value-component-builder';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewPropertyBuilder {\r\n private parent: PropertyViewSectionBuilder;\r\n #keyBuilder: PropertyViewPropertyKeyBuilder;\r\n #valueBuilders: Array<PropertyViewPropertyValueBuilder | PropertyViewPropertyValueComponentBuilder<any>>;\r\n\r\n constructor(parent: PropertyViewSectionBuilder) {\r\n this.parent = parent;\r\n this.#keyBuilder = new PropertyViewPropertyKeyBuilder(this);\r\n this.#valueBuilders = [];\r\n }\r\n\r\n keyBuilder(): PropertyViewPropertyKeyBuilder {\r\n return this.#keyBuilder;\r\n }\r\n\r\n getValueBuilders(): Array<PropertyViewPropertyValueBuilder | PropertyViewPropertyValueComponentBuilder<any>> {\r\n return this.#valueBuilders.concat();\r\n }\r\n\r\n valueBuilder(): PropertyViewPropertyValueBuilder {\r\n const result = new PropertyViewPropertyValueBuilder(this);\r\n this.#valueBuilders.push(result);\r\n\r\n return result;\r\n }\r\n\r\n valueComponentBuilder<T = any>(): PropertyViewPropertyValueComponentBuilder<T> {\r\n const result = new PropertyViewPropertyValueComponentBuilder<T>(this);\r\n this.#valueBuilders.push(result);\r\n return result;\r\n }\r\n\r\n build(): PropertyViewPropertyModel {\r\n return {\r\n type: PropertyViewModelType.Property,\r\n key: this.keyBuilder().build(),\r\n content: this.getValueBuilders().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewSectionBuilder): PropertyViewPropertyBuilder {\r\n const result = new PropertyViewPropertyBuilder(parentClone);\r\n result.#keyBuilder = this.keyBuilder().clone(result);\r\n result.#valueBuilders = this.getValueBuilders().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewSectionBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewActionModel, PropertyViewModelType, PropertyViewSectionModel } from '../property-view.model';\r\nimport { PropertyViewCategoryBuilder } from './property-view-category-builder';\r\nimport { PropertyViewMessageBuilder } from './property-view-message-builder';\r\nimport { PropertyViewPropertyBuilder } from './property-view-property-builder';\r\n\r\ntype PropertyValueTextItemType = string | number | boolean;\r\n\r\nexport class PropertyViewSectionBuilder {\r\n private parent: PropertyViewCategoryBuilder;\r\n private id: string;\r\n private contentBuilders: Array<PropertyViewPropertyBuilder | PropertyViewMessageBuilder>;\r\n\r\n static readonly #infoIconClass = 'vx-icon-info_normal';\r\n static readonly #warningIconClass = 'vx-icon-warn';\r\n static readonly #errorIconClass = 'vx-icon-error';\r\n\r\n #renderAsHtml: boolean;\r\n #collapseContent: boolean;\r\n #title: string | null;\r\n #titleIcon: string | null;\r\n #actions: Array<PropertyViewActionModel>;\r\n\r\n constructor(parent: PropertyViewCategoryBuilder, id: string) {\r\n this.parent = parent;\r\n this.id = id;\r\n this.#renderAsHtml = false;\r\n this.#collapseContent = false;\r\n this.#title = null;\r\n this.#titleIcon = null;\r\n this.#actions = [];\r\n this.contentBuilders = [];\r\n }\r\n\r\n getId(): string {\r\n return this.id;\r\n }\r\n\r\n renderAsHtml(value: boolean): PropertyViewSectionBuilder {\r\n this.#renderAsHtml = value;\r\n\r\n return this;\r\n }\r\n\r\n collapseContent(value: boolean): PropertyViewSectionBuilder {\r\n this.#collapseContent = value;\r\n\r\n return this;\r\n }\r\n\r\n title(value: string | null): PropertyViewSectionBuilder {\r\n this.#title = value;\r\n\r\n return this;\r\n }\r\n\r\n titleIcon(value: string | null): PropertyViewSectionBuilder {\r\n this.#titleIcon = value;\r\n\r\n return this;\r\n }\r\n\r\n action(value?: PropertyViewActionModel | null): PropertyViewSectionBuilder {\r\n if (value) {\r\n this.#actions.push(value);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n getActions(): Array<PropertyViewActionModel> {\r\n return this.#actions.concat();\r\n }\r\n\r\n propertyBuilder(): PropertyViewPropertyBuilder {\r\n const result = new PropertyViewPropertyBuilder(this);\r\n this.contentBuilders.push(result);\r\n\r\n return result;\r\n }\r\n\r\n property(\r\n key: string,\r\n values?: Array<PropertyValueTextItemType> | PropertyValueTextItemType | null\r\n ): PropertyViewSectionBuilder {\r\n let valuesArray: Array<PropertyValueTextItemType>;\r\n\r\n if (values === null || values === undefined) {\r\n valuesArray = [];\r\n } else if (values instanceof Array) {\r\n valuesArray = values;\r\n } else {\r\n valuesArray = [values];\r\n }\r\n\r\n const propertyBuilder = this.propertyBuilder();\r\n propertyBuilder.keyBuilder().text(key);\r\n valuesArray.forEach(value => propertyBuilder.valueBuilder().text(value));\r\n\r\n return this;\r\n }\r\n\r\n messageBuilder(): PropertyViewMessageBuilder {\r\n const result = new PropertyViewMessageBuilder(this);\r\n this.contentBuilders.push(result);\r\n\r\n return result;\r\n }\r\n\r\n message(text: string, icon?: string | null): PropertyViewSectionBuilder {\r\n const messageBuilder = this.messageBuilder();\r\n messageBuilder.text(text);\r\n if (icon) {\r\n messageBuilder.icon(icon);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n info(text: string): PropertyViewSectionBuilder {\r\n return this.message(text, PropertyViewSectionBuilder.#infoIconClass);\r\n }\r\n\r\n warning(text: string): PropertyViewSectionBuilder {\r\n return this.message(text, PropertyViewSectionBuilder.#warningIconClass);\r\n }\r\n\r\n error(text: string): PropertyViewSectionBuilder {\r\n return this.message(text, PropertyViewSectionBuilder.#errorIconClass);\r\n }\r\n\r\n getContentBuilders(): Array<PropertyViewPropertyBuilder | PropertyViewMessageBuilder> {\r\n return this.contentBuilders.concat();\r\n }\r\n\r\n build(): PropertyViewSectionModel {\r\n return {\r\n type: PropertyViewModelType.Section,\r\n id: this.id,\r\n renderAsHtml: this.#renderAsHtml,\r\n collapseContent: this.#collapseContent,\r\n title: this.#title,\r\n titleIcon: this.#titleIcon,\r\n actions: this.getActions().concat(),\r\n content: this.getContentBuilders().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewCategoryBuilder): PropertyViewSectionBuilder {\r\n const result = new PropertyViewSectionBuilder(parentClone, this.id);\r\n result.#renderAsHtml = this.#renderAsHtml;\r\n result.#collapseContent = this.#collapseContent;\r\n result.#title = this.#title;\r\n result.#titleIcon = this.#titleIcon;\r\n // This field value is not cloned as it might contain external types.\r\n result.#actions = this.getActions().concat();\r\n result.contentBuilders = this.getContentBuilders().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewCategoryBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\n/* eslint-disable @typescript-eslint/parameter-properties */\r\nimport { PropertyViewCategoryModel, PropertyViewModelType } from '../property-view.model';\r\nimport { PropertyViewBuilder } from './property-view-builder';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewCategoryBuilder {\r\n private parent: PropertyViewBuilder;\r\n private id: string;\r\n private contentBuilders: Array<PropertyViewSectionBuilder>;\r\n #title: string | null;\r\n\r\n constructor(parent: PropertyViewBuilder, id: string) {\r\n this.parent = parent;\r\n this.id = id;\r\n this.#title = null;\r\n this.contentBuilders = [];\r\n }\r\n\r\n getId(): string {\r\n return this.id;\r\n }\r\n\r\n title(value: string | null): PropertyViewCategoryBuilder {\r\n this.#title = value;\r\n\r\n return this;\r\n }\r\n\r\n getAllSections(): Array<PropertyViewSectionBuilder> {\r\n return this.contentBuilders.concat();\r\n }\r\n\r\n getSection(id: string): PropertyViewSectionBuilder | null {\r\n const matchingSections = this.getAllSections().filter(section => section.getId() === id);\r\n if (matchingSections.length === 1) {\r\n return matchingSections[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n section(id: string): PropertyViewSectionBuilder {\r\n let sectionBuilder = this.getSection(id);\r\n if (sectionBuilder === null) {\r\n sectionBuilder = new PropertyViewSectionBuilder(this, id);\r\n this.contentBuilders.push(sectionBuilder);\r\n }\r\n\r\n return sectionBuilder;\r\n }\r\n\r\n cloneAndAddBuilder(builder: PropertyViewSectionBuilder): PropertyViewCategoryBuilder {\r\n if (this.getSection(builder.getId()) !== null) {\r\n throw new Error(`Section '${builder.getId()}' already exists.`);\r\n }\r\n builder = builder.clone(this);\r\n this.contentBuilders.push(builder);\r\n\r\n return this;\r\n }\r\n\r\n cloneAndAddBuilders(builders: Array<PropertyViewSectionBuilder>): PropertyViewCategoryBuilder {\r\n builders.forEach(builder => this.cloneAndAddBuilder(builder));\r\n\r\n return this;\r\n }\r\n\r\n build(): PropertyViewCategoryModel {\r\n return {\r\n type: PropertyViewModelType.Category,\r\n id: this.id,\r\n title: this.#title,\r\n content: this.getAllSections().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(parentClone: PropertyViewBuilder): PropertyViewCategoryBuilder {\r\n const result = new PropertyViewCategoryBuilder(parentClone, this.id);\r\n result.#title = this.#title;\r\n result.contentBuilders = this.getAllSections().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): PropertyViewBuilder {\r\n return this.parent;\r\n }\r\n}\r\n","/*\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\r\nimport { PropertyViewModel } from '../property-view.model';\r\nimport { PropertyViewCategoryBuilder } from './property-view-category-builder';\r\nimport { PropertyViewSectionBuilder } from './property-view-section-builder';\r\n\r\nexport class PropertyViewBuilder {\r\n static readonly #allCategoryId = 'all';\r\n\r\n #categoryBuilders: Array<PropertyViewCategoryBuilder>;\r\n\r\n constructor() {\r\n this.#categoryBuilders = [];\r\n }\r\n\r\n getAllCategories(): Array<PropertyViewCategoryBuilder> {\r\n return this.#categoryBuilders.concat();\r\n }\r\n\r\n getCategory(id: string): PropertyViewCategoryBuilder | null {\r\n const matchingBuilder = this.getAllCategories().filter(s => s.getId() === id);\r\n if (matchingBuilder.length === 1) {\r\n return matchingBuilder[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSection(categoryId: string, sectionId: string): PropertyViewSectionBuilder | null {\r\n const category = this.getCategory(categoryId);\r\n if (category === null) {\r\n return null;\r\n }\r\n\r\n return category.getSection(sectionId);\r\n }\r\n\r\n category(id: string, insertionIndex?: number): PropertyViewCategoryBuilder {\r\n let categoryBuilder = this.getCategory(id);\r\n if (categoryBuilder === null) {\r\n categoryBuilder = new PropertyViewCategoryBuilder(this, id);\r\n this.#categoryBuilders.push(categoryBuilder);\r\n }\r\n\r\n const removalIndex = this.#categoryBuilders.findIndex(b => b.getId() === id);\r\n this.#categoryBuilders.splice(removalIndex, 1);\r\n\r\n if (insertionIndex === undefined) {\r\n insertionIndex = removalIndex;\r\n } else if (\r\n isNaN(insertionIndex) ||\r\n !isFinite(insertionIndex) ||\r\n insertionIndex !== parseInt(insertionIndex.toString(), 10) ||\r\n insertionIndex < 0 ||\r\n this.#categoryBuilders.length < insertionIndex\r\n ) {\r\n throw new Error(\r\n `Invalid insertion index ${insertionIndex}.` +\r\n ` Insertion index must be an integer in the range` +\r\n ` [0, ${this.#categoryBuilders.length}].`\r\n );\r\n } else {\r\n // no action\r\n }\r\n\r\n this.#categoryBuilders.splice(insertionIndex, 0, categoryBuilder);\r\n\r\n return categoryBuilder;\r\n }\r\n\r\n generateAllCategory(categoryTitle: string): PropertyViewCategoryBuilder {\r\n if (this.getCategory(PropertyViewBuilder.#allCategoryId)) {\r\n throw new Error(`Category '${PropertyViewBuilder.#allCategoryId}' already exists.`);\r\n }\r\n\r\n return this.category(PropertyViewBuilder.#allCategoryId, 0)\r\n .title(categoryTitle)\r\n .cloneAndAddBuilders(\r\n this.getAllCategories()\r\n .map(category => category.getAllSections())\r\n // Array.flat()\r\n .reduce((previous, current) => previous.concat(current))\r\n );\r\n }\r\n\r\n build(): PropertyViewModel {\r\n return {\r\n categories: this.getAllCategories().map(builder => builder.build()),\r\n };\r\n }\r\n\r\n clone(): PropertyViewBuilder {\r\n const result = new PropertyViewBuilder();\r\n result.#categoryBuilders = this.getAllCategories().map(builder => builder.clone(result));\r\n\r\n return result;\r\n }\r\n\r\n exit(): null {\r\n return null;\r\n }\r\n}\r\n","/*\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\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { PropertyViewConfig } from './property-view-config';\r\n\r\n@Injectable()\r\nexport class PropertyViewConfigProvider {\r\n private config: PropertyViewConfig | undefined;\r\n private configSubject = new BehaviorSubject<PropertyViewConfig | undefined>(undefined);\r\n\r\n getConfig(): PropertyViewConfig | undefined {\r\n return this.config;\r\n }\r\n\r\n config$(): Observable<PropertyViewConfig | undefined> {\r\n return this.configSubject.asObservable();\r\n }\r\n\r\n setConfig(value: PropertyViewConfig | undefined): void {\r\n this.config = value;\r\n this.configSubject.next(value);\r\n }\r\n}\r\n","/*\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\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { PropertyViewCategoryModel, PropertyViewSectionModel } from './property-view.model';\r\n\r\ninterface SectionExpandedState {\r\n user: boolean | undefined;\r\n data: boolean;\r\n}\r\n\r\ninterface SectionsExpandedState {\r\n [sectionId: string]: SectionExpandedState;\r\n}\r\n\r\ninterface CategoriesSectionsExpandedState {\r\n [categoryId: string]: SectionsExpandedState;\r\n}\r\n\r\n@Injectable()\r\nexport class PropertyViewSectionsExpandedStateManager {\r\n private readonly categoriesSectionsExpandedStateData: CategoriesSectionsExpandedState;\r\n\r\n constructor() {\r\n this.categoriesSectionsExpandedStateData = {};\r\n }\r\n\r\n getSectionExpandedState(categoryId: string, sectionId: string): boolean {\r\n if (!(categoryId in this.categoriesSectionsExpandedStateData)) {\r\n throw new Error(`Unknown category ID: ${categoryId}`);\r\n }\r\n\r\n if (!(sectionId in this.categoriesSectionsExpandedStateData[categoryId])) {\r\n throw new Error(`Unknown section ID: ${sectionId}`);\r\n }\r\n\r\n const sectionExpandedState = this.categoriesSectionsExpandedStateData[categoryId][sectionId];\r\n if (typeof sectionExpandedState.user === 'boolean') {\r\n return sectionExpandedState.user;\r\n }\r\n return sectionExpandedState.data;\r\n }\r\n\r\n setSectionExpandedUserState(categoryId: string, sectionId: string, expandedUserState: boolean) {\r\n if (!(categoryId in this.categoriesSectionsExpandedStateData)) {\r\n throw new Error(`Unknown category ID: ${categoryId}`);\r\n }\r\n\r\n if (!(sectionId in this.categoriesSectionsExpandedStateData[categoryId])) {\r\n throw new Error(`Unknown section ID: ${sectionId}`);\r\n }\r\n\r\n this.categoriesSectionsExpandedStateData[categoryId][sectionId].user = expandedUserState;\r\n }\r\n\r\n update(categories: Array<PropertyViewCategoryModel>) {\r\n const categoriesById: { [id: string]: PropertyViewCategoryModel } = {};\r\n for (const category of categories) {\r\n categoriesById[category.id] = category;\r\n }\r\n\r\n this.removeOldCategories(categoriesById);\r\n this.createNewCategories(categoriesById);\r\n\r\n // Update categories' sections\r\n for (const categoryId of Object.keys(categoriesById)) {\r\n this.updateCategorySections(categoryId, categoriesById);\r\n }\r\n }\r\n\r\n private removeOldCategories(categoriesById: { [id: string]: PropertyViewCategoryModel }) {\r\n for (const categoryId of Object.keys(this.categoriesSectionsExpandedStateData)) {\r\n if (!(categoryId in categoriesById)) {\r\n delete this.categoriesSectionsExpandedStateData[categoryId];\r\n }\r\n }\r\n }\r\n\r\n private createNewCategories(categoriesById: { [id: string]: PropertyViewCategoryModel }) {\r\n for (const categoryId of Object.keys(categoriesById)) {\r\n if (!(categoryId in this.categoriesSectionsExpandedStateData)) {\r\n this.categoriesSectionsExpandedStateData[categoryId] = {};\r\n }\r\n }\r\n }\r\n\r\n private updateCategorySections(categoryId: string, categoriesById: { [id: string]: PropertyViewCategoryModel }) {\r\n const sectionsById: { [id: string]: PropertyViewSectionModel } = {};\r\n for (const section of categoriesById[categoryId].content) {\r\n sectionsById[section.id] = section;\r\n }\r\n\r\n const sectionsExpandedState = this.categoriesSectionsExpandedStateData[categoryId];\r\n\r\n // Remove sections\r\n for (const sectionId of Object.keys(sectionsExpandedState)) {\r\n if (!(sectionId in sectionsById)) {\r\n delete sectionsExpandedState[sectionId];\r\n }\r\n }\r\n\r\n // Update sections\r\n for (const sectionId of Object.keys(sectionsExpandedState)) {\r\n sectionsExpandedState[sectionId].data = !sectionsById[sectionId].collapseContent;\r\n }\r\n\r\n // Create sections\r\n for (const sectionId of Object.keys(sectionsById)) {\r\n if (!(sectionId in sectionsExpandedState)) {\r\n sectionsExpandedState[sectionId] = {\r\n user: undefined,\r\n data: !sectionsById[sectionId].collapseContent,\r\n };\r\n }\r\n }\r\n }\r\n}\r\n","/*\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\r\nimport { Injectable } from '@angular/core';\r\n\r\n/**\r\n * User-visible strings used in the 'appfx-property-view' library.\r\n * Fields are read-only to avoid accidentally modifying the values and affecting all\r\n * components in the application.\r\n *\r\n * Strings are in English only. If you need to provide localized strings:\r\n * - extend this class\r\n * - override all fields with localized values\r\n * - provide instance in the module where you use PropertyViewModule\r\n *\r\n * ```\r\n * @NgModule({\r\n * ...\r\n * providers: [\r\n * { provide: PropertyViewStrings, useClass: LocalizedPropertyViewStrings },\r\n * ]\r\n * })\r\n * export class AppModule {}\r\n * ```\r\n */\r\n@Injectable()\r\nexport class PropertyViewStrings {\r\n /**\r\n * Toggle button aria-label.\r\n */\r\n readonly toggle: string = 'Toggle {0} section';\r\n\r\n /**\r\n * Actions drop-down label.\r\n */\r\n readonly actions: string = 'Actions';\r\n\r\n /**\r\n * Aria label describing number of section items in a property view\r\n */\r\n readonly categoryListItemsAreaLabel: string = '{0} items grouped in {1} sections.';\r\n\r\n /**\r\n * Aria label describing number section items in a property view when one item\r\n */\r\n readonly categoryListItemAreaLabel: string = '{0} items grouped in 1 section.';\r\n}\r\n","/*\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\r\nimport { Component, Input } from '@angular/core';\r\n\r\nimport { PropertyViewMessageModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: '[appfx-property-view-message]',\r\n standalone: false,\r\n templateUrl: 'property-view-message.component.html',\r\n styleUrls: ['property-view-message.component.scss'],\r\n})\r\nexport class PropertyViewMessageComponent {\r\n @Input() data: PropertyViewMessageModel;\r\n}\r\n","<!--\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","/*\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\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n Type,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\nimport { PropertyViewPropertyValueComponent } from '../property-view.model';\r\n\r\n/**\r\n * Component used to dynamically render\r\n * a given component passed as a property of the PropertyViewPropertyComponentValueModel\r\n */\r\n@Component({\r\n selector: 'appfx-property-view-property-value-component',\r\n standalone: false,\r\n template: '',\r\n})\r\nexport class PropertyViewPropertyValueContainerComponent<T> implements OnInit, OnChanges, OnDestroy {\r\n @Input() componentType?: Type<PropertyViewPropertyValueComponent<T>> | null;\r\n\r\n @Input() componentModel?: T | null;\r\n\r\n #pageComponent?: PropertyViewPropertyValueComponent<T>;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private cdRef: ChangeDetectorRef,\r\n private viewContainer: ViewContainerRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createComponent();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.componentType && !changes.componentType.firstChange) {\r\n this.createComponent();\r\n } else if (changes.componentModel && !changes.componentModel.firstChange) {\r\n if (this.#pageComponent) {\r\n this.#pageComponent.model = this.componentModel;\r\n this.cdRef.detectChanges();\r\n }\r\n } else {\r\n // no action\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.clear();\r\n }\r\n\r\n private createComponent(): void {\r\n this.clear();\r\n if (!this.componentType) {\r\n return;\r\n }\r\n\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentType);\r\n const componentRef = this.viewContainer.createComponent(componentFactory);\r\n this.#pageComponent = componentRef.instance;\r\n this.#pageComponent.model = this.componentModel;\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n private clear(): void {\r\n this.viewContainer.clear();\r\n this.#pageComponent = undefined;\r\n }\r\n}\r\n","/*\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\r\nimport { Component, HostBinding, Input, OnChanges, OnDestroy, OnInit, Optional, SimpleChanges } from '@angular/core';\r\nimport { ZoomLevel, ZoomLevelService } from '@hermes-ui/angular/addons/a11y';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { PropertyViewConfigProvider } from '../property-view-config-provider';\r\nimport {\r\n PropertyViewLinkModel,\r\n PropertyViewModelType,\r\n PropertyViewPropertyModel,\r\n PropertyViewPropertyValueComponentModel,\r\n PropertyViewPropertyValueModel,\r\n} from '../property-view.model';\r\n\r\n@Component({\r\n selector: '[appfx-property-view-property]',\r\n standalone: false,\r\n templateUrl: 'property-view-property.component.html',\r\n styleUrls: ['property-view-property.component.scss'],\r\n})\r\nexport class PropertyViewPropertyComponent implements OnInit, OnChanges, OnDestroy {\r\n readonly PropertyViewModelType = PropertyViewModelType;\r\n\r\n @Input() data: PropertyViewPropertyModel;\r\n\r\n propertyValueModelContent: PropertyViewPropertyValueModel[];\r\n\r\n propertyValueComponentModelContent: PropertyViewPropertyValueComponentModel<unknown>[];\r\n\r\n @HostBinding('class.zoom4x') is4xZoomed = false;\r\n\r\n private zoomLevelSubscription: Subscription | undefined;\r\n\r\n constructor(\r\n public propertyViewConfigProvider: PropertyViewConfigProvider,\r\n @Optional() private zoomLevelService?: ZoomLevelService\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n this.propertyValueModelContent = this.data?.content.filter(\r\n value => value.type === PropertyViewModelType.PropertyValue\r\n ) as PropertyViewPropertyValueModel[];\r\n\r\n this.propertyValueComponentModelContent = this.data?.content.filter(\r\n value => value.type === PropertyViewModelType.PropertyValueComponent\r\n ) as PropertyViewPropertyValueComponentModel<unknown>[];\r\n }\r\n }\r\n\r\n handleLinkClick(link: PropertyViewLinkModel): void {\r\n link.clickHandler();\r\n }\r\n\r\n getValueTrackingId(index: number) {\r\n return index;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.zoomLevelSubscription = this.zoomLevelService?.onChange.subscribe(\r\n (level: ZoomLevel) => (this.is4xZoomed = level === ZoomLevel.x4)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.zoomLevelSubscription?.unsubscribe();\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { PropertyViewStrings } from '../property-view-strings.service';\r\nimport { PropertyViewActionModel, PropertyViewModelType, PropertyViewSectionModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: '[appfx-property-view-section]',\r\n standalone: false,\r\n templateUrl: 'property-view-section.component.html',\r\n styleUrls: ['property-view-section.component.scss'],\r\n})\r\nexport class PropertyViewSectionComponent {\r\n readonly PropertyViewModelType = PropertyViewModelType;\r\n\r\n @Input() data: PropertyViewSectionModel;\r\n\r\n @Input() expanded: boolean;\r\n\r\n @Input() componentId: string;\r\n\r\n @Output() expandedChange: EventEmitter<boolean>;\r\n\r\n constructor(public propertyViewStrings: PropertyViewStrings) {\r\n this.expandedChange = new EventEmitter<boolean>();\r\n }\r\n\r\n toggleExpandedState(): void {\r\n this.expandedChange.emit(!this.expanded);\r\n }\r\n\r\n handleActionClick(action: PropertyViewActionModel): void {\r\n if (!action.isEnabled) {\r\n return;\r\n }\r\n\r\n action.clickHandler();\r\n }\r\n\r\n getContentTrackingId(index: number) {\r\n return index;\r\n }\r\n\r\n getSectionTitleToggleButtonAriaLabel() {\r\n return this.getFormattedLabel(this.propertyViewStrings.toggle);\r\n }\r\n\r\n /**\r\n * Returns unique formatted label if title is not null,\r\n * otherwise sets static label without any placeholder\r\n */\r\n private getFormattedLabel(label: string) {\r\n return label.replace('{0} ', this.data.title ? this.data.title + ' ' : '');\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Component, Input } from '@angular/core';\r\n\r\nimport { PropertyViewSectionsExpandedStateManager } from '../property-view-sections-expanded-state.manager';\r\nimport { PropertyViewStrings } from '../property-view-strings.service';\r\nimport { PropertyViewCategoryModel, PropertyViewModelType, PropertyViewSectionModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: 'appfx-property-view-category',\r\n standalone: false,\r\n templateUrl: 'property-view-category.component.html',\r\n styleUrls: ['property-view-category.component.scss'],\r\n})\r\nexport class PropertyViewCategoryComponent {\r\n readonly PropertyViewModelType = PropertyViewModelType;\r\n\r\n @Input() data: PropertyViewCategoryModel;\r\n\r\n @Input() componentId: string;\r\n\r\n constructor(\r\n private expandedStateManager: PropertyViewSectionsExpandedStateManager,\r\n private propertyViewStrings: PropertyViewStrings\r\n ) {}\r\n\r\n getSectionExpandedState(sectionId: string): boolean {\r\n return this.expandedStateManager.getSectionExpandedState(this.data.id, sectionId);\r\n }\r\n\r\n onSectionExpandedStateChange(sectionId: string, expandedUserState: boolean) {\r\n this.expandedStateManager.setSectionExpandedUserState(this.data.id, sectionId, expandedUserState);\r\n }\r\n\r\n getSectionTrackingId(index: number, data: PropertyViewSectionModel) {\r\n return data.id;\r\n }\r\n\r\n getSectionComponentId(section: PropertyViewSectionModel) {\r\n return `${this.componentId}-section-${section.id}-component`;\r\n }\r\n\r\n getSectionComponentAriaLabelId(section: PropertyViewSectionModel) {\r\n if (section.title) {\r\n return `${this.getSectionComponentId(section)}-aria-label`;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n getCategoryListItemsAreaLabel(): string | null {\r\n let propertiesCount = 0;\r\n this.data.content.forEach((section: PropertyViewSectionModel) => {\r\n propertiesCount += section.content.length;\r\n });\r\n return this.data.content.length > 1\r\n ? this.propertyViewStrings.categoryListItemsAreaLabel\r\n .replace('{0}', propertiesCount.toString())\r\n .replace('{1}', this.data.content.length.toString())\r\n : this.propertyViewStrings.categoryListItemAreaLabel.replace('{0}', propertiesCount.toString());\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Component, DoCheck, ElementRef, Input, QueryList, ViewChildren } from '@angular/core';\r\n\r\nimport { PropertyViewConfig } from '../property-view-config';\r\nimport { PropertyViewConfigProvider } from '../property-view-config-provider';\r\nimport { PropertyViewSectionsExpandedStateManager } from '../property-view-sections-expanded-state.manager';\r\nimport { PropertyViewCategoryModel, PropertyViewModel } from '../property-view.model';\r\n\r\n@Component({\r\n selector: 'appfx-property-view',\r\n standalone: false,\r\n templateUrl: 'property-view.component.html',\r\n styleUrls: ['property-view.component.scss'],\r\n providers: [PropertyViewConfigProvider, PropertyViewSectionsExpandedStateManager],\r\n})\r\nexport class PropertyViewComponent implements DoCheck {\r\n private static idCounter = 0;\r\n readonly basedId: string;\r\n selectedCategoryId: string | undefined;\r\n focusedCategoryId: string | undefined;\r\n\r\n @Input() data: PropertyViewModel | null | undefined;\r\n\r\n @ViewChildren('categoryTabButton') categoryTabButtonsList: QueryList<ElementRef>;\r\n\r\n constructor(\r\n private expandedStateManager: PropertyViewSectionsExpandedStateManager,\r\n private propertyViewConfigProvider: PropertyViewConfigProvider\r\n ) {\r\n this.basedId = 'appfx-property-view-' + PropertyViewComponent.idCounter++;\r\n }\r\n\r\n @Input()\r\n set config(value: PropertyViewConfig | undefined) {\r\n this.propertyViewConfigProvider.setConfig(value);\r\n }\r\n\r\n ngDoCheck(): void {\r\n this.expandedStateManager.update(this.data ? this.data.categories : []);\r\n this.validateAndUpdateSelectedCategory();\r\n this.validateAndUpdateFocusedCategory();\r\n }\r\n\r\n selectCategory(category: PropertyViewCategoryModel) {\r\n this.selectedCategoryId = category.id;\r\n this.focusedCategoryId = this.selectedCategoryId;\r\n }\r\n\r\n isCategorySelected(category: PropertyViewCategoryModel) {\r\n return category.id === this.selectedCategoryId;\r\n }\r\n\r\n isCategoryFocused(category: PropertyViewCategoryModel) {\r\n return category.id === this.focusedCategoryId;\r\n }\r\n\r\n getCategoryTabId(category: PropertyViewCategoryModel) {\r\n return `${this.basedId}-category-${category.id}-tab`;\r\n }\r\n\r\n getCategoryPanelId(category: PropertyViewCategoryModel) {\r\n return `${this.basedId}-category-${category.id}-panel`;\r\n }\r\n\r\n getCategoryComponentId(category: PropertyViewCategoryModel) {\r\n return `${this.basedId}-category-${category.id}-component`;\r\n }\r\n\r\n getCategoryTrackingId(index: number, data: PropertyViewCategoryModel) {\r\n return data.id;\r\n }\r\n\r\n onTabListKeydown(event: KeyboardEvent) {\r\n if (!this.data || this.data.categories.length === 0 || this.focusedCategoryId === undefined) {\r\n return;\r\n }\r\n\r\n const focusedCategoryIndex = this.data.categories.findIndex(category => category.id === this.focusedCategoryId);\r\n if (focusedCategoryIndex === -1) {\r\n return;\r\n }\r\n\r\n let newFocusedCategoryIndex = focusedCategoryIndex;\r\n if (event.key === 'ArrowLeft' || event.key === 'Left') {\r\n if (newFocusedCategoryIndex === 0) {\r\n newFocusedCategoryIndex = this.data.categories.length - 1;\r\n } else {\r\n newFocusedCategoryIndex--;\r\n }\r\n } else if (event.key === 'ArrowRight' || event.key === 'Right') {\r\n if (newFocusedCategoryIndex === this.data.categories.length - 1) {\r\n newFocusedCategoryIndex = 0;\r\n } else {\r\n newFocusedCategoryIndex++;\r\n }\r\n } else {\r\n // no action\r\n }\r\n this.focusedCategoryId = this.data.categories[newFocusedCategoryIndex].id;\r\n if (newFocusedCategoryIndex !== focusedCategoryIndex) {\r\n const categoryTabButtons = this.categoryTabButtonsList.toArray();\r\n const focusedCategoryTabButton: HTMLElement = categoryTabButtons[newFocusedCategoryIndex].nativeElement;\r\n focusedCategoryTabButton.focus();\r\n }\r\n }\r\n\r\n private validateAndUpdateSelectedCategory() {\r\n if (!this.data || this.data.categories.length === 0) {\r\n this.selectedCategoryId = undefined;\r\n return;\r\n }\r\n\r\n const isSelectedCategoryValid = this.data.categories.some(category => category.id === this.selectedCategoryId);\r\n if (!isSelectedCategoryValid) {\r\n this.selectedCategoryId = this.data.categories[0].id;\r\n }\r\n }\r\n\r\n private validateAndUpdateFocusedCategory() {\r\n if (!this.data || this.data.categories.length === 0) {\r\n this.focusedCategoryId = undefined;\r\n return;\r\n }\r\n\r\n const isFocusedCategoryValid = this.data.categories.some(category => category.id === this.focusedCategoryId);\r\n if (!isFocusedCategoryValid) {\r\n this.focusedCategoryId = this.selectedCategoryId;\r\n }\r\n }\r\n}\r\n","<!--\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","/*\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\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { PropertyViewBuilder } from './builders/property-view-builder';\r\n\r\n@Injectable()\r\nexport class PropertyViewService {\r\n createPropertyViewBuilder(): PropertyViewBuilder {\r\n return new PropertyViewBuilder();\r\n }\r\n}\r\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { angleIcon, HermesIcons } from '@hermes-ui/angular/icon';\nimport { HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';\n\nimport { PropertyViewCategoryComponent } from './components/property-view-category.component';\nimport { PropertyViewMessageComponent } from './components/property-view-message.component';\nimport { PropertyViewPropertyValueContainerComponent } from './components/property-view-property-value-container.component';\nimport { PropertyViewPropertyComponent } from './components/property-view-property.component';\nimport { PropertyViewSectionComponent } from './components/property-view-section.component';\nimport { PropertyViewComponent } from './components/property-view.component';\nimport { PropertyViewStrings } from './property-view-strings.service';\nimport { PropertyViewService } from './property-view.service';\n\nexport function pvStringsServiceFactory(existing: PropertyViewStrings) {\n return existing || new PropertyViewStrings();\n}\n\n@NgModule({\n imports: [HermesDropdownModule, CommonModule],\n declarations: [\n PropertyViewCategoryComponent,\n PropertyViewComponent,\n PropertyViewMessageComponent,\n PropertyViewPropertyComponent,\n PropertyViewPropertyValueContainerComponent,\n PropertyViewSectionComponent,\n ],\n providers: [\n PropertyViewService,\n {\n // This pattern allows the importer of this module to specify its own PropertyViewStrings.\n provide: PropertyViewStrings,\n useFactory: pvStringsServiceFactory,\n deps: [[new Optional(), new SkipSelf(), PropertyViewStrings]],\n },\n ],\n exports: [PropertyViewComponent],\n})\nexport class AppfxPropertyViewModule {\n constructor() {\n HermesIcons.addIcons(angleIcon);\n }\n}\n","/*\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\r\nexport { PropertyViewBuilder } from './builders/property-view-builder';\r\nexport { PropertyViewCategoryBuilder } from './builders/property-view-category-builder';\r\nexport { PropertyViewMessageBuilder } from './builders/property-view-message-builder';\r\nexport { PropertyViewPropertyBuilder } from './builders/property-view-property-builder';\r\nexport { PropertyViewPropertyKeyBuilder } from './builders/property-view-property-key-builder';\r\nexport { PropertyViewPropertyValueBuilder } from './builders/property-view-property-value-builder';\r\nexport { PropertyViewPropertyValueComponentBuilder } from './builders/property-view-property-value-component-builder';\r\nexport { PropertyViewSectionBuilder } from './builders/property-view-section-builder';\r\nexport { PropertyViewComponent } from './components/property-view.component';\r\nexport {\r\n PropertyViewActionModel,\r\n PropertyViewCategoryModel,\r\n PropertyViewLinkModel,\r\n PropertyViewMessageModel,\r\n PropertyViewModel,\r\n PropertyViewModelType,\r\n PropertyViewPropertyKeyModel,\r\n PropertyViewPropertyModel,\r\n PropertyViewPropertyValueComponent,\r\n PropertyViewPropertyValueComponentModel,\r\n PropertyViewPropertyValueModel,\r\n PropertyViewSectionModel,\r\n} from './property-view.model';\r\nexport { AppfxPropertyViewModule as PropertyViewModule } from './property-view.module';\r\nexport { AppfxPropertyViewModule } from './property-view.module';\r\nexport { PropertyViewService } from './property-view.service';\r\nexport { PropertyViewConfig } from './property-view-config';\r\nexport { PropertyViewStrings } from './property-view-strings.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.PropertyViewConfigProvider","i4.PropertyViewPropertyValueContainerComponent","i1.PropertyViewStrings","i2","i3","i5","i6.PropertyViewMessageComponent","i7.PropertyViewPropertyComponent","i1.PropertyViewSectionsExpandedStateManager","i2.PropertyViewStrings","i4.PropertyViewSectionComponent","i2.PropertyViewConfigProvider","i4.PropertyViewCategoryComponent"],"mappings":"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"}