@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,559 @@
|
|
|
1
|
+
import * as i5 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Directive, ContentChildren, Input, Component, inject, Injectable, ViewContainerRef, ViewChild, EventEmitter, ElementRef, forwardRef, HostListener, Output, Optional, NgModule } from '@angular/core';
|
|
5
|
+
import * as i1 from '@hermes-ui/angular/addons/a11y';
|
|
6
|
+
import { ZoomLevel, ZoomLevelService } from '@hermes-ui/angular/addons/a11y';
|
|
7
|
+
import * as i2 from '@hermes-ui/angular/popover/dropdown';
|
|
8
|
+
import { HermesDropdownMenu, HermesDropdown, HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';
|
|
9
|
+
import { Subscription } from 'rxjs';
|
|
10
|
+
import { first } from 'rxjs/operators';
|
|
11
|
+
import * as i3 from '@hermes-ui/angular/popover/common';
|
|
12
|
+
import * as i4 from '@hermes-ui/angular/icon';
|
|
13
|
+
|
|
14
|
+
/*
|
|
15
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
16
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
17
|
+
* This software is released under MIT license.
|
|
18
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Used as token for querying a list of heterogeneous implementations.
|
|
22
|
+
*/
|
|
23
|
+
class FocusableItemProvider {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
28
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
29
|
+
* This software is released under MIT license.
|
|
30
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Pulls out the FocusableItem instance associated with a hermesDropdownItem.
|
|
34
|
+
*/
|
|
35
|
+
class FocusableDropdownItemDirective {
|
|
36
|
+
constructor(menu) {
|
|
37
|
+
this.menu = menu;
|
|
38
|
+
}
|
|
39
|
+
getFocusableItem() {
|
|
40
|
+
return this.menu.focusableItem;
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FocusableDropdownItemDirective, deps: [{ token: i2.HermesDropdownItem }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: FocusableDropdownItemDirective, isStandalone: false, selector: "[hermesDropdownItem][appfxFocusableDropdownItem]", providers: [{ provide: FocusableItemProvider, useExisting: FocusableDropdownItemDirective }], ngImport: i0 }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FocusableDropdownItemDirective, decorators: [{
|
|
46
|
+
type: Directive,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: '[hermesDropdownItem][appfxFocusableDropdownItem]',
|
|
49
|
+
standalone: false,
|
|
50
|
+
providers: [{ provide: FocusableItemProvider, useExisting: FocusableDropdownItemDirective }],
|
|
51
|
+
}]
|
|
52
|
+
}], ctorParameters: () => [{ type: i2.HermesDropdownItem }] });
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
56
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
57
|
+
* This software is released under MIT license.
|
|
58
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
59
|
+
*/
|
|
60
|
+
/**
|
|
61
|
+
* Does the job of the parent HermesDropdownMenu which isn't able to collect the child FocusableItems
|
|
62
|
+
* because they are not in the content but in a nested template. see menu.component.html
|
|
63
|
+
*/
|
|
64
|
+
class FocusableItemCollectorComponent {
|
|
65
|
+
ngAfterContentInit() {
|
|
66
|
+
const focusHandler = this.parentMenu.focusHandler;
|
|
67
|
+
const originalAddChildren = focusHandler.addChildren;
|
|
68
|
+
//overrides the addChildren as it's called with empty array and overrides the value we pass.
|
|
69
|
+
focusHandler.addChildren = () => { };
|
|
70
|
+
//the code here is the same as in HermesDropdownMenu.ngAfterContentInit
|
|
71
|
+
this.items.changes.subscribe(() => originalAddChildren.call(focusHandler, this.items.map(item => item.getFocusableItem())));
|
|
72
|
+
this.items.notifyOnChanges();
|
|
73
|
+
}
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FocusableItemCollectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: FocusableItemCollectorComponent, isStandalone: false, selector: "focusable-item-collector", inputs: { parentMenu: "parentMenu" }, queries: [{ propertyName: "items", predicate: FocusableItemProvider, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
76
|
+
}
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FocusableItemCollectorComponent, decorators: [{
|
|
78
|
+
type: Component,
|
|
79
|
+
args: [{
|
|
80
|
+
selector: 'focusable-item-collector',
|
|
81
|
+
standalone: false,
|
|
82
|
+
template: '<ng-content></ng-content>',
|
|
83
|
+
}]
|
|
84
|
+
}], propDecorators: { parentMenu: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], items: [{
|
|
87
|
+
type: ContentChildren,
|
|
88
|
+
args: [FocusableItemProvider, { descendants: true }]
|
|
89
|
+
}] } });
|
|
90
|
+
|
|
91
|
+
/*
|
|
92
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
93
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
94
|
+
* This software is released under MIT license.
|
|
95
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
96
|
+
*/
|
|
97
|
+
/**
|
|
98
|
+
* Pulls out the FocusableItem instance associated with a hermes-dropdown-menu.
|
|
99
|
+
*/
|
|
100
|
+
class FocusableMenuDirective {
|
|
101
|
+
constructor() {
|
|
102
|
+
this.menu = inject(HermesDropdownMenu);
|
|
103
|
+
}
|
|
104
|
+
getFocusableItem() {
|
|
105
|
+
return this.menu.focusHandler;
|
|
106
|
+
}
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FocusableMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
108
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: FocusableMenuDirective, isStandalone: false, selector: "hermes-dropdown-menu[appfxFocusableMenu]", providers: [{ provide: FocusableItemProvider, useExisting: FocusableMenuDirective }], ngImport: i0 }); }
|
|
109
|
+
}
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: FocusableMenuDirective, decorators: [{
|
|
111
|
+
type: Directive,
|
|
112
|
+
args: [{
|
|
113
|
+
selector: 'hermes-dropdown-menu[appfxFocusableMenu]',
|
|
114
|
+
standalone: false,
|
|
115
|
+
providers: [{ provide: FocusableItemProvider, useExisting: FocusableMenuDirective }],
|
|
116
|
+
}]
|
|
117
|
+
}] });
|
|
118
|
+
|
|
119
|
+
/*
|
|
120
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
121
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
122
|
+
* This software is released under MIT license.
|
|
123
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
124
|
+
*/
|
|
125
|
+
/**
|
|
126
|
+
* Exposes an imperative way to display a menu.
|
|
127
|
+
*/
|
|
128
|
+
class MenuOutletService {
|
|
129
|
+
/**
|
|
130
|
+
* Shows and attaches the menu component.
|
|
131
|
+
*/
|
|
132
|
+
showMenu(menuComponentRef, e, x, y, trigger) {
|
|
133
|
+
this.menuOutlet.attachMenu(menuComponentRef);
|
|
134
|
+
menuComponentRef.instance.show(e, x, y, trigger);
|
|
135
|
+
menuComponentRef.instance.closed.subscribe(() => this.closeMenu());
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Closes and detaches the menu component
|
|
139
|
+
*/
|
|
140
|
+
closeMenu() {
|
|
141
|
+
this.menuOutlet.detachMenu();
|
|
142
|
+
}
|
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuOutletService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
144
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuOutletService, providedIn: 'root' }); }
|
|
145
|
+
}
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuOutletService, decorators: [{
|
|
147
|
+
type: Injectable,
|
|
148
|
+
args: [{ providedIn: 'root' }]
|
|
149
|
+
}] });
|
|
150
|
+
|
|
151
|
+
/*
|
|
152
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
153
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
154
|
+
* This software is released under MIT license.
|
|
155
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
156
|
+
*/
|
|
157
|
+
/**
|
|
158
|
+
* Determines the location of a menu shown through instance of MenuOutletService.
|
|
159
|
+
*/
|
|
160
|
+
class MenuOutletComponent {
|
|
161
|
+
constructor(menuOutletService) {
|
|
162
|
+
this.menuOutletService = menuOutletService;
|
|
163
|
+
}
|
|
164
|
+
ngOnInit() {
|
|
165
|
+
this.menuOutletService.menuOutlet = this;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Adds the menu component to the component's container.
|
|
169
|
+
*/
|
|
170
|
+
attachMenu(menuComponentRef) {
|
|
171
|
+
this.vc.clear();
|
|
172
|
+
this.vc.insert(menuComponentRef.hostView);
|
|
173
|
+
menuComponentRef.changeDetectorRef.detectChanges();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Removes to menu component from the component's container.
|
|
177
|
+
*/
|
|
178
|
+
detachMenu() {
|
|
179
|
+
this.vc.clear();
|
|
180
|
+
}
|
|
181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuOutletComponent, deps: [{ token: MenuOutletService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
182
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: MenuOutletComponent, isStandalone: false, selector: "menu-outlet", viewQueries: [{ propertyName: "vc", first: true, predicate: ["vc"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: ` <ng-container #vc></ng-container>`, isInline: true }); }
|
|
183
|
+
}
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuOutletComponent, decorators: [{
|
|
185
|
+
type: Component,
|
|
186
|
+
args: [{
|
|
187
|
+
selector: 'menu-outlet',
|
|
188
|
+
standalone: false,
|
|
189
|
+
template: ` <ng-container #vc></ng-container>`,
|
|
190
|
+
}]
|
|
191
|
+
}], ctorParameters: () => [{ type: MenuOutletService }], propDecorators: { vc: [{
|
|
192
|
+
type: ViewChild,
|
|
193
|
+
args: ['vc', { read: ViewContainerRef }]
|
|
194
|
+
}] } });
|
|
195
|
+
|
|
196
|
+
/*
|
|
197
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
198
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
199
|
+
* This software is released under MIT license.
|
|
200
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
201
|
+
*/
|
|
202
|
+
/**
|
|
203
|
+
* Base class for all items that can be shown as children of a menu.
|
|
204
|
+
* Used as type injection token used to query heterogeneous list of menu items.
|
|
205
|
+
*/
|
|
206
|
+
class MenuItem {
|
|
207
|
+
constructor() {
|
|
208
|
+
this.hidden = false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
var MenuItemType;
|
|
212
|
+
(function (MenuItemType) {
|
|
213
|
+
MenuItemType[MenuItemType["action"] = 0] = "action";
|
|
214
|
+
MenuItemType[MenuItemType["separator"] = 1] = "separator";
|
|
215
|
+
MenuItemType[MenuItemType["header"] = 2] = "header";
|
|
216
|
+
MenuItemType[MenuItemType["menu"] = 3] = "menu";
|
|
217
|
+
})(MenuItemType || (MenuItemType = {}));
|
|
218
|
+
|
|
219
|
+
/*
|
|
220
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
221
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
222
|
+
* This software is released under MIT license.
|
|
223
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
224
|
+
*/
|
|
225
|
+
/**
|
|
226
|
+
* A MenuItem where multiple menuItems can be nested.
|
|
227
|
+
*/
|
|
228
|
+
class NestedMenu extends MenuItem {
|
|
229
|
+
constructor() {
|
|
230
|
+
super(...arguments);
|
|
231
|
+
this.type = MenuItemType.menu;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/*
|
|
236
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
237
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
238
|
+
* This software is released under MIT license.
|
|
239
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
240
|
+
*/
|
|
241
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
242
|
+
/**
|
|
243
|
+
* A contextual menu based on `hermes-dropdown`
|
|
244
|
+
*
|
|
245
|
+
* The notable features added on top of the generic `hermes-dropdown` and describe in further details below are:
|
|
246
|
+
* + positioning based on anchor point instead of anchor button
|
|
247
|
+
* + positioning and scrolling taking into account an encompassing container which in the primary use-case is the viewport
|
|
248
|
+
* + domain specific declarative interface instead of custom HTML markup
|
|
249
|
+
*/
|
|
250
|
+
class MenuComponent extends NestedMenu {
|
|
251
|
+
constructor(cdr, zoomLevelService) {
|
|
252
|
+
super();
|
|
253
|
+
this.cdr = cdr;
|
|
254
|
+
this.zoomLevelService = zoomLevelService;
|
|
255
|
+
this.itemTypes = MenuItemType;
|
|
256
|
+
this.anchorPoint = { x: 0, y: 0 };
|
|
257
|
+
this.opened = new EventEmitter();
|
|
258
|
+
this.closed = new EventEmitter();
|
|
259
|
+
this.ZoomLevel = ZoomLevel;
|
|
260
|
+
this.subscriptions = new Subscription();
|
|
261
|
+
}
|
|
262
|
+
ngOnInit() {
|
|
263
|
+
if (!this.zoomLevelService) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
this.subscriptions.add(this.zoomLevelService.onChange.subscribe((zoomLevel) => {
|
|
267
|
+
const prevZoomLevel = this.currentZoomLevel;
|
|
268
|
+
this.currentZoomLevel = zoomLevel;
|
|
269
|
+
// Close the action menu if zoom happens.
|
|
270
|
+
// The user will need to reopen it in which case the menu calculations
|
|
271
|
+
// will be done and it will be displayed correctly.
|
|
272
|
+
if (prevZoomLevel !== undefined && prevZoomLevel !== this.currentZoomLevel) {
|
|
273
|
+
this.closed.emit();
|
|
274
|
+
}
|
|
275
|
+
this.cdr.detectChanges();
|
|
276
|
+
}));
|
|
277
|
+
}
|
|
278
|
+
ngOnDestroy() {
|
|
279
|
+
this.subscriptions.unsubscribe();
|
|
280
|
+
}
|
|
281
|
+
show(e, x, y, trigger) {
|
|
282
|
+
this.trigger = trigger;
|
|
283
|
+
this.anchorPoint = { x, y };
|
|
284
|
+
this.dropdown.popoverService.openChange.pipe(first(open => !open)).subscribe(() => {
|
|
285
|
+
this.trigger?.focus();
|
|
286
|
+
this.closed.emit();
|
|
287
|
+
});
|
|
288
|
+
this.dropdown.popoverService.openChange.pipe(first(open => open)).subscribe(() => this.opened.emit());
|
|
289
|
+
this.dropdown.openAtPoint(this.anchorPoint, trigger);
|
|
290
|
+
this.dropdown.popoverService.openEvent = e;
|
|
291
|
+
this.openingEvent = e;
|
|
292
|
+
}
|
|
293
|
+
ngAfterContentInit() {
|
|
294
|
+
this.menuItems.changes.subscribe(() => {
|
|
295
|
+
throw new Error(`Dear developer.
|
|
296
|
+
|
|
297
|
+
You see this error because the set of menu items has changed.
|
|
298
|
+
|
|
299
|
+
Usually, adding or removing an item is causing the menu to shrink or expand suddenly, which is considered a bad UX.
|
|
300
|
+
|
|
301
|
+
Please don't try to avoid the error by delaying the opening of the menu. It's going to degrade the performance.
|
|
302
|
+
|
|
303
|
+
Instead, show all items and disable those, which are unavailable asynchronously.`);
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
close(e) {
|
|
307
|
+
if (this.dropdown.popoverService.open) {
|
|
308
|
+
this.dropdown.popoverService.toggleWithEvent(e);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
handleAction(actionItem) {
|
|
312
|
+
if (actionItem.enabled) {
|
|
313
|
+
if (this.trigger) {
|
|
314
|
+
this.trigger.focus();
|
|
315
|
+
}
|
|
316
|
+
actionItem.handle.next();
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
documentContextMenu(event) {
|
|
320
|
+
if (this.dropdownElRef.nativeElement.contains(event.target) || event === this.openingEvent) {
|
|
321
|
+
//if the contextmenu event is within the menu or
|
|
322
|
+
//the event is the one opening the menu
|
|
323
|
+
//then do nothing
|
|
324
|
+
event.preventDefault();
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
//if the contextmenu is outside close the menu to prevent showing multiple menus
|
|
328
|
+
this.close(event);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
menuHasIcons(menuItems) {
|
|
332
|
+
for (const item of menuItems) {
|
|
333
|
+
if (item.iconClass) {
|
|
334
|
+
return true;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
339
|
+
getIconClass(iconClass, menuHasIcons) {
|
|
340
|
+
if (iconClass) {
|
|
341
|
+
return iconClass;
|
|
342
|
+
}
|
|
343
|
+
if (menuHasIcons) {
|
|
344
|
+
return 'no-icon-item';
|
|
345
|
+
}
|
|
346
|
+
return '';
|
|
347
|
+
}
|
|
348
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ZoomLevelService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
349
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: MenuComponent, isStandalone: false, selector: "appfx-menu", inputs: { text: "text" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "document:contextmenu": "documentContextMenu($event)" } }, providers: [
|
|
350
|
+
{
|
|
351
|
+
provide: MenuItem,
|
|
352
|
+
useExisting: forwardRef(() => MenuComponent),
|
|
353
|
+
},
|
|
354
|
+
], queries: [{ propertyName: "menuItems", predicate: MenuItem }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: HermesDropdown, descendants: true }, { propertyName: "dropdownElRef", first: true, predicate: HermesDropdown, descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-dropdown class=\"app-menu\" [class.zoom4x]=\"currentZoomLevel === ZoomLevel.x4\">\r\n <!-- hidden hermesDropdownTrigger so the DropdownFocusHandler is instantiated before HermesDropdownMenu-->\r\n <!-- otherwise DropdownFocusHandler will miss the openChange emission and won't move the focus to the first item -->\r\n <button class=\"appfx-menu-trigger\" hermesDropdownTrigger></button>\r\n <hermes-dropdown-menu #rootDropdownMenu *hermesIfOpen [class.fullscreen]=\"currentZoomLevel === ZoomLevel.x4\">\r\n <ng-template\r\n #menuTemplate\r\n let-items\r\n let-hasIcons=\"hasIcons\"\r\n let-parentMenu=\"parentMenu\"\r\n let-parentDropdown=\"parentDropdown\"\r\n let-parentText=\"parentText\"\r\n >\r\n <div class=\"scrollable-content\">\r\n <focusable-item-collector [parentMenu]=\"parentMenu\">\r\n <ng-container *ngIf=\"parentMenu !== rootDropdownMenu && currentZoomLevel === ZoomLevel.x4\">\r\n <div class=\"dropdown-header\" aria-hidden=\"true\">\r\n <button class=\"btn-close-submenu\" (click)=\"parentDropdown.popoverService.toggleWithEvent($event)\">\r\n <hermes-icon size=\"18\" shape=\"angle\" direction=\"left\"></hermes-icon>\r\n </button>\r\n <span class=\"submenu-header-text\">{{ parentText }}</span>\r\n <button type=\"button\" class=\"close\" (click)=\"this.close($event)\">\r\n <hermes-icon class=\"btn-close-menu\" shape=\"window-close\"></hermes-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let menuItem of $any(items)\" [ngSwitch]=\"menuItem.type\">\r\n <ng-container *ngIf=\"!menuItem.hidden\">\r\n <!-- header item template -->\r\n <div *ngSwitchCase=\"itemTypes.header\" class=\"dropdown-header\" aria-hidden=\"true\">\r\n <span class=\"menu-item-icon\" [ngClass]=\"menuItem.iconClass\"></span>\r\n <span class=\"title-text\">{{ menuItem.text }}</span>\r\n <button\r\n *ngIf=\"currentZoomLevel === ZoomLevel.x4\"\r\n type=\"button\"\r\n class=\"close\"\r\n (click)=\"this.close($event)\"\r\n >\r\n <hermes-icon class=\"btn-close-menu\" shape=\"window-close\"></hermes-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- action item template -->\r\n <button\r\n *ngSwitchCase=\"itemTypes.action\"\r\n hermesDropdownItem\r\n appfxFocusableDropdownItem\r\n [hermesDisabled]=\"!menuItem.enabled\"\r\n (click)=\"handleAction(menuItem)\"\r\n class=\"menu-item-action\"\r\n [attr.data-test-id]=\"menuItem.text\"\r\n >\r\n <span class=\"menu-item-icon\" [ngClass]=\"getIconClass(menuItem.iconClass, hasIcons)\"></span>\r\n <span class=\"menu-item-text\">{{ menuItem.text }}</span>\r\n <span class=\"menu-item-shortcut\">{{ menuItem.shortcut }}</span>\r\n </button>\r\n\r\n <!-- separator item template -->\r\n <div\r\n *ngSwitchCase=\"itemTypes.separator\"\r\n class=\"dropdown-divider\"\r\n role=\"separator\"\r\n aria-hidden=\"true\"\r\n ></div>\r\n\r\n <!-- nested menu item template -->\r\n <ng-container *ngSwitchCase=\"itemTypes.menu\">\r\n <hermes-dropdown #nestedDropdown>\r\n <button hermesDropdownTrigger>\r\n <span class=\"menu-item-icon\" [ngClass]=\"getIconClass(menuItem.iconClass, hasIcons)\"></span\r\n >{{ menuItem.text }}\r\n </button>\r\n <hermes-dropdown-menu\r\n #nestedDropdownMenu\r\n appfxFocusableMenu\r\n [class.fullscreen]=\"currentZoomLevel === ZoomLevel.x4\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"menuTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: menuItem.menuItems,\r\n hasIcons: menuHasIcons(menuItem.menuItems),\r\n parentMenu: nestedDropdownMenu,\r\n parentDropdown: nestedDropdown,\r\n parentText: menuItem.text,\r\n }\"\r\n >\r\n </ng-template>\r\n </hermes-dropdown-menu>\r\n </hermes-dropdown>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </focusable-item-collector>\r\n </div>\r\n </ng-template>\r\n <ng-container\r\n [ngTemplateOutlet]=\"menuTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: menuItems,\r\n hasIcons: menuHasIcons(menuItems),\r\n parentMenu: rootDropdownMenu,\r\n parentDropdown: dropdown,\r\n parentText: text,\r\n }\"\r\n >\r\n </ng-container>\r\n </hermes-dropdown-menu>\r\n</hermes-dropdown>\r\n", styles: ["hermes-dropdown-menu div.scrollable-content{position:static;overflow:hidden auto}hermes-dropdown-menu .dropdown-header{display:flex}hermes-dropdown-menu .dropdown-header .title-text{overflow-wrap:break-word;white-space:normal;min-width:11rem;max-height:21rem}hermes-dropdown-menu .dropdown-item.menu-item-action{height:auto}hermes-dropdown-menu .dropdown-item.menu-item-action .dropdown-item-content{display:contents}hermes-dropdown-menu .dropdown-divider{margin:5px var(--hermes-base-horizontal-offset-l)}hermes-dropdown{display:block;position:static}.appfx-menu-trigger{display:none}.menu-item-action{display:flex;align-items:center}.menu-item-text{flex:1 1 auto;white-space:pre-line;overflow-wrap:break-word;width:max-content}.menu-item-icon{margin-right:4px;margin-left:0;display:inline-block;flex:0 0 auto}.no-icon-item{width:18px}.menu-item-shortcut{flex:0 0 auto;padding-left:.5rem;opacity:.6}.app-menu .fullscreen{width:100vw;height:100vh}.app-menu.zoom4x hermes-dropdown-menu{position:fixed!important;max-width:none;margin:0;border-width:0;border-radius:0;transform:none!important}.app-menu.zoom4x .submenu-header-text{vertical-align:middle}.app-menu.zoom4x .btn-close-submenu{cursor:pointer;margin-right:4px;margin-left:0;margin-top:1px;display:inline-block;border:0;background:transparent;padding:0}.app-menu.zoom4x .btn-close-submenu hermes-icon{fill:var(--hermes-alias-typography-color-400)}.app-menu.zoom4x .btn-close-menu{margin-top:2px;display:block}\n"], dependencies: [{ kind: "component", type: i2.HermesDropdown, selector: "hermes-dropdown", inputs: ["hermesCloseMenuOnItemClick"] }, { kind: "component", type: i2.HermesDropdownMenu, selector: "hermes-dropdown-menu", inputs: ["hermesPosition"] }, { kind: "directive", type: i2.HermesDropdownTrigger, selector: "[hermesDropdownTrigger],[hermesDropdownToggle]" }, { kind: "directive", type: i2.HermesDropdownItem, selector: "[hermesDropdownItem]", inputs: ["hermesDisabled", "id"] }, { kind: "directive", type: i3.HermesIfOpen, selector: "[hermesIfOpen]", inputs: ["hermesIfOpen"], outputs: ["hermesIfOpenChange"] }, { kind: "component", type: i4.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FocusableDropdownItemDirective, selector: "[hermesDropdownItem][appfxFocusableDropdownItem]" }, { kind: "component", type: FocusableItemCollectorComponent, selector: "focusable-item-collector", inputs: ["parentMenu"] }, { kind: "directive", type: FocusableMenuDirective, selector: "hermes-dropdown-menu[appfxFocusableMenu]" }] }); }
|
|
355
|
+
}
|
|
356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuComponent, decorators: [{
|
|
357
|
+
type: Component,
|
|
358
|
+
args: [{ selector: 'appfx-menu', standalone: false, providers: [
|
|
359
|
+
{
|
|
360
|
+
provide: MenuItem,
|
|
361
|
+
useExisting: forwardRef(() => MenuComponent),
|
|
362
|
+
},
|
|
363
|
+
], template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-dropdown class=\"app-menu\" [class.zoom4x]=\"currentZoomLevel === ZoomLevel.x4\">\r\n <!-- hidden hermesDropdownTrigger so the DropdownFocusHandler is instantiated before HermesDropdownMenu-->\r\n <!-- otherwise DropdownFocusHandler will miss the openChange emission and won't move the focus to the first item -->\r\n <button class=\"appfx-menu-trigger\" hermesDropdownTrigger></button>\r\n <hermes-dropdown-menu #rootDropdownMenu *hermesIfOpen [class.fullscreen]=\"currentZoomLevel === ZoomLevel.x4\">\r\n <ng-template\r\n #menuTemplate\r\n let-items\r\n let-hasIcons=\"hasIcons\"\r\n let-parentMenu=\"parentMenu\"\r\n let-parentDropdown=\"parentDropdown\"\r\n let-parentText=\"parentText\"\r\n >\r\n <div class=\"scrollable-content\">\r\n <focusable-item-collector [parentMenu]=\"parentMenu\">\r\n <ng-container *ngIf=\"parentMenu !== rootDropdownMenu && currentZoomLevel === ZoomLevel.x4\">\r\n <div class=\"dropdown-header\" aria-hidden=\"true\">\r\n <button class=\"btn-close-submenu\" (click)=\"parentDropdown.popoverService.toggleWithEvent($event)\">\r\n <hermes-icon size=\"18\" shape=\"angle\" direction=\"left\"></hermes-icon>\r\n </button>\r\n <span class=\"submenu-header-text\">{{ parentText }}</span>\r\n <button type=\"button\" class=\"close\" (click)=\"this.close($event)\">\r\n <hermes-icon class=\"btn-close-menu\" shape=\"window-close\"></hermes-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let menuItem of $any(items)\" [ngSwitch]=\"menuItem.type\">\r\n <ng-container *ngIf=\"!menuItem.hidden\">\r\n <!-- header item template -->\r\n <div *ngSwitchCase=\"itemTypes.header\" class=\"dropdown-header\" aria-hidden=\"true\">\r\n <span class=\"menu-item-icon\" [ngClass]=\"menuItem.iconClass\"></span>\r\n <span class=\"title-text\">{{ menuItem.text }}</span>\r\n <button\r\n *ngIf=\"currentZoomLevel === ZoomLevel.x4\"\r\n type=\"button\"\r\n class=\"close\"\r\n (click)=\"this.close($event)\"\r\n >\r\n <hermes-icon class=\"btn-close-menu\" shape=\"window-close\"></hermes-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- action item template -->\r\n <button\r\n *ngSwitchCase=\"itemTypes.action\"\r\n hermesDropdownItem\r\n appfxFocusableDropdownItem\r\n [hermesDisabled]=\"!menuItem.enabled\"\r\n (click)=\"handleAction(menuItem)\"\r\n class=\"menu-item-action\"\r\n [attr.data-test-id]=\"menuItem.text\"\r\n >\r\n <span class=\"menu-item-icon\" [ngClass]=\"getIconClass(menuItem.iconClass, hasIcons)\"></span>\r\n <span class=\"menu-item-text\">{{ menuItem.text }}</span>\r\n <span class=\"menu-item-shortcut\">{{ menuItem.shortcut }}</span>\r\n </button>\r\n\r\n <!-- separator item template -->\r\n <div\r\n *ngSwitchCase=\"itemTypes.separator\"\r\n class=\"dropdown-divider\"\r\n role=\"separator\"\r\n aria-hidden=\"true\"\r\n ></div>\r\n\r\n <!-- nested menu item template -->\r\n <ng-container *ngSwitchCase=\"itemTypes.menu\">\r\n <hermes-dropdown #nestedDropdown>\r\n <button hermesDropdownTrigger>\r\n <span class=\"menu-item-icon\" [ngClass]=\"getIconClass(menuItem.iconClass, hasIcons)\"></span\r\n >{{ menuItem.text }}\r\n </button>\r\n <hermes-dropdown-menu\r\n #nestedDropdownMenu\r\n appfxFocusableMenu\r\n [class.fullscreen]=\"currentZoomLevel === ZoomLevel.x4\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"menuTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: menuItem.menuItems,\r\n hasIcons: menuHasIcons(menuItem.menuItems),\r\n parentMenu: nestedDropdownMenu,\r\n parentDropdown: nestedDropdown,\r\n parentText: menuItem.text,\r\n }\"\r\n >\r\n </ng-template>\r\n </hermes-dropdown-menu>\r\n </hermes-dropdown>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </focusable-item-collector>\r\n </div>\r\n </ng-template>\r\n <ng-container\r\n [ngTemplateOutlet]=\"menuTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: menuItems,\r\n hasIcons: menuHasIcons(menuItems),\r\n parentMenu: rootDropdownMenu,\r\n parentDropdown: dropdown,\r\n parentText: text,\r\n }\"\r\n >\r\n </ng-container>\r\n </hermes-dropdown-menu>\r\n</hermes-dropdown>\r\n", styles: ["hermes-dropdown-menu div.scrollable-content{position:static;overflow:hidden auto}hermes-dropdown-menu .dropdown-header{display:flex}hermes-dropdown-menu .dropdown-header .title-text{overflow-wrap:break-word;white-space:normal;min-width:11rem;max-height:21rem}hermes-dropdown-menu .dropdown-item.menu-item-action{height:auto}hermes-dropdown-menu .dropdown-item.menu-item-action .dropdown-item-content{display:contents}hermes-dropdown-menu .dropdown-divider{margin:5px var(--hermes-base-horizontal-offset-l)}hermes-dropdown{display:block;position:static}.appfx-menu-trigger{display:none}.menu-item-action{display:flex;align-items:center}.menu-item-text{flex:1 1 auto;white-space:pre-line;overflow-wrap:break-word;width:max-content}.menu-item-icon{margin-right:4px;margin-left:0;display:inline-block;flex:0 0 auto}.no-icon-item{width:18px}.menu-item-shortcut{flex:0 0 auto;padding-left:.5rem;opacity:.6}.app-menu .fullscreen{width:100vw;height:100vh}.app-menu.zoom4x hermes-dropdown-menu{position:fixed!important;max-width:none;margin:0;border-width:0;border-radius:0;transform:none!important}.app-menu.zoom4x .submenu-header-text{vertical-align:middle}.app-menu.zoom4x .btn-close-submenu{cursor:pointer;margin-right:4px;margin-left:0;margin-top:1px;display:inline-block;border:0;background:transparent;padding:0}.app-menu.zoom4x .btn-close-submenu hermes-icon{fill:var(--hermes-alias-typography-color-400)}.app-menu.zoom4x .btn-close-menu{margin-top:2px;display:block}\n"] }]
|
|
364
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ZoomLevelService, decorators: [{
|
|
365
|
+
type: Optional
|
|
366
|
+
}] }], propDecorators: { text: [{
|
|
367
|
+
type: Input
|
|
368
|
+
}], opened: [{
|
|
369
|
+
type: Output
|
|
370
|
+
}], closed: [{
|
|
371
|
+
type: Output
|
|
372
|
+
}], dropdown: [{
|
|
373
|
+
type: ViewChild,
|
|
374
|
+
args: [HermesDropdown]
|
|
375
|
+
}], dropdownElRef: [{
|
|
376
|
+
type: ViewChild,
|
|
377
|
+
args: [HermesDropdown, { read: ElementRef }]
|
|
378
|
+
}], menuItems: [{
|
|
379
|
+
type: ContentChildren,
|
|
380
|
+
args: [MenuItem]
|
|
381
|
+
}], documentContextMenu: [{
|
|
382
|
+
type: HostListener,
|
|
383
|
+
args: ['document:contextmenu', ['$event']]
|
|
384
|
+
}] } });
|
|
385
|
+
|
|
386
|
+
/*
|
|
387
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
388
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
389
|
+
* This software is released under MIT license.
|
|
390
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
391
|
+
*/
|
|
392
|
+
class MenuActionComponent extends MenuItem {
|
|
393
|
+
constructor() {
|
|
394
|
+
super(...arguments);
|
|
395
|
+
this.type = MenuItemType.action;
|
|
396
|
+
this.enabled = true;
|
|
397
|
+
this.handle = new EventEmitter(true);
|
|
398
|
+
}
|
|
399
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: MenuActionComponent, isStandalone: false, selector: "appfx-menu-action", inputs: { iconClass: "iconClass", text: "text", shortcut: "shortcut", enabled: "enabled" }, outputs: { handle: "handle" }, providers: [
|
|
401
|
+
{
|
|
402
|
+
provide: MenuItem,
|
|
403
|
+
useExisting: forwardRef(() => MenuActionComponent),
|
|
404
|
+
},
|
|
405
|
+
], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
406
|
+
}
|
|
407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuActionComponent, decorators: [{
|
|
408
|
+
type: Component,
|
|
409
|
+
args: [{
|
|
410
|
+
selector: 'appfx-menu-action',
|
|
411
|
+
standalone: false,
|
|
412
|
+
template: '',
|
|
413
|
+
providers: [
|
|
414
|
+
{
|
|
415
|
+
provide: MenuItem,
|
|
416
|
+
useExisting: forwardRef(() => MenuActionComponent),
|
|
417
|
+
},
|
|
418
|
+
],
|
|
419
|
+
}]
|
|
420
|
+
}], propDecorators: { iconClass: [{
|
|
421
|
+
type: Input
|
|
422
|
+
}], text: [{
|
|
423
|
+
type: Input
|
|
424
|
+
}], shortcut: [{
|
|
425
|
+
type: Input
|
|
426
|
+
}], enabled: [{
|
|
427
|
+
type: Input
|
|
428
|
+
}], handle: [{
|
|
429
|
+
type: Output
|
|
430
|
+
}] } });
|
|
431
|
+
|
|
432
|
+
/*
|
|
433
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
434
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
435
|
+
* This software is released under MIT license.
|
|
436
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
437
|
+
*/
|
|
438
|
+
class MenuHeaderComponent extends MenuItem {
|
|
439
|
+
constructor() {
|
|
440
|
+
super(...arguments);
|
|
441
|
+
this.type = MenuItemType.header;
|
|
442
|
+
}
|
|
443
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
444
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: MenuHeaderComponent, isStandalone: false, selector: "appfx-menu-header", inputs: { iconClass: "iconClass", text: "text" }, providers: [
|
|
445
|
+
{
|
|
446
|
+
provide: MenuItem,
|
|
447
|
+
useExisting: forwardRef(() => MenuHeaderComponent),
|
|
448
|
+
},
|
|
449
|
+
], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
450
|
+
}
|
|
451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuHeaderComponent, decorators: [{
|
|
452
|
+
type: Component,
|
|
453
|
+
args: [{
|
|
454
|
+
selector: 'appfx-menu-header',
|
|
455
|
+
standalone: false,
|
|
456
|
+
template: '',
|
|
457
|
+
providers: [
|
|
458
|
+
{
|
|
459
|
+
provide: MenuItem,
|
|
460
|
+
useExisting: forwardRef(() => MenuHeaderComponent),
|
|
461
|
+
},
|
|
462
|
+
],
|
|
463
|
+
}]
|
|
464
|
+
}], propDecorators: { iconClass: [{
|
|
465
|
+
type: Input
|
|
466
|
+
}], text: [{
|
|
467
|
+
type: Input
|
|
468
|
+
}] } });
|
|
469
|
+
|
|
470
|
+
/*
|
|
471
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
472
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
473
|
+
* This software is released under MIT license.
|
|
474
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
475
|
+
*/
|
|
476
|
+
class MenuSeparatorComponent extends MenuItem {
|
|
477
|
+
constructor() {
|
|
478
|
+
super(...arguments);
|
|
479
|
+
this.type = MenuItemType.separator;
|
|
480
|
+
}
|
|
481
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuSeparatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
482
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: MenuSeparatorComponent, isStandalone: false, selector: "appfx-menu-separator", providers: [
|
|
483
|
+
{
|
|
484
|
+
provide: MenuItem,
|
|
485
|
+
useExisting: forwardRef(() => MenuSeparatorComponent),
|
|
486
|
+
},
|
|
487
|
+
], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
488
|
+
}
|
|
489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: MenuSeparatorComponent, decorators: [{
|
|
490
|
+
type: Component,
|
|
491
|
+
args: [{
|
|
492
|
+
selector: 'appfx-menu-separator',
|
|
493
|
+
standalone: false,
|
|
494
|
+
template: '',
|
|
495
|
+
providers: [
|
|
496
|
+
{
|
|
497
|
+
provide: MenuItem,
|
|
498
|
+
useExisting: forwardRef(() => MenuSeparatorComponent),
|
|
499
|
+
},
|
|
500
|
+
],
|
|
501
|
+
}]
|
|
502
|
+
}] });
|
|
503
|
+
|
|
504
|
+
/*
|
|
505
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
506
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
507
|
+
* This software is released under MIT license.
|
|
508
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
509
|
+
*/
|
|
510
|
+
class AppfxMenuModule {
|
|
511
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
512
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: AppfxMenuModule, declarations: [FocusableDropdownItemDirective,
|
|
513
|
+
FocusableItemCollectorComponent,
|
|
514
|
+
FocusableMenuDirective,
|
|
515
|
+
MenuActionComponent,
|
|
516
|
+
MenuComponent,
|
|
517
|
+
MenuHeaderComponent,
|
|
518
|
+
MenuOutletComponent,
|
|
519
|
+
MenuSeparatorComponent], imports: [HermesDropdownModule, CommonModule], exports: [MenuActionComponent, MenuComponent, MenuHeaderComponent, MenuOutletComponent, MenuSeparatorComponent] }); }
|
|
520
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxMenuModule, providers: [
|
|
521
|
+
// Enable 200% and 400% zoom support
|
|
522
|
+
ZoomLevelService,
|
|
523
|
+
], imports: [HermesDropdownModule, CommonModule] }); }
|
|
524
|
+
}
|
|
525
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxMenuModule, decorators: [{
|
|
526
|
+
type: NgModule,
|
|
527
|
+
args: [{
|
|
528
|
+
imports: [HermesDropdownModule, CommonModule],
|
|
529
|
+
declarations: [
|
|
530
|
+
FocusableDropdownItemDirective,
|
|
531
|
+
FocusableItemCollectorComponent,
|
|
532
|
+
FocusableMenuDirective,
|
|
533
|
+
MenuActionComponent,
|
|
534
|
+
MenuComponent,
|
|
535
|
+
MenuHeaderComponent,
|
|
536
|
+
MenuOutletComponent,
|
|
537
|
+
MenuSeparatorComponent,
|
|
538
|
+
],
|
|
539
|
+
providers: [
|
|
540
|
+
// Enable 200% and 400% zoom support
|
|
541
|
+
ZoomLevelService,
|
|
542
|
+
],
|
|
543
|
+
exports: [MenuActionComponent, MenuComponent, MenuHeaderComponent, MenuOutletComponent, MenuSeparatorComponent],
|
|
544
|
+
}]
|
|
545
|
+
}] });
|
|
546
|
+
|
|
547
|
+
/*
|
|
548
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
549
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
550
|
+
* This software is released under MIT license.
|
|
551
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
552
|
+
*/
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Generated bundle index. Do not edit.
|
|
556
|
+
*/
|
|
557
|
+
|
|
558
|
+
export { AppfxMenuModule, MenuActionComponent, MenuComponent, MenuHeaderComponent, MenuItem, MenuItemType, MenuOutletComponent, MenuOutletService, MenuSeparatorComponent, NestedMenu };
|
|
559
|
+
//# sourceMappingURL=hermes-ui-angular-addons-menu.mjs.map
|