@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 @@
|
|
|
1
|
+
{"version":3,"file":"hermes-ui-angular-forms-combobox.mjs","sources":["../../../forms/combobox/providers/combobox-container.service.ts","../../../forms/combobox/combobox-container.ts","../../../forms/combobox/model/combobox.model.ts","../../../forms/combobox/model/multi-select-combobox.model.ts","../../../forms/combobox/model/single-select-combobox.model.ts","../../../forms/combobox/option-selected.directive.ts","../../../forms/combobox/model/pseudo-focus.model.ts","../../../forms/combobox/providers/option-selection.service.ts","../../../forms/combobox/providers/combobox-focus-handler.service.ts","../../../forms/combobox/option.ts","../../../forms/combobox/options.ts","../../../forms/combobox/combobox.ts","../../../forms/combobox/combobox.html","../../../forms/combobox/option-items.directive.ts","../../../forms/combobox/option-group.ts","../../../forms/combobox/combobox.module.ts","../../../forms/combobox/index.ts","../../../forms/combobox/hermes-ui-angular-forms-combobox.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ComboboxContainerService {\r\n labelOffset = 0;\r\n labelText: string;\r\n}\r\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { AfterContentInit, AfterViewInit, Component, ElementRef, Optional, ViewChild } from '@angular/core';\nimport {\n HermesAbstractContainer,\n ControlClassService,\n ControlIdService,\n LayoutService,\n NgControlService,\n} from '@hermes-ui/angular/forms/common';\n\nimport { ComboboxContainerService } from './providers/combobox-container.service';\n@Component({\n selector: 'hermes-combobox-container',\n template: `\n <ng-content select=\"label\"></ng-content>\n @if (!label && addGrid()) {\n <label></label>\n }\n <div class=\"hermes-control-container\" [ngClass]=\"controlClass()\" #controlContainer>\n <ng-content select=\"hermes-combobox\"></ng-content>\n @if (showHelper) {\n <ng-content select=\"hermes-control-helper\"></ng-content>\n }\n @if (showInvalid) {\n <ng-content select=\"hermes-control-error\"></ng-content>\n }\n @if (showValid) {\n <ng-content select=\"hermes-control-success\"></ng-content>\n }\n </div>\n `,\n host: {\n '[class.hermes-form-control]': 'true',\n '[class.hermes-combobox-form-control]': 'true',\n '[class.hermes-form-control-disabled]': 'control?.disabled',\n '[class.hermes-row]': 'addGrid()',\n },\n providers: [NgControlService, ControlIdService, ControlClassService, ComboboxContainerService],\n standalone: false,\n})\nexport class HermesComboboxContainer extends HermesAbstractContainer implements AfterContentInit, AfterViewInit {\n @ViewChild('controlContainer') controlContainer: ElementRef<HTMLElement>;\n\n constructor(\n @Optional() layoutService: LayoutService,\n controlClassService: ControlClassService,\n ngControlService: NgControlService,\n private containerService: ComboboxContainerService,\n public el: ElementRef<HTMLElement>\n ) {\n super(layoutService, controlClassService, ngControlService);\n }\n\n ngAfterContentInit() {\n if (this.label) {\n this.containerService.labelText = this.label.labelText;\n }\n }\n\n ngAfterViewInit() {\n this.containerService.labelOffset =\n this.controlContainer.nativeElement.offsetHeight - this.el.nativeElement.offsetHeight;\n }\n}\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport type HermesComboboxIdentityFunction<T> = (item: T) => any;\r\n\r\nexport type HermesComboboxResolverFunction<T> = (input: string) => T;\r\n\r\nexport abstract class ComboboxModel<T> {\r\n model: T | T[];\r\n displayField?: string;\r\n identityFn: HermesComboboxIdentityFunction<T> = (item: T) => item;\r\n abstract containsItem(item: T): boolean;\r\n abstract select(item: T): void;\r\n abstract unselect(item: T): void;\r\n abstract toString(displayField?: string, index?: number): string;\r\n abstract isEmpty(): boolean;\r\n abstract pop(): T; // pops the last item\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { ComboboxModel } from './combobox.model';\r\n\r\nexport class MultiSelectComboboxModel<T> extends ComboboxModel<T> {\r\n override model: T[];\r\n override displayField: string;\r\n\r\n containsItem(item: T): boolean {\r\n if (this.model === null || this.model === undefined) {\r\n return false;\r\n }\r\n return this.model.some(m => this.identityFn(m) === this.identityFn(item));\r\n }\r\n\r\n select(item: T): void {\r\n this.addItem(item);\r\n }\r\n\r\n unselect(item: T): void {\r\n this.removeItem(item);\r\n }\r\n\r\n isEmpty(): boolean {\r\n return !(this.model && this.model.length > 0);\r\n }\r\n\r\n pop(): T {\r\n let item;\r\n if (this.model && this.model.length > 0) {\r\n item = this.model[this.model.length - 1];\r\n this.removeItem(item);\r\n }\r\n return item;\r\n }\r\n\r\n toString(displayField?: string, index = -1): string {\r\n let displayString = '';\r\n\r\n if (this.model) {\r\n // If the model is array, we can use a specific item from it, to retrieve the display value.\r\n if (index > -1) {\r\n if (this.model[index]) {\r\n // If we have a defined display field, we'll use it's value as display value\r\n if (displayField && (this.model[index] as any)[displayField]) {\r\n displayString += (this.model[index] as any)[displayField];\r\n } else {\r\n // If we don't have a defined display field, we'll use the toString representation of the\r\n // item as display value.\r\n displayString += this.model[index].toString();\r\n }\r\n }\r\n } else {\r\n this.model.forEach((model: T) => {\r\n // If we have a defined display field, we'll use it's value as display value\r\n if (displayField && (model as any)[displayField]) {\r\n displayString += (model as any)[displayField];\r\n } else {\r\n // If we don't have a defined display field, we'll use the toString representation of the\r\n // model as display value.\r\n displayString += model.toString();\r\n }\r\n displayString += ' ';\r\n });\r\n }\r\n }\r\n\r\n return displayString.trim();\r\n }\r\n\r\n private addItem(item: T) {\r\n if (!this.containsItem(item)) {\r\n this.model = this.model || [];\r\n this.model.push(item);\r\n }\r\n }\r\n\r\n private removeItem(item: T) {\r\n if (this.model === null || this.model === undefined) {\r\n return;\r\n }\r\n\r\n const index = this.model.findIndex(m => this.identityFn(m) === this.identityFn(item));\r\n\r\n if (index > -1) {\r\n this.model.splice(index, 1);\r\n }\r\n\r\n // we intentionally set the model to null for form validation\r\n if (this.model.length === 0) {\r\n this.model = null;\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { ComboboxModel } from './combobox.model';\r\n\r\nexport class SingleSelectComboboxModel<T> extends ComboboxModel<T> {\r\n override model: T;\r\n\r\n containsItem(item: T): boolean {\r\n if (this.model === null || this.model === undefined) {\r\n return false;\r\n }\r\n return this.identityFn(this.model) === this.identityFn(item);\r\n }\r\n\r\n select(item: T): void {\r\n this.model = item;\r\n }\r\n\r\n unselect(item: T): void {\r\n if (this.containsItem(item)) {\r\n this.model = null;\r\n }\r\n }\r\n\r\n isEmpty(): boolean {\r\n return !this.model;\r\n }\r\n\r\n pop(): T {\r\n const item = this.model;\r\n this.model = null;\r\n return item;\r\n }\r\n\r\n toString(displayField?: string): string {\r\n if (!this.model) {\r\n return '';\r\n }\r\n if (displayField && (this.model as any)[displayField]) {\r\n return (this.model as any)[displayField];\r\n } else {\r\n return this.model.toString();\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[hermesOptionSelected]',\r\n standalone: false,\r\n})\r\nexport class HermesOptionSelected<T> {\r\n @Input('hermesOptionSelected') selected: T;\r\n\r\n constructor(public template: TemplateRef<{ $implicit: T }>) {}\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { SingleSelectComboboxModel } from './single-select-combobox.model';\r\n\r\nexport class PseudoFocusModel<T> extends SingleSelectComboboxModel<T> {\r\n private _focusChanged = new BehaviorSubject<T>(null);\r\n get focusChanged(): Observable<T> {\r\n return this._focusChanged.asObservable();\r\n }\r\n\r\n override select(item: T): void {\r\n if (this.model !== item) {\r\n this.model = item;\r\n this._focusChanged.next(item);\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';\r\n\r\nimport { HermesComboboxIdentityFunction, HermesComboboxResolverFunction, ComboboxModel } from '../model/combobox.model';\r\nimport { MultiSelectComboboxModel } from '../model/multi-select-combobox.model';\r\n\r\n@Injectable()\r\nexport class OptionSelectionService<T> {\r\n loading = false;\r\n editable = false;\r\n showSelectAll = false;\r\n selectionModel: ComboboxModel<T>;\r\n inputChanged: Observable<string>;\r\n // Display all options on first open, even if filter text exists.\r\n // https://github.com/vmware-clarity/ng-clarity/issues/386\r\n showAllOptions = true;\r\n\r\n private _currentInput = '';\r\n private _displayField: string;\r\n private _inputChanged = new BehaviorSubject('');\r\n private _selectionChanged = new ReplaySubject<ComboboxModel<T>>(1);\r\n private _selectAllRequested = new Subject<void>();\r\n\r\n constructor() {\r\n this.inputChanged = this._inputChanged.asObservable();\r\n }\r\n\r\n get displayField() {\r\n return this._displayField;\r\n }\r\n set displayField(value: string) {\r\n this._displayField = value;\r\n if (this.selectionModel) {\r\n this.selectionModel.displayField = value;\r\n }\r\n }\r\n\r\n get currentInput(): string {\r\n return this._currentInput;\r\n }\r\n set currentInput(input) {\r\n // clear value in single selection model when input is empty\r\n if (input === '' && !this.multiselectable) {\r\n this.setSelectionValue(null);\r\n }\r\n this._currentInput = input;\r\n this._inputChanged.next(input);\r\n }\r\n\r\n // This observable is for notifying the HermesOption to update its\r\n // selection by comparing the value\r\n get selectionChanged(): Observable<ComboboxModel<T>> {\r\n return this._selectionChanged.asObservable();\r\n }\r\n\r\n get multiselectable(): boolean {\r\n return this.selectionModel instanceof MultiSelectComboboxModel;\r\n }\r\n\r\n get identityFn(): HermesComboboxIdentityFunction<T> {\r\n return this._identityFn;\r\n }\r\n\r\n set identityFn(value: HermesComboboxIdentityFunction<T>) {\r\n this._identityFn = value || ((item: T) => item);\r\n if (this.selectionModel) {\r\n this.selectionModel.identityFn = this._identityFn;\r\n }\r\n }\r\n\r\n get selectAllRequested(): Observable<void> {\r\n return this._selectAllRequested.asObservable();\r\n }\r\n\r\n requestSelectAll() {\r\n this._selectAllRequested.next();\r\n }\r\n\r\n editableResolver: HermesComboboxResolverFunction<T> = (input: string) => input as T;\r\n\r\n select(item: T) {\r\n if (item === null || item === undefined || this.selectionModel.containsItem(item)) {\r\n return;\r\n }\r\n this.selectionModel.select(item);\r\n this._selectionChanged.next(this.selectionModel);\r\n }\r\n\r\n toggle(item: T) {\r\n if (item === null || item === undefined) {\r\n return;\r\n }\r\n if (this.selectionModel.containsItem(item)) {\r\n this.selectionModel.unselect(item);\r\n } else {\r\n this.selectionModel.select(item);\r\n }\r\n this._selectionChanged.next(this.selectionModel);\r\n }\r\n\r\n selectMany(items: T[]) {\r\n let changed = false;\r\n for (const item of items) {\r\n if (!this.selectionModel.containsItem(item)) {\r\n this.selectionModel.select(item);\r\n changed = true;\r\n }\r\n }\r\n if (changed) {\r\n this._selectionChanged.next(this.selectionModel);\r\n }\r\n }\r\n\r\n unselectMany(items: T[]) {\r\n if (!this.selectionModel || this.selectionModel.isEmpty()) {\r\n return;\r\n }\r\n\r\n let changed = false;\r\n for (const item of items) {\r\n if (this.selectionModel.containsItem(item)) {\r\n this.selectionModel.unselect(item);\r\n changed = true;\r\n }\r\n }\r\n\r\n if (changed) {\r\n this._selectionChanged.next(this.selectionModel);\r\n }\r\n }\r\n\r\n unselect(item: T) {\r\n if (item === null || item === undefined || !this.selectionModel.containsItem(item)) {\r\n return;\r\n }\r\n this.selectionModel.unselect(item);\r\n this._selectionChanged.next(this.selectionModel);\r\n }\r\n\r\n /**\r\n * Checks whether all given items are currently selected, using identityFn for comparison.\r\n */\r\n containsAll(items: T[]): boolean {\r\n if (!items.length || this.selectionModel.isEmpty()) {\r\n return false;\r\n }\r\n return items.every(item => this.selectionModel.containsItem(item));\r\n }\r\n\r\n setSelectionValue(value: T | T[]): void {\r\n if (!this.selectionModel) {\r\n return;\r\n }\r\n\r\n const current = this.selectionModel.model;\r\n if (this.valuesEqualByIdentity(current, value)) {\r\n return;\r\n }\r\n\r\n this.selectionModel.model = value;\r\n this._selectionChanged.next(this.selectionModel);\r\n }\r\n\r\n private _identityFn: HermesComboboxIdentityFunction<T> = (item: T) => item;\r\n\r\n private valuesEqualByIdentity(current: T | T[], value: T | T[]): boolean {\r\n if (current === value) {\r\n return true;\r\n }\r\n // Check if both are null or undefined or empty string.\r\n if (\r\n (current === null || current === undefined || current === '') &&\r\n (value === null || value === undefined || value === '')\r\n ) {\r\n return true;\r\n }\r\n // Check if one is null or undefined or empty string and the other is not.\r\n if (\r\n current === null ||\r\n current === undefined ||\r\n current === '' ||\r\n value === null ||\r\n value === undefined ||\r\n value === ''\r\n ) {\r\n return false;\r\n }\r\n\r\n if (this.multiselectable) {\r\n const cur = current as T[];\r\n const val = value as T[];\r\n if (cur.length !== val.length) {\r\n return false;\r\n }\r\n // We only consider values equal if they are ordered the same way.\r\n const curIds = cur.map(this._identityFn);\r\n const valIds = val.map(this._identityFn);\r\n return curIds.every((id, i) => id === valIds[i]);\r\n } else {\r\n return this._identityFn(current as T) === this._identityFn(value as T);\r\n }\r\n }\r\n}\r\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID, Renderer2, RendererFactory2 } from '@angular/core';\nimport { HermesPopoverService } from '@hermes-ui/angular/popover/common';\nimport { ArrowKeyDirection, customFocusableItemProvider, Keys } from '@hermes-ui/angular/utils';\nimport { take } from 'rxjs/operators';\n\nimport { OptionSelectionService } from './option-selection.service';\nimport { PseudoFocusModel } from '../model/pseudo-focus.model';\nimport { SELECT_ALL_ID } from '../options';\n\n@Injectable()\nexport class ComboboxFocusHandler<T> {\n pseudoFocus: PseudoFocusModel<OptionData<T>> = new PseudoFocusModel<OptionData<T>>();\n\n private renderer: Renderer2;\n private _trigger: HTMLElement;\n private _listbox: HTMLElement;\n private _textInput: HTMLElement;\n private optionData: OptionData<T>[] = [];\n\n constructor(\n rendererFactory: RendererFactory2,\n private popoverService: HermesPopoverService,\n private selectionService: OptionSelectionService<T>,\n @Inject(PLATFORM_ID) private platformId: any\n ) {\n this.handleFocusSubscription();\n // Direct renderer injection can be problematic and leads to failing tests at least\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n get trigger() {\n return this._trigger;\n }\n set trigger(el: HTMLElement) {\n this._trigger = el;\n this.addFocusOnBlurListener(el);\n }\n\n get listbox() {\n return this._listbox;\n }\n set listbox(el: HTMLElement) {\n this._listbox = el;\n this.addFocusOnBlurListener(el);\n }\n\n get textInput() {\n return this._textInput;\n }\n set textInput(el: HTMLElement) {\n this._textInput = el;\n this.renderer.listen(el, 'keydown', event => !this.handleTextInput(event));\n this.addFocusOnBlurListener(el);\n }\n\n focusInput() {\n if (this.textInput && isPlatformBrowser(this.platformId)) {\n this.textInput.focus({ preventScroll: true });\n }\n }\n\n focusFirstActive() {\n if (this.optionData.length > 0) {\n if (this.selectionService.selectionModel.isEmpty()) {\n this.pseudoFocus.select(this.optionData[0]);\n } else {\n let firstActive: T;\n if (this.selectionService.multiselectable) {\n firstActive = (this.selectionService.selectionModel.model as T[])[0];\n } else {\n firstActive = this.selectionService.selectionModel.model as T;\n }\n const activeProxy = this.optionData.find(option => option.value === firstActive);\n if (activeProxy) {\n // active element is visible\n this.pseudoFocus.select(activeProxy);\n } else {\n // we have active element, but it's filtered out\n this.pseudoFocus.select(this.optionData[0]);\n }\n this.scrollIntoSelectedModel('auto');\n }\n }\n }\n\n addOptionValues(options: OptionData<T>[]) {\n this.optionData = options;\n }\n\n focusOption(option: OptionData<T>) {\n this.pseudoFocus.select(option);\n }\n\n private handleFocusSubscription() {\n this.popoverService.openChange.subscribe(open => {\n if (!open) {\n this.pseudoFocus.model = null;\n }\n });\n }\n\n private moveFocusTo(direction: ArrowKeyDirection) {\n let index = this.optionData.findIndex(option => option.equals(this.pseudoFocus.model));\n if (direction === ArrowKeyDirection.UP) {\n if (index === -1 || index === 0) {\n index = this.optionData.length - 1;\n } else {\n index--;\n }\n } else if (direction === ArrowKeyDirection.DOWN) {\n if (index === -1 || index === this.optionData.length - 1) {\n index = 0;\n } else {\n index++;\n }\n }\n this.pseudoFocus.select(this.optionData[index]);\n this.scrollIntoSelectedModel();\n }\n\n private openAndMoveTo(direction: ArrowKeyDirection) {\n if (!this.popoverService.open) {\n this.popoverService.openChange.pipe(take(1)).subscribe(open => {\n if (open) {\n this.moveFocusTo(direction);\n }\n });\n this.popoverService.open = true;\n } else {\n this.moveFocusTo(direction);\n }\n }\n\n // this service is only interested in keys that may move the focus\n private handleTextInput(event: KeyboardEvent): boolean {\n let preventDefault = false;\n const key = event.key;\n if (event) {\n switch (key) {\n case Keys.Enter:\n if (this.popoverService.open && this.pseudoFocus.model) {\n if (this.selectionService.multiselectable) {\n if (this.pseudoFocus.model.id === SELECT_ALL_ID) {\n this.selectionService.requestSelectAll();\n } else {\n this.selectionService.toggle(this.pseudoFocus.model.value);\n }\n } else {\n this.selectionService.select(this.pseudoFocus.model.value);\n }\n preventDefault = true;\n }\n break;\n case Keys.Space:\n if (!this.popoverService.open) {\n this.popoverService.open = true;\n preventDefault = true;\n }\n break;\n case Keys.ArrowUp:\n this.preventViewportScrolling(event);\n this.openAndMoveTo(ArrowKeyDirection.UP);\n preventDefault = true;\n break;\n case Keys.ArrowDown:\n this.preventViewportScrolling(event);\n this.openAndMoveTo(ArrowKeyDirection.DOWN);\n preventDefault = true;\n break;\n default:\n // Any other keypress\n if (\n event.key !== Keys.Tab &&\n !(this.selectionService.multiselectable && event.key === Keys.Backspace) &&\n !(event.key === Keys.Escape) &&\n !this.popoverService.open\n ) {\n this.popoverService.open = true;\n }\n break;\n }\n }\n return preventDefault;\n }\n\n private scrollIntoSelectedModel(behavior: ScrollBehavior = 'smooth') {\n if (this.pseudoFocus.model && this.pseudoFocus.model.el) {\n this.pseudoFocus.model.el.scrollIntoView({ behavior, block: 'center', inline: 'nearest' });\n }\n }\n\n private preventViewportScrolling(event: KeyboardEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private addFocusOnBlurListener(el: HTMLElement) {\n if (isPlatformBrowser(this.platformId)) {\n this.renderer.listen(el, 'blur', event => {\n if (this.focusOutOfComponent(event)) {\n this.popoverService.open = false;\n }\n });\n }\n }\n\n private focusOutOfComponent(event: FocusEvent): boolean {\n const target = event.relatedTarget as Node;\n return !(this.textInput.contains(target) || this.trigger.contains(target) || this.listbox.contains(target));\n }\n}\n\nexport const COMBOBOX_FOCUS_HANDLER_PROVIDER = customFocusableItemProvider(ComboboxFocusHandler);\n\nexport class OptionData<T> {\n el: HTMLElement;\n\n constructor(\n public id: string,\n public value: T\n ) {}\n\n equals(other: OptionData<T>): boolean {\n if (!other) {\n return false;\n }\n return this.id === other.id && this.value === other.value;\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ElementRef, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { HermesCommonStringsService, uniqueIdFactory } from '@hermes-ui/angular/utils';\n\nimport { ComboboxFocusHandler, OptionData as OptionProxy } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n@Component({\n selector: 'hermes-option',\n template: `\n <ng-content></ng-content>\n @if (selected) {\n <span class=\"hermes-sr-only\">{{ commonStrings.keys.comboboxSelected }}</span>\n }\n `,\n host: {\n '[class.hermes-combobox-option]': 'true',\n '[attr.role]': '\"option\"',\n // Do not remove. Or click-selection will not work.\n '[attr.tabindex]': '-1',\n '[attr.id]': 'optionId',\n },\n standalone: false,\n})\nexport class HermesOption<T> implements OnInit {\n // A proxy with only the necessary data to be used for a11y and the focus handler service.\n optionProxy: OptionProxy<T> = new OptionProxy(null, null);\n\n private _id: string;\n private _value: T;\n\n constructor(\n public elRef: ElementRef<HTMLElement>,\n public commonStrings: HermesCommonStringsService,\n private focusHandler: ComboboxFocusHandler<T>,\n private optionSelectionService: OptionSelectionService<T>\n ) {\n this.optionProxy.el = elRef.nativeElement;\n }\n\n @Input('id')\n get optionId() {\n return this._id;\n }\n set optionId(id: string) {\n this._id = id;\n this.optionProxy.id = this._id;\n }\n\n @Input('hermesValue')\n get value(): T {\n return this._value;\n }\n set value(value: T) {\n this._value = value;\n this.optionProxy.value = value;\n }\n\n @HostBinding('class.active')\n get selected() {\n return (\n this.optionSelectionService.selectionModel && this.optionSelectionService.selectionModel.containsItem(this.value)\n );\n }\n\n @HostBinding('class.hermes-focus')\n get focusClass() {\n return this.focusHandler.pseudoFocus.containsItem(this.optionProxy);\n }\n\n ngOnInit() {\n if (!this._id) {\n this._id = 'hermes-option-' + uniqueIdFactory();\n this.optionProxy.id = this._id;\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.optionSelectionService.multiselectable) {\n this.optionSelectionService.toggle(this.value);\n } else {\n this.optionSelectionService.select(this.value);\n }\n // As the popover stays open in multi-select mode now, we have to take focus back to the input\n // This way we achieve two things:\n // - do not lose focus\n // - we're still able to use onBlur for \"outside-click\" handling\n this.focusHandler.focusOption(this.optionProxy);\n this.focusHandler.focusInput();\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n DOCUMENT,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { HermesPopoverService, POPOVER_HOST_ORIGIN } from '@hermes-ui/angular/popover/common';\nimport { HermesCommonStringsService, HermesLoadingState, IF_ACTIVE_ID, LoadingListener } from '@hermes-ui/angular/utils';\nimport { Subscription } from 'rxjs';\n\nimport { HermesOption } from './option';\nimport { ComboboxFocusHandler, OptionData } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\nlet nbOptionsComponents = 0;\n\nexport const SELECT_ALL_ID = 'select-all-id';\n\n@Component({\n selector: 'hermes-options',\n template: `\n @if (optionSelectionService.loading) {\n <div class=\"hermes-combobox-options-loading\">\n <hermes-spinner hermesInline>\n {{ commonStrings.keys.loading }}\n </hermes-spinner>\n <span class=\"hermes-combobox-options-text\">\n {{ searchText(optionSelectionService.currentInput) }}\n </span>\n </div>\n }\n\n @if (showSelectAll) {\n <div class=\"hermes-combobox-select-all\">\n <button\n #selectAllBtn\n type=\"button\"\n tabindex=\"-1\"\n class=\"btn btn-link hermes-combobox-select-all-btn hermes-combobox-option\"\n [class.hermes-focus]=\"isSelectAllFocused\"\n (click)=\"toggleSelectAll($event)\"\n >\n {{ allVisibleSelected ? commonStrings.keys.comboboxUnselectAll : commonStrings.keys.comboboxSelectAll }}\n </button>\n </div>\n }\n\n <!-- Rendered if data set is empty -->\n @if (emptyOptions) {\n <div [id]=\"noResultsElementId\" role=\"option\">\n <span class=\"hermes-combobox-options-empty-text\">\n {{ commonStrings.keys.comboboxNoResults }}\n </span>\n </div>\n }\n\n <!--Option Groups and Options will be projected here-->\n <ng-content></ng-content>\n `,\n providers: [{ provide: LoadingListener, useExisting: HermesOptions }],\n host: {\n '[class.hermes-combobox-options]': 'true',\n '[class.hermes-combobox-options-multi]': 'optionSelectionService.multiselectable',\n '[class.hermes-combobox-options-hidden]': 'emptyOptions && editable',\n '[attr.role]': '\"listbox\"',\n '[id]': 'optionsId',\n },\n standalone: false,\n})\nexport class HermesOptions<T> implements AfterViewInit, LoadingListener, OnDestroy {\n @Input('id') optionsId: string;\n\n loading = false;\n _items: QueryList<HermesOption<T>>;\n\n private subscriptions: Subscription[] = [];\n private _selectAllOption: OptionData<T>;\n\n constructor(\n public optionSelectionService: OptionSelectionService<T>,\n @Inject(IF_ACTIVE_ID) public id: number,\n public el: ElementRef<HTMLElement>,\n public commonStrings: HermesCommonStringsService,\n private focusHandler: ComboboxFocusHandler<T>,\n private popoverService: HermesPopoverService,\n @Optional()\n @Inject(POPOVER_HOST_ORIGIN)\n parentHost: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private document: any\n ) {\n if (!parentHost) {\n throw new Error('hermes-options should only be used inside of a hermes-combobox');\n }\n\n if (!this.optionsId) {\n this.optionsId = 'hermes-options-' + nbOptionsComponents++;\n }\n }\n\n @ViewChild('selectAllBtn')\n set selectAllBtn(value: ElementRef) {\n if (value) {\n this._selectAllOption = new OptionData<T>(SELECT_ALL_ID, null);\n this._selectAllOption.el = value.nativeElement;\n } else {\n this._selectAllOption = null;\n }\n this.updateFocusableItems();\n }\n\n @ContentChildren(HermesOption, { descendants: true })\n get items(): QueryList<HermesOption<T>> {\n return this._items;\n }\n set items(items: QueryList<HermesOption<T>>) {\n this._items = items;\n this.updateFocusableItems();\n }\n\n /**\n * Tests if the list of options is empty, meaning it doesn't contain any items\n */\n get emptyOptions() {\n return !this.optionSelectionService.loading && this.items.length === 0;\n }\n\n get editable() {\n return this.optionSelectionService.editable;\n }\n\n get noResultsElementId() {\n return `${this.optionsId}-no-results`;\n }\n\n get showSelectAll(): boolean {\n return (\n this.optionSelectionService.showSelectAll &&\n this.optionSelectionService.multiselectable &&\n !this.optionSelectionService.loading &&\n this.items.length > 0\n );\n }\n\n get allVisibleSelected(): boolean {\n if (!this.items || this.items.length === 0) {\n return false;\n }\n return this.optionSelectionService.containsAll(this.items.map(option => option.value));\n }\n\n get isSelectAllFocused() {\n return this.focusHandler.pseudoFocus.model?.id === SELECT_ALL_ID;\n }\n\n toggleSelectAll(event: Event = null) {\n if (event) {\n event.stopPropagation();\n this.focusHandler.focusInput();\n }\n const visibleValues = this.items.map(option => option.value);\n\n if (this.allVisibleSelected) {\n this.optionSelectionService.unselectMany(visibleValues);\n } else {\n this.optionSelectionService.selectMany(visibleValues);\n }\n }\n\n ngAfterViewInit() {\n this.focusHandler.listbox = this.el.nativeElement;\n\n this.subscriptions.push(\n this.items.changes.subscribe(items => {\n if (items.length) {\n setTimeout(() => {\n this.focusHandler.focusFirstActive();\n });\n } else {\n this.focusHandler.pseudoFocus.pop();\n }\n }),\n this.optionSelectionService.selectAllRequested.subscribe(() => {\n this.toggleSelectAll();\n })\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n searchText(input: string) {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxSearching, { INPUT: input });\n }\n\n loadingStateChange(state: HermesLoadingState): void {\n this.loading = state === HermesLoadingState.LOADING;\n }\n\n private updateFocusableItems() {\n const focusList: OptionData<T>[] = [];\n\n if (this._selectAllOption) {\n focusList.push(this._selectAllOption);\n }\n\n if (this._items) {\n const itemOptions = this._items.map(option => option.optionProxy);\n focusList.push(...itemOptions);\n }\n\n this.focusHandler.addOptionValues(focusList);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Host,\n HostListener,\n Inject,\n Injector,\n Input,\n NgZone,\n Optional,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n Self,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { WrappedFormControl } from '@hermes-ui/angular/forms/common';\nimport {\n HermesPopoverHostDirective,\n HermesPopoverPosition,\n HermesPopoverService,\n HermesPopoverType,\n} from '@hermes-ui/angular/popover/common';\nimport {\n HermesCommonStringsService,\n HermesLoadingState,\n FOCUS_SERVICE_PROVIDER,\n IF_ACTIVE_ID_PROVIDER,\n Keys,\n LoadingListener,\n} from '@hermes-ui/angular/utils';\nimport { debounceTime, Subject } from 'rxjs';\n\nimport { HermesComboboxContainer } from './combobox-container';\nimport { HermesComboboxIdentityFunction, HermesComboboxResolverFunction, ComboboxModel } from './model/combobox.model';\nimport { MultiSelectComboboxModel } from './model/multi-select-combobox.model';\nimport { SingleSelectComboboxModel } from './model/single-select-combobox.model';\nimport { HermesOptionSelected } from './option-selected.directive';\nimport { HermesOptions } from './options';\nimport { ComboboxContainerService } from './providers/combobox-container.service';\nimport { COMBOBOX_FOCUS_HANDLER_PROVIDER, ComboboxFocusHandler } from './providers/combobox-focus-handler.service';\nimport { OptionSelectionService } from './providers/option-selection.service';\n\n@Component({\n selector: 'hermes-combobox',\n templateUrl: './combobox.html',\n providers: [\n OptionSelectionService,\n { provide: LoadingListener, useExisting: HermesCombobox },\n IF_ACTIVE_ID_PROVIDER,\n FOCUS_SERVICE_PROVIDER,\n COMBOBOX_FOCUS_HANDLER_PROVIDER,\n ],\n hostDirectives: [HermesPopoverHostDirective],\n host: {\n '[class.aria-required]': 'true',\n '[class.hermes-combobox]': 'true',\n '[class.hermes-combobox-disabled]': 'control?.disabled',\n },\n standalone: false,\n})\nexport class HermesCombobox<T>\n extends WrappedFormControl<HermesComboboxContainer>\n implements ControlValueAccessor, LoadingListener, AfterContentInit\n{\n @Input('placeholder') placeholder = '';\n\n @Output('hermesInputChange') hermesInputChange = new EventEmitter<string>(false);\n @Output('hermesOpenChange') hermesOpenChange = this.popoverService.openChange;\n\n /**\n * This output should be used to set up a live region using aria-live and populate it with updates that reflect each combobox change.\n */\n @Output('hermesSelectionChange') hermesSelectionChange = this.optionSelectionService.selectionChanged;\n\n @ViewChild('textboxInput') textbox: ElementRef<HTMLInputElement>;\n @ViewChild('trigger') trigger: ElementRef<HTMLButtonElement>;\n @ContentChild(HermesOptionSelected) optionSelected: HermesOptionSelected<T>;\n\n @ViewChild('truncationButton') truncationButton: ElementRef;\n @ViewChild('wrapper', { static: true }) wrapper: ElementRef;\n @ViewChildren('pill') calculationPills: QueryList<ElementRef<HTMLElement>>;\n\n focused = false;\n\n popoverPosition = HermesPopoverPosition.BOTTOM_LEFT;\n\n protected override index = 1;\n\n protected popoverType = HermesPopoverType.DROPDOWN;\n\n protected containerWidth = null;\n protected selectionExpanded = false;\n protected calculatedLimit: number | undefined;\n protected shouldCalculate = true;\n protected isTotalSelection = false;\n\n private resizeObserver: ResizeObserver;\n private containerWidthChange = new Subject();\n @ContentChild(HermesOptions) private options: HermesOptions<T>;\n\n private _searchText = '';\n private onTouchedCallback: () => any;\n private onChangeCallback: (model: T | T[]) => any;\n\n constructor(\n vcr: ViewContainerRef,\n injector: Injector,\n @Self()\n @Optional()\n public control: NgControl,\n protected override renderer: Renderer2,\n protected override el: ElementRef<HTMLElement>,\n public optionSelectionService: OptionSelectionService<T>,\n public commonStrings: HermesCommonStringsService,\n private popoverService: HermesPopoverService,\n @Optional() private containerService: ComboboxContainerService,\n @Inject(PLATFORM_ID) private platformId: any,\n private focusHandler: ComboboxFocusHandler<T>,\n private cdr: ChangeDetectorRef,\n private zone: NgZone,\n @Optional() @Host() private container: HermesComboboxContainer\n ) {\n super(vcr, HermesComboboxContainer, injector, control, renderer, el);\n if (control) {\n control.valueAccessor = this;\n }\n\n // default to SingleSelectComboboxModel, in case the optional input [HermesMulti] isn't used\n this.multiSelect = false;\n }\n\n @Input({ alias: 'showSelectAll', transform: booleanAttribute })\n get showSelectAll() {\n return this.optionSelectionService.showSelectAll;\n }\n set showSelectAll(value: boolean) {\n this.optionSelectionService.showSelectAll = value;\n }\n\n @Input('hermesEditable')\n get editable() {\n return this.optionSelectionService.editable;\n }\n set editable(value: boolean) {\n this.optionSelectionService.editable = value;\n }\n\n @Input('hermesEditableResolverFn')\n set editableResolver(value: HermesComboboxResolverFunction<T> | undefined) {\n this.optionSelectionService.editableResolver = value;\n }\n\n @Input('hermesComboboxIdentityFn')\n set identityFn(value: HermesComboboxIdentityFunction<T>) {\n this.optionSelectionService.identityFn = value;\n }\n\n @Input('hermesMulti')\n get multiSelect() {\n return this.optionSelectionService.multiselectable;\n }\n set multiSelect(value: boolean | string) {\n if (value) {\n this.optionSelectionService.selectionModel = new MultiSelectComboboxModel<T>();\n } else {\n // in theory, setting this again should not cause errors even though we already set it in constructor,\n // since the initial call to writeValue (caused by [ngModel] input) should happen after this\n this.optionSelectionService.selectionModel = new SingleSelectComboboxModel<T>();\n }\n this.optionSelectionService.selectionModel.identityFn = this.optionSelectionService.identityFn;\n this.updateControlValue();\n }\n\n // Override the id of WrappedFormControl, as we want to move it to the embedded input.\n // Otherwise, the label/component connection does not work and screen readers do not read the label.\n override get id() {\n return this.controlIdService.id + '-combobox';\n }\n override set id(id: string) {\n super.id = id;\n }\n\n get searchText(): string {\n return this._searchText;\n }\n set searchText(text: string) {\n // if input text has changed since last time, fire a change event so application can react to it\n if (text !== this._searchText) {\n if (this.popoverService.open) {\n this.optionSelectionService.showAllOptions = false;\n }\n this._searchText = text;\n this.hermesInputChange.emit(this.searchText);\n }\n // We need to trigger this even if unchanged, so the option-items directive will update its list\n // based on the \"showAllOptions\" variable which may have changed in the openChange subscription below.\n // The option-items directive does not listen to openChange, but it listens to currentInput changes.\n this.optionSelectionService.currentInput = this.searchText;\n }\n\n get openState(): boolean {\n return this.popoverService.open;\n }\n\n get multiSelectModel(): T[] {\n if (!this.multiSelect) {\n throw Error('multiSelectModel is not available in single selection context');\n }\n return (this.optionSelectionService.selectionModel as MultiSelectComboboxModel<T>).model;\n }\n\n get ariaControls(): string {\n return this.options?.optionsId;\n }\n\n get ariaOwns(): string {\n return this.options?.optionsId;\n }\n\n get ariaDescribedBySelection(): string {\n return 'selection-' + this.id;\n }\n\n get displayField(): string {\n return this.optionSelectionService.displayField;\n }\n\n get showAllText() {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxShowAll, {\n ITEMS: this.multiSelectModel?.length.toString(),\n });\n }\n\n get allSelectedText() {\n return this.commonStrings.parse(this.commonStrings.keys.comboboxAllSelected, {\n ITEMS: this.multiSelectModel?.length.toString(),\n });\n }\n\n get showIndividualPills(): boolean {\n return !this.isTotalSelection || this.selectionExpanded;\n }\n\n get showTruncationToggle(): boolean {\n return (\n this.selectionExpanded ||\n this.isTotalSelection ||\n (this.calculatedLimit !== null && this.calculatedLimit < this.multiSelectModel.length)\n );\n }\n\n private get disabled() {\n return this.control?.disabled;\n }\n\n ngAfterContentInit() {\n this.initializeSubscriptions();\n\n // Initialize with preselected value\n if (!this.optionSelectionService.selectionModel.isEmpty()) {\n this.updateInputValue(this.optionSelectionService.selectionModel);\n }\n }\n\n ngAfterViewInit() {\n this.focusHandler.textInput = this.textbox.nativeElement;\n this.focusHandler.trigger = this.trigger.nativeElement;\n // The text input is the actual element we are wrapping\n // This assignment is needed by the wrapper, so it can set\n // the aria properties on the input element, not on the component.\n\n // We calculate on the initial load to prevent flickering\n this.el = this.textbox;\n if (this.showSelectAll) {\n if (this.multiSelect && this.multiSelectModel?.length > 0) {\n this.calculateLimit();\n }\n this.initialiseObserver();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n clearSelection() {\n this.focusHandler.focusInput();\n // Clear the array model directly\n this.optionSelectionService.setSelectionValue([]);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n // if BACKSPACE in multiselect mode, delete the last pill if text is empty\n if (this.multiSelect) {\n const multiModel: T[] = this.optionSelectionService.selectionModel.model as T[];\n switch (event.key) {\n case Keys.Backspace:\n if (!this._searchText.length) {\n if (multiModel && multiModel.length > 0) {\n const lastItem: T = multiModel[multiModel.length - 1];\n this.control?.control.markAsTouched();\n this.optionSelectionService.unselect(lastItem);\n }\n }\n break;\n case Keys.Enter:\n if (this.editable && this._searchText.length > 0 && this.options.emptyOptions) {\n const parsedInput = this.optionSelectionService.editableResolver(this._searchText);\n this.control?.control.markAsTouched();\n this.optionSelectionService.select(parsedInput);\n this.searchText = '';\n }\n break;\n }\n }\n }\n\n inputId(): string {\n return this.controlIdService.id;\n }\n\n loadingStateChange(state: HermesLoadingState): void {\n this.optionSelectionService.loading = state === HermesLoadingState.LOADING;\n\n if (state !== HermesLoadingState.LOADING && isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.popoverService?.resetPositions();\n });\n this.focusFirstActive();\n }\n }\n\n unselect(item: T) {\n if (!this.disabled) {\n this.optionSelectionService.unselect(item);\n }\n }\n\n onBlur(event) {\n if (!event.relatedTarget || !this.options.el?.nativeElement.contains(event.relatedTarget)) {\n this.onTouchedCallback?.();\n this.triggerValidation();\n this.focused = false;\n }\n }\n\n onFocus() {\n this.focused = true;\n\n // fix for \"expression changed\" error when focus is returned to a combobox after a modal is closed\n // https://github.com/vmware-clarity/ng-clarity/issues/663\n this.cdr.detectChanges();\n }\n\n onChange() {\n if (this.editable && !this.multiSelect && this.options.emptyOptions) {\n const parsedInput = this.optionSelectionService.editableResolver(this._searchText);\n this.optionSelectionService.setSelectionValue(parsedInput);\n }\n }\n\n getSelectionAriaLabel() {\n if (this.containerService && this.containerService.labelText) {\n return `${this.containerService.labelText} ${this.commonStrings.keys.comboboxSelection}`;\n }\n return this.commonStrings.keys.comboboxSelection;\n }\n\n focusFirstActive() {\n setTimeout(() => {\n this.focusHandler.focusFirstActive();\n });\n }\n\n writeValue(value: T | T[]): void {\n this.optionSelectionService.selectionModel.model = value;\n this.updateInputValue(this.optionSelectionService.selectionModel);\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouchedCallback = onTouched;\n }\n\n registerOnChange(onChange: any): void {\n this.onChangeCallback = onChange;\n }\n\n getActiveDescendant() {\n const model = this.focusHandler.pseudoFocus.model;\n return model ? model.id : this.options?.noResultsElementId;\n }\n\n setDisabledState(): void {\n // do nothing\n }\n\n onWrapperClick(event) {\n if (this.disabled) {\n return;\n }\n this.focusHandler.focusInput();\n if (this.editable || (!this.editable && this.trigger.nativeElement.contains(event.target))) {\n this.popoverService.toggleWithEvent(event);\n }\n }\n\n toggleSelectionExpand() {\n this.selectionExpanded = !this.selectionExpanded;\n if (this.selectionExpanded) {\n this.applyLimit(this.multiSelectModel.length);\n } else {\n this.containerWidthChange.next(this.containerWidth);\n }\n }\n\n private initialiseObserver() {\n const container = this.container ? this.container.el.nativeElement : this.el.nativeElement.parentElement;\n this.containerWidth = container.offsetWidth;\n this.resizeObserver = new ResizeObserver(entries => {\n this.zone.runOutsideAngular(() => {\n entries.forEach(entry => {\n const entryWidth = entry.contentRect.width;\n switch (entry.target) {\n case container:\n if (this.containerWidth !== entryWidth) {\n this.containerWidth = entryWidth;\n this.containerWidthChange.next(entryWidth);\n }\n break;\n case this.wrapper.nativeElement:\n this.containerWidthChange.next(null);\n break;\n }\n });\n });\n });\n this.resizeObserver.observe(container);\n this.resizeObserver.observe(this.wrapper.nativeElement);\n }\n\n private calculateLimit() {\n this.shouldCalculate = true;\n this.cdr.detectChanges();\n if (!this.calculationPills || this.calculationPills.length === 0) {\n this.applyLimit();\n return;\n }\n const pillDimensions = this.calculationPills.map(p => ({\n top: p.nativeElement.offsetTop,\n width: p.nativeElement.offsetWidth,\n left: p.nativeElement.offsetLeft,\n }));\n\n const firstPill = pillDimensions[0];\n const buttonWidth = this.truncationButton?.nativeElement?.offsetWidth || 100;\n const textboxWidth = this.textbox.nativeElement.offsetWidth;\n const expectedWidth = this.containerWidth - textboxWidth - buttonWidth;\n\n let fitCount = 0;\n\n for (const pill of pillDimensions) {\n if (pill.top > firstPill.top || pill.left + pill.width > expectedWidth) {\n break;\n }\n fitCount++;\n }\n this.applyLimit(fitCount);\n }\n\n private applyLimit(limit = undefined) {\n this.zone.run(() => {\n this.calculatedLimit = limit === 0 ? 1 : limit;\n this.shouldCalculate = false;\n this.cdr.markForCheck();\n });\n }\n\n private updateTotalSelection() {\n if (!this.multiSelect || !this.multiSelectModel?.length) {\n this.isTotalSelection = false;\n return;\n }\n // Skip recalculation when items are filtered to zero (e.g. \"no results\")\n // to prevent pills from flashing while typing in the search input.\n if (!this.options?.items?.length) {\n return;\n }\n this.isTotalSelection = this.optionSelectionService.containsAll(this.options.items.map(option => option.value));\n }\n\n private initializeSubscriptions(): void {\n this.subscriptions.push(\n this.optionSelectionService.selectionChanged.subscribe((newSelection: ComboboxModel<T>) => {\n this.updateInputValue(newSelection);\n if (newSelection.isEmpty()) {\n this.selectionExpanded = false;\n this.isTotalSelection = false;\n } else {\n if (!this.multiSelect) {\n this.popoverService.open = false;\n }\n this.updateTotalSelection();\n }\n\n this.updateControlValue();\n if (this.selectionExpanded) {\n this.applyLimit(this.multiSelectModel.length);\n } else {\n this.calculateLimit();\n }\n\n if (this.multiSelect) {\n setTimeout(() => {\n this.popoverService?.updatePosition();\n });\n }\n })\n );\n\n this.subscriptions.push(\n this.popoverService.openChange.subscribe(open => {\n if (this.editable && !this.multiSelect) {\n if (this.searchText) {\n this.optionSelectionService.showAllOptions = false;\n this.optionSelectionService.currentInput = this.searchText;\n }\n return;\n }\n if (open) {\n this.focusFirstActive();\n } else {\n this.optionSelectionService.showAllOptions = true;\n }\n if (this.multiSelect) {\n this.searchText = '';\n } else {\n this.searchText = this.getDisplayNames(this.optionSelectionService.selectionModel.model)[0] || '';\n }\n }),\n this.containerWidthChange.pipe(debounceTime(0)).subscribe(() => {\n if (!this.selectionExpanded && !this.isTotalSelection) {\n this.calculateLimit();\n }\n })\n );\n }\n\n private updateInputValue(model: ComboboxModel<T>) {\n if (!this.multiSelect) {\n this.searchText = model.model ? this.getDisplayNames(model.model)[0] : '';\n if (this.searchText) {\n this.optionSelectionService.currentInput = this.searchText;\n }\n }\n }\n\n private updateControlValue() {\n if (this.onChangeCallback) {\n this.onChangeCallback(this.optionSelectionService.selectionModel.model);\n }\n }\n\n private getDisplayNames(model: T | T[]) {\n if (this.displayField) {\n if (!Array.isArray(model)) {\n model = [model];\n }\n return model.map(item => (item ? (item as any)[this.displayField] : null));\n }\n return [this.optionSelectionService.selectionModel.model];\n }\n}\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\r\nwidth of the component, after being wrapped to a new line -->\r\n<div\r\n #wrapper\r\n class=\"hermes-combobox-wrapper\"\r\n hermesPopoverOrigin\r\n (click)=\"onWrapperClick($event)\"\r\n [class.multi]=\"multiSelect\"\r\n [class.invalid]=\"(control?.control.touched && control?.invalid)\"\r\n [class.disabled]=\"control?.disabled\"\r\n>\r\n @if (multiSelect && multiSelectModel && multiSelectModel.length > 0) {\r\n <span\r\n role=\"grid\"\r\n hermesRovingTabindex\r\n [hermesRovingTabindexDisabled]=\"control?.disabled\"\r\n hermesDirection=\"both\"\r\n [attr.aria-label]=\"getSelectionAriaLabel()\"\r\n [attr.aria-disabled]=\"control?.disabled? true: null\"\r\n class=\"hermes-combobox-pills\"\r\n >\r\n <ng-template #pillTemplate let-item let-i=\"index\">\r\n <span class=\"label label-combobox-pill\" role=\"row\">\r\n <span role=\"gridcell\">\r\n <span class=\"hermes-combobox-pill-content\" hermesKeyFocusItem>\r\n @if (optionSelected) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionSelected.template\"\r\n [ngTemplateOutletContext]=\"{$implicit: item}\"\r\n ></ng-container>\r\n }\r\n </span>\r\n </span>\r\n <span role=\"gridcell\">\r\n <button\r\n hermesKeyFocusItem\r\n type=\"button\"\r\n class=\"hermes-combobox-remove-btn\"\r\n [disabled]=\"control?.disabled ? true : null\"\r\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\r\n (click)=\"unselect(item)\"\r\n >\r\n <hermes-icon shape=\"window-close\" size=\"12\"></hermes-icon>\r\n </button>\r\n </span>\r\n </span>\r\n </ng-template>\r\n\r\n @if (showSelectAll) { @if (isTotalSelection && !selectionExpanded) {\r\n <span class=\"label label-combobox-pill\" role=\"row\">\r\n <span role=\"gridcell\">\r\n <span class=\"hermes-combobox-pill-content\" hermesKeyFocusItem>{{ allSelectedText }}</span>\r\n </span>\r\n <span role=\"gridcell\">\r\n <button\r\n hermesKeyFocusItem\r\n type=\"button\"\r\n class=\"hermes-combobox-remove-btn\"\r\n (click)=\"clearSelection()\"\r\n [attr.aria-label]=\"commonStrings.keys.comboboxUnselectAll\"\r\n >\r\n <hermes-icon shape=\"window-close\" size=\"12\"></hermes-icon>\r\n </button>\r\n </span>\r\n </span>\r\n } @if (showIndividualPills) { @for (item of multiSelectModel | slice:0:calculatedLimit; track item; let i = $index)\r\n {\r\n <ng-container\r\n [ngTemplateOutlet]=\"pillTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: item, index: i}\"\r\n ></ng-container>\r\n } } @if (showTruncationToggle) {\r\n <span role=\"row\" class=\"label label-combobox-pill hermes-combobox-truncation-row\">\r\n <span role=\"gridcell\" class=\"hermes-combobox-truncation-cell\">\r\n <span class=\"hermes-combobox-pill-content\">\r\n <button\r\n #truncationButton\r\n hermesKeyFocusItem\r\n type=\"button\"\r\n class=\"btn btn-link hermes-combobox-show-more-btn\"\r\n (click)=\"toggleSelectionExpand()\"\r\n [attr.aria-expanded]=\"selectionExpanded\"\r\n [attr.aria-controls]=\"'expanded-selection-' + id\"\r\n >\r\n @if (!selectionExpanded) { {{ showAllText }} } @else { {{ commonStrings.keys.comboboxShowLess }} }\r\n </button>\r\n </span>\r\n </span>\r\n </span>\r\n } } @else { @for (item of multiSelectModel; track item; let i = $index) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"pillTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: item, index: i}\"\r\n ></ng-container>\r\n } }\r\n </span>\r\n\r\n @if (showSelectAll && shouldCalculate) {\r\n <span class=\"hermes-combobox-pills-calculation\" aria-hidden=\"true\">\r\n @for (item of multiSelectModel; track item) {\r\n <span class=\"label label-combobox-pill\" #pill>\r\n <span class=\"hermes-combobox-pill-content\">\r\n @if (optionSelected) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionSelected.template\"\r\n [ngTemplateOutletContext]=\"{$implicit: item}\"\r\n ></ng-container>\r\n }\r\n </span>\r\n <button type=\"button\" class=\"hermes-combobox-remove-btn\" tabindex=\"-1\">\r\n <hermes-icon shape=\"window-close\" size=\"12\"></hermes-icon>\r\n </button>\r\n </span>\r\n }\r\n </span>\r\n } }\r\n\r\n <input\r\n #textboxInput\r\n type=\"text\"\r\n role=\"combobox\"\r\n [id]=\"inputId()\"\r\n class=\"hermes-input hermes-combobox-input\"\r\n [(ngModel)]=\"searchText\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus()\"\r\n (change)=\"onChange()\"\r\n [attr.aria-expanded]=\"openState\"\r\n [attr.aria-owns]=\"ariaOwns\"\r\n aria-haspopup=\"listbox\"\r\n aria-autocomplete=\"list\"\r\n autocomplete=\"off\"\r\n [attr.aria-invalid]=\"control?.invalid? true: null\"\r\n [disabled]=\"control?.disabled? true: null\"\r\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\r\n [attr.placeholder]=\"placeholder\"\r\n />\r\n\r\n <!-- No click handler, as it uses the handler on the .hermes-combobox-wrapper -->\r\n <button\r\n #trigger\r\n type=\"button\"\r\n class=\"hermes-combobox-trigger\"\r\n tabindex=\"-1\"\r\n [disabled]=\"control?.disabled || null\"\r\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\r\n >\r\n <hermes-icon shape=\"angle\" direction=\"down\"></hermes-icon>\r\n </button>\r\n\r\n <div class=\"hermes-focus-indicator\" [class.hermes-focus]=\"focused\"></div>\r\n</div>\r\n\r\n<!-- Both close handlers are handled manually.\r\n'outsideClickToClose' has complex handling that's necessary\r\nto be manual due to the component architecture -->\r\n<div role=\"dialog\" *hermesPopoverContent=\"openState; at popoverPosition; type: popoverType;\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { NgForOf, NgForOfContext } from '@angular/common';\r\nimport {\r\n Directive,\r\n DoCheck,\r\n Input,\r\n IterableDiffer,\r\n IterableDiffers,\r\n OnDestroy,\r\n TemplateRef,\r\n TrackByFunction,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { OptionSelectionService } from './providers/option-selection.service';\r\n@Directive({\r\n selector: '[hermesOptionItems][hermesOptionItemsOf]',\r\n standalone: false,\r\n})\r\nexport class HermesOptionItems<T> implements DoCheck, OnDestroy {\r\n private iterableProxy: NgForOf<T>;\r\n private _rawItems: T[];\r\n private filteredItems: T[];\r\n private subscriptions: Subscription[] = [];\r\n private filter = '';\r\n private _filterField: string;\r\n private differ: IterableDiffer<T> | null = null;\r\n\r\n constructor(\r\n public template: TemplateRef<NgForOfContext<T>>,\r\n private differs: IterableDiffers,\r\n private optionService: OptionSelectionService<T>,\r\n vcr: ViewContainerRef\r\n ) {\r\n this.iterableProxy = new NgForOf<T>(vcr, template, differs);\r\n this.subscriptions.push(\r\n optionService.inputChanged.subscribe(filter => {\r\n this.filter = filter;\r\n this.updateItems();\r\n })\r\n );\r\n }\r\n\r\n @Input('hermesOptionItemsOf')\r\n set rawItems(items: T[]) {\r\n this._rawItems = items ? items : [];\r\n this.updateItems();\r\n }\r\n\r\n @Input('hermesOptionItemsTrackBy')\r\n set trackBy(value: TrackByFunction<T>) {\r\n this.iterableProxy.ngForTrackBy = value;\r\n }\r\n\r\n @Input('hermesOptionItemsField')\r\n set field(field: string) {\r\n this._filterField = field;\r\n this.optionService.displayField = field;\r\n }\r\n\r\n get hasResults() {\r\n // explicity return `undefined` instead of `false` if the answer is not known\r\n return this.filteredItems ? this.filteredItems.length : undefined;\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this.differ) {\r\n this.differ = this.differs.find(this.filteredItems).create(this.iterableProxy.ngForTrackBy);\r\n }\r\n if (this.differ) {\r\n const changes = this.differ.diff(this.filteredItems);\r\n if (changes) {\r\n this.iterableProxy.ngDoCheck();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n private updateItems() {\r\n if (!this._rawItems || this.filter === undefined || this.filter === null) {\r\n return;\r\n }\r\n\r\n const normalizedFilterValue = normalizeValue(this.filter);\r\n\r\n if (this.optionService.showAllOptions) {\r\n this.filteredItems = this._rawItems;\r\n } else if (this._filterField) {\r\n this.filteredItems = this._rawItems.filter(item => {\r\n const objValue = (item as any)[this._filterField];\r\n return objValue ? normalizeValue(objValue).includes(normalizedFilterValue) : false;\r\n });\r\n } else {\r\n // Filter by all item object values\r\n this.filteredItems = this._rawItems.filter(item => {\r\n if (typeof item !== 'object') {\r\n return normalizeValue(item).includes(normalizedFilterValue);\r\n }\r\n const objValues = Object.values(item).filter(value => {\r\n return value !== null && value !== undefined ? normalizeValue(value).includes(normalizedFilterValue) : false;\r\n });\r\n return objValues.length > 0;\r\n });\r\n }\r\n this.iterableProxy.ngForOf = this.filteredItems;\r\n }\r\n}\r\n\r\nfunction normalizeValue(value: any) {\r\n return value\r\n .toString()\r\n .normalize('NFD')\r\n .replace(/\\p{Diacritic}/gu, '')\r\n .toLowerCase();\r\n}\r\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ContentChild, Input } from '@angular/core';\nimport { uniqueIdFactory } from '@hermes-ui/angular/utils';\n\nimport { HermesOptionItems } from './option-items.directive';\n\n@Component({\n selector: 'hermes-option-group',\n host: {\n '[attr.role]': '\"group\"',\n '[attr.aria-labelledby]': 'labelId',\n '[style.display]': 'hermesOptionItems.hasResults ? undefined : \"none\"',\n },\n template: `\n <span [id]=\"labelId\" class=\"hermes-option-group-label\" role=\"presentation\">{{ label }}</span>\n <ng-content></ng-content>\n `,\n standalone: false,\n})\nexport class HermesOptionGroup<T> {\n @Input('hermesOptionGroupLabel') label: string;\n\n @ContentChild(HermesOptionItems) protected hermesOptionItems: HermesOptionItems<T>;\n\n protected labelId = uniqueIdFactory();\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HermesCommonFormsModule } from '@hermes-ui/angular/forms/common';\nimport {\n angleIcon,\n ClarityIcons,\n HermesIcon,\n errorStandardIcon,\n successStandardIcon,\n windowCloseIcon,\n} from '@hermes-ui/angular/icon';\nimport { HermesPopoverModuleNext } from '@hermes-ui/angular/popover/common';\nimport { HermesSpinnerModule } from '@hermes-ui/angular/progress/spinner';\nimport { HermesConditionalModule, HermesKeyFocusModule } from '@hermes-ui/angular/utils';\n\nimport { HermesCombobox } from './combobox';\nimport { HermesComboboxContainer } from './combobox-container';\nimport { HermesOption } from './option';\nimport { HermesOptionGroup } from './option-group';\nimport { HermesOptionItems } from './option-items.directive';\nimport { HermesOptionSelected } from './option-selected.directive';\nimport { HermesOptions } from './options';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HermesIcon,\n HermesKeyFocusModule,\n HermesCommonFormsModule,\n HermesConditionalModule,\n HermesPopoverModuleNext,\n HermesSpinnerModule,\n ],\n declarations: [\n HermesCombobox,\n HermesComboboxContainer,\n HermesOptions,\n HermesOption,\n HermesOptionGroup,\n HermesOptionSelected,\n HermesOptionItems,\n ],\n exports: [\n HermesCommonFormsModule,\n HermesCombobox,\n HermesComboboxContainer,\n HermesOptions,\n HermesOption,\n HermesOptionGroup,\n HermesOptionSelected,\n HermesConditionalModule,\n HermesOptionItems,\n ],\n})\nexport class HermesComboboxModule {\n constructor() {\n ClarityIcons.addIcons(successStandardIcon, errorStandardIcon, angleIcon, windowCloseIcon);\n }\n}\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './combobox.module';\r\nexport * from './combobox-container';\r\nexport * from './combobox';\r\nexport * from './options';\r\nexport * from './option';\r\nexport * from './option-group';\r\nexport * from './option-items.directive';\r\nexport * from './option-selected.directive';\r\nexport { HermesComboboxIdentityFunction, HermesComboboxResolverFunction } from './model/combobox.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ComboboxContainerService","i3","OptionProxy","i1","i2.ComboboxFocusHandler","i3.OptionSelectionService","i1.OptionSelectionService","i2","i3.ComboboxFocusHandler","i6.ComboboxFocusHandler","i7.HermesComboboxContainer"],"mappings":"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"}
|