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