@skyux/popovers 12.28.0 → 12.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -689,11 +689,11 @@ class SkyDropdownComponent {
|
|
|
689
689
|
this.messageStream?.next({ type });
|
|
690
690
|
}
|
|
691
691
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
692
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SkyDropdownComponent, isStandalone: false, selector: "sky-dropdown", inputs: { buttonStyle: "buttonStyle", buttonType: "buttonType", disabled: "disabled", label: "label", horizontalAlignment: "horizontalAlignment", messageStream: "messageStream", title: "title", trigger: "trigger" }, queries: [{ propertyName: "customTriggerButton", first: true, predicate: SkyDropdownTriggerDirective, descendants: true }], viewQueries: [{ propertyName: "menuContainerElementRef", first: true, predicate: ["menuContainerElementRef"], descendants: true, read: ElementRef }, { propertyName: "menuContainerTemplateRef", first: true, predicate: ["menuContainerTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButton", first: true, predicate: ["triggerButton"], descendants: true, read: SkyDropdownTriggerDirective }], ngImport: i0, template: "<div class=\"sky-dropdown\">\n <ng-content select=\"[skyDropdownTrigger]\">\n <button\n #triggerButton\n class=\"sky-btn sky-dropdown-button\"\n skyDropdownTrigger\n type=\"button\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n >\n @switch (buttonType) {\n @case ('context-menu') {\n <sky-icon *skyThemeIf=\"'modern'\" iconName=\"more-actions\" />\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"more-actions\" />\n }\n @default {\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\" />\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n class=\"sky-dropdown-caret\"\n iconName=\"chevron-down\"\n iconSize=\"s\"\n />\n </div>\n </div>\n }\n }\n </button>\n </ng-content>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n #menuContainerElementRef\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n >\n <ng-content select=\"sky-dropdown-menu\" />\n </div>\n</ng-template>\n<span\n skyScreenReaderLabel\n [createLabel]=\"\n buttonType === 'context-menu' &&\n (contentInfoObs | async)?.descriptor?.type === 'elementId'\n \"\n [attr.id]=\"screenReaderLabelContextMenuId\"\n>\n {{\n 'skyux_dropdown_context_menu_with_content_descriptor_el_default_label'\n | skyLibResources\n }}\n</span>\n", styles: [".sky-dropdown:not(.sky-theme-modern *){--sky-override-caret-margin-left: 10px;--sky-override-context-menu-border-radius: 50%;--sky-override-context-menu-font-size: 15px;--sky-override-context-menu-line-height: 1.428571429;--sky-override-context-menu-padding: 3px;--sky-override-context-menu-height-width: 30px}.sky-dropdown-button-type-tab:not(.sky-theme-modern *){--sky-override-tab-border-bottom: none;--sky-override-tab-button-radius: 4px;--sky-override-tab-dropdown-color: var(--sky-text-color-on-dark);--sky-override-tab-font-size: 15px;--sky-override-tab-font-weight: 600;--sky-override-tab-line-height: 1.8;--sky-override-tab-padding: 8px 16px;--sky-override-tab-selected-background-color: var( --sky-background-color-primary-dark )}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown{--sky-override-context-menu-font-size: var(--sky-font-size-body-m);--sky-override-context-menu-line-height: calc(20 / 14);--sky-override-context-menu-padding: var(--modern-size-3) var(--modern-size-8)}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown-button-type-tab{--sky-override-dropdown-button-type-tab-box-shadow-focus: var( --sky-elevation-focus );--sky-override-tab-button-radius: 0;--sky-override-tab-line-height: 1.8;--sky-override-tab-selected-background-color: var(--modern-color-transparent);--sky-override-tab-selected-border-bottom-size: var(--modern-size-3)}.sky-dropdown .sky-dropdown-button-type-tab{background-color:var(--sky-override-tab-selected-background-color, var(--sky-color-background-selected
|
|
692
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SkyDropdownComponent, isStandalone: false, selector: "sky-dropdown", inputs: { buttonStyle: "buttonStyle", buttonType: "buttonType", disabled: "disabled", label: "label", horizontalAlignment: "horizontalAlignment", messageStream: "messageStream", title: "title", trigger: "trigger" }, queries: [{ propertyName: "customTriggerButton", first: true, predicate: SkyDropdownTriggerDirective, descendants: true }], viewQueries: [{ propertyName: "menuContainerElementRef", first: true, predicate: ["menuContainerElementRef"], descendants: true, read: ElementRef }, { propertyName: "menuContainerTemplateRef", first: true, predicate: ["menuContainerTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButton", first: true, predicate: ["triggerButton"], descendants: true, read: SkyDropdownTriggerDirective }], ngImport: i0, template: "<div class=\"sky-dropdown\">\n <ng-content select=\"[skyDropdownTrigger]\">\n <button\n #triggerButton\n class=\"sky-btn sky-dropdown-button\"\n skyDropdownTrigger\n type=\"button\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n >\n @switch (buttonType) {\n @case ('context-menu') {\n <sky-icon *skyThemeIf=\"'modern'\" iconName=\"more-actions\" />\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"more-actions\" />\n }\n @default {\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\" />\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n class=\"sky-dropdown-caret\"\n iconName=\"chevron-down\"\n iconSize=\"s\"\n />\n </div>\n </div>\n }\n }\n </button>\n </ng-content>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n #menuContainerElementRef\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n >\n <ng-content select=\"sky-dropdown-menu\" />\n </div>\n</ng-template>\n<span\n skyScreenReaderLabel\n [createLabel]=\"\n buttonType === 'context-menu' &&\n (contentInfoObs | async)?.descriptor?.type === 'elementId'\n \"\n [attr.id]=\"screenReaderLabelContextMenuId\"\n>\n {{\n 'skyux_dropdown_context_menu_with_content_descriptor_el_default_label'\n | skyLibResources\n }}\n</span>\n", styles: [".sky-dropdown:not(.sky-theme-modern *){--sky-override-caret-margin-left: 10px;--sky-override-context-menu-border-radius: 50%;--sky-override-context-menu-font-size: 15px;--sky-override-context-menu-line-height: 1.428571429;--sky-override-context-menu-padding: 3px;--sky-override-context-menu-height-width: 30px}.sky-dropdown-button-type-tab:not(.sky-theme-modern *){--sky-override-tab-border-bottom: none;--sky-override-tab-button-radius: 4px;--sky-override-tab-dropdown-color: var(--sky-text-color-on-dark);--sky-override-tab-font-size: 15px;--sky-override-tab-font-weight: 600;--sky-override-tab-line-height: 1.8;--sky-override-tab-padding: 8px 16px;--sky-override-tab-selected-background-color: var( --sky-background-color-primary-dark )}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown{--sky-override-context-menu-font-size: var(--sky-font-size-body-m);--sky-override-context-menu-line-height: calc(20 / 14);--sky-override-context-menu-padding: var(--modern-size-3) var(--modern-size-8)}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown-button-type-tab{--sky-override-dropdown-button-type-tab-box-shadow-focus: var( --sky-elevation-focus );--sky-override-tab-button-radius: 0;--sky-override-tab-dropdown-color: var(--sky-color-text-default);--sky-override-tab-line-height: 1.8;--sky-override-tab-selected-background-color: var(--modern-color-transparent);--sky-override-tab-selected-border-bottom-size: var(--modern-size-3)}.sky-dropdown .sky-dropdown-button-type-tab{background-color:var(--sky-override-tab-selected-background-color, var(--sky-color-background-tab-selected));border:none;box-shadow:none;border-radius:var(--sky-override-tab-button-radius, var(--sky-border-radius-s)) var(--sky-override-tab-button-radius, var(--sky-border-radius-s)) 0 0;color:var(--sky-override-tab-dropdown-color, var(--sky-color-text-selected));border-bottom:var(--sky-override-tab-border-bottom, var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l)) var(--sky-border-style-accent) var(--sky-color-border-selected));cursor:pointer;display:inline-block;font-size:var(--sky-override-tab-font-size, var(--sky-font-size-body-m));font-weight:var(--sky-override-tab-font-weight, var(--sky-font-weight-body-m));line-height:var(--sky-override-tab-line-height, var(--sky-font-line_height-body-m));padding:var(--sky-override-tab-padding, var(--sky-comp-tab-horizontal-space-inset-top) var(--sky-comp-tab-horizontal-space-inset-right) calc(var(--sky-comp-tab-horizontal-space-inset-bottom) - var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l))) var(--sky-comp-tab-horizontal-space-inset-left));max-width:100%;text-align:left}.sky-dropdown-button-type-context-menu{border-radius:var(--sky-override-context-menu-border-radius, var(--sky-border-radius-s));padding:var(--sky-override-context-menu-padding, var(--sky-comp-button-borderless-space-inset-top) var(--sky-comp-button-borderless-space-inset-right) var(--sky-comp-button-borderless-space-inset-bottom) var(--sky-comp-button-borderless-space-inset-left));font-size:var(--sky-override-context-menu-font-size, var(--sky-font-size-body-l));line-height:var(--sky-override-context-menu-line-height, 1);height:var(--sky-override-context-menu-height-width);width:var(--sky-override-context-menu-height-width)}:host-context(.sky-toolbar-container) .sky-dropdown-button.sky-btn-link{color:#212327}.sky-dropdown-caret{margin-left:var(--sky-override-caret-margin-left, var(--sky-space-gap-icon-m))}.sky-dropdown-button-container{display:flex}.sky-dropdown-button-content-container{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-dropdown-button-icon-container{flex-grow:1}.sky-dropdown-menu-container{position:fixed}.hidden{visibility:hidden}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible{outline:none}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible:not(:active){outline:solid var(--sky-border-width-selected-m) var(--sky-color-border-selected);outline-offset:calc(var(--sky-border-width-selected-m) * -1);box-shadow:var(--sky-override-dropdown-button-type-tab-box-shadow-focus, none)}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu{background-color:var(--sky-color-background-action-tertiary-base)}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base)}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible{outline:none}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible:not(:active){outline:solid var(--sky-border-width-selected-m) var(--sky-color-border-selected);outline-offset:calc(var(--sky-border-width-selected-m) * -1);box-shadow:var(--sky-override-dropdown-button-type-tab-box-shadow-focus, none)}.sky-theme-modern .sky-dropdown-button-type-context-menu{background-color:var(--sky-color-background-action-tertiary-base)}.sky-theme-modern .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SkyDropdownTriggerDirective, selector: "[skyDropdownTrigger]" }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "directive", type: i1$1.SkyScreenReaderLabelDirective, selector: "[skyScreenReaderLabel]", inputs: ["createLabel"] }, { kind: "directive", type: i3$1.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
693
693
|
}
|
|
694
694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyDropdownComponent, decorators: [{
|
|
695
695
|
type: Component,
|
|
696
|
-
args: [{ selector: 'sky-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"sky-dropdown\">\n <ng-content select=\"[skyDropdownTrigger]\">\n <button\n #triggerButton\n class=\"sky-btn sky-dropdown-button\"\n skyDropdownTrigger\n type=\"button\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n >\n @switch (buttonType) {\n @case ('context-menu') {\n <sky-icon *skyThemeIf=\"'modern'\" iconName=\"more-actions\" />\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"more-actions\" />\n }\n @default {\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\" />\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n class=\"sky-dropdown-caret\"\n iconName=\"chevron-down\"\n iconSize=\"s\"\n />\n </div>\n </div>\n }\n }\n </button>\n </ng-content>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n #menuContainerElementRef\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n >\n <ng-content select=\"sky-dropdown-menu\" />\n </div>\n</ng-template>\n<span\n skyScreenReaderLabel\n [createLabel]=\"\n buttonType === 'context-menu' &&\n (contentInfoObs | async)?.descriptor?.type === 'elementId'\n \"\n [attr.id]=\"screenReaderLabelContextMenuId\"\n>\n {{\n 'skyux_dropdown_context_menu_with_content_descriptor_el_default_label'\n | skyLibResources\n }}\n</span>\n", styles: [".sky-dropdown:not(.sky-theme-modern *){--sky-override-caret-margin-left: 10px;--sky-override-context-menu-border-radius: 50%;--sky-override-context-menu-font-size: 15px;--sky-override-context-menu-line-height: 1.428571429;--sky-override-context-menu-padding: 3px;--sky-override-context-menu-height-width: 30px}.sky-dropdown-button-type-tab:not(.sky-theme-modern *){--sky-override-tab-border-bottom: none;--sky-override-tab-button-radius: 4px;--sky-override-tab-dropdown-color: var(--sky-text-color-on-dark);--sky-override-tab-font-size: 15px;--sky-override-tab-font-weight: 600;--sky-override-tab-line-height: 1.8;--sky-override-tab-padding: 8px 16px;--sky-override-tab-selected-background-color: var( --sky-background-color-primary-dark )}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown{--sky-override-context-menu-font-size: var(--sky-font-size-body-m);--sky-override-context-menu-line-height: calc(20 / 14);--sky-override-context-menu-padding: var(--modern-size-3) var(--modern-size-8)}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown-button-type-tab{--sky-override-dropdown-button-type-tab-box-shadow-focus: var( --sky-elevation-focus );--sky-override-tab-button-radius: 0;--sky-override-tab-line-height: 1.8;--sky-override-tab-selected-background-color: var(--modern-color-transparent);--sky-override-tab-selected-border-bottom-size: var(--modern-size-3)}.sky-dropdown .sky-dropdown-button-type-tab{background-color:var(--sky-override-tab-selected-background-color, var(--sky-color-background-selected
|
|
696
|
+
args: [{ selector: 'sky-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"sky-dropdown\">\n <ng-content select=\"[skyDropdownTrigger]\">\n <button\n #triggerButton\n class=\"sky-btn sky-dropdown-button\"\n skyDropdownTrigger\n type=\"button\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n >\n @switch (buttonType) {\n @case ('context-menu') {\n <sky-icon *skyThemeIf=\"'modern'\" iconName=\"more-actions\" />\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"more-actions\" />\n }\n @default {\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\" />\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n class=\"sky-dropdown-caret\"\n iconName=\"chevron-down\"\n iconSize=\"s\"\n />\n </div>\n </div>\n }\n }\n </button>\n </ng-content>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n #menuContainerElementRef\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n >\n <ng-content select=\"sky-dropdown-menu\" />\n </div>\n</ng-template>\n<span\n skyScreenReaderLabel\n [createLabel]=\"\n buttonType === 'context-menu' &&\n (contentInfoObs | async)?.descriptor?.type === 'elementId'\n \"\n [attr.id]=\"screenReaderLabelContextMenuId\"\n>\n {{\n 'skyux_dropdown_context_menu_with_content_descriptor_el_default_label'\n | skyLibResources\n }}\n</span>\n", styles: [".sky-dropdown:not(.sky-theme-modern *){--sky-override-caret-margin-left: 10px;--sky-override-context-menu-border-radius: 50%;--sky-override-context-menu-font-size: 15px;--sky-override-context-menu-line-height: 1.428571429;--sky-override-context-menu-padding: 3px;--sky-override-context-menu-height-width: 30px}.sky-dropdown-button-type-tab:not(.sky-theme-modern *){--sky-override-tab-border-bottom: none;--sky-override-tab-button-radius: 4px;--sky-override-tab-dropdown-color: var(--sky-text-color-on-dark);--sky-override-tab-font-size: 15px;--sky-override-tab-font-weight: 600;--sky-override-tab-line-height: 1.8;--sky-override-tab-padding: 8px 16px;--sky-override-tab-selected-background-color: var( --sky-background-color-primary-dark )}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown{--sky-override-context-menu-font-size: var(--sky-font-size-body-m);--sky-override-context-menu-line-height: calc(20 / 14);--sky-override-context-menu-padding: var(--modern-size-3) var(--modern-size-8)}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-dropdown-button-type-tab{--sky-override-dropdown-button-type-tab-box-shadow-focus: var( --sky-elevation-focus );--sky-override-tab-button-radius: 0;--sky-override-tab-dropdown-color: var(--sky-color-text-default);--sky-override-tab-line-height: 1.8;--sky-override-tab-selected-background-color: var(--modern-color-transparent);--sky-override-tab-selected-border-bottom-size: var(--modern-size-3)}.sky-dropdown .sky-dropdown-button-type-tab{background-color:var(--sky-override-tab-selected-background-color, var(--sky-color-background-tab-selected));border:none;box-shadow:none;border-radius:var(--sky-override-tab-button-radius, var(--sky-border-radius-s)) var(--sky-override-tab-button-radius, var(--sky-border-radius-s)) 0 0;color:var(--sky-override-tab-dropdown-color, var(--sky-color-text-selected));border-bottom:var(--sky-override-tab-border-bottom, var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l)) var(--sky-border-style-accent) var(--sky-color-border-selected));cursor:pointer;display:inline-block;font-size:var(--sky-override-tab-font-size, var(--sky-font-size-body-m));font-weight:var(--sky-override-tab-font-weight, var(--sky-font-weight-body-m));line-height:var(--sky-override-tab-line-height, var(--sky-font-line_height-body-m));padding:var(--sky-override-tab-padding, var(--sky-comp-tab-horizontal-space-inset-top) var(--sky-comp-tab-horizontal-space-inset-right) calc(var(--sky-comp-tab-horizontal-space-inset-bottom) - var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l))) var(--sky-comp-tab-horizontal-space-inset-left));max-width:100%;text-align:left}.sky-dropdown-button-type-context-menu{border-radius:var(--sky-override-context-menu-border-radius, var(--sky-border-radius-s));padding:var(--sky-override-context-menu-padding, var(--sky-comp-button-borderless-space-inset-top) var(--sky-comp-button-borderless-space-inset-right) var(--sky-comp-button-borderless-space-inset-bottom) var(--sky-comp-button-borderless-space-inset-left));font-size:var(--sky-override-context-menu-font-size, var(--sky-font-size-body-l));line-height:var(--sky-override-context-menu-line-height, 1);height:var(--sky-override-context-menu-height-width);width:var(--sky-override-context-menu-height-width)}:host-context(.sky-toolbar-container) .sky-dropdown-button.sky-btn-link{color:#212327}.sky-dropdown-caret{margin-left:var(--sky-override-caret-margin-left, var(--sky-space-gap-icon-m))}.sky-dropdown-button-container{display:flex}.sky-dropdown-button-content-container{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-dropdown-button-icon-container{flex-grow:1}.sky-dropdown-menu-container{position:fixed}.hidden{visibility:hidden}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible{outline:none}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible:not(:active){outline:solid var(--sky-border-width-selected-m) var(--sky-color-border-selected);outline-offset:calc(var(--sky-border-width-selected-m) * -1);box-shadow:var(--sky-override-dropdown-button-type-tab-box-shadow-focus, none)}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu{background-color:var(--sky-color-background-action-tertiary-base)}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base)}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible{outline:none}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible:not(:active){outline:solid var(--sky-border-width-selected-m) var(--sky-color-border-selected);outline-offset:calc(var(--sky-border-width-selected-m) * -1);box-shadow:var(--sky-override-dropdown-button-type-tab-box-shadow-focus, none)}.sky-theme-modern .sky-dropdown-button-type-context-menu{background-color:var(--sky-color-background-action-tertiary-base)}.sky-theme-modern .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base)}\n"] }]
|
|
697
697
|
}], propDecorators: { buttonStyle: [{
|
|
698
698
|
type: Input
|
|
699
699
|
}], buttonType: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-popovers.mjs","sources":["../../../../../libs/components/popovers/src/lib/modules/shared/sky-popovers-resources.module.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/types/dropdown-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-trigger.directive.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.module.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-animation.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-context.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/popover-sr-pointer.service.ts","../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.directive.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.module.ts","../../../../../libs/components/popovers/src/skyux-popovers.ts"],"sourcesContent":["/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-popovers' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_dropdown_context_menu_default_label: { message: 'Context menu' },\n skyux_dropdown_context_menu_with_content_descriptor_default_label: {\n message: 'Context menu for {0}',\n },\n skyux_dropdown_context_menu_with_content_descriptor_el_default_label: {\n message: 'Context menu for ',\n },\n },\n 'FR-CA': {\n skyux_dropdown_context_menu_default_label: { message: 'Menu du contexte' },\n skyux_dropdown_context_menu_with_content_descriptor_default_label: {\n message: 'Menu du contexte pour {0}',\n },\n skyux_dropdown_context_menu_with_content_descriptor_el_default_label: {\n message: 'Menu du contexte pour ',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyPopoversResourcesModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the button for the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n standalone: false,\n})\nexport class SkyDropdownButtonComponent {}\n","<ng-content />\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Specifies the items to display on the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkyDropdownItemComponent implements AfterViewInit {\n /**\n * The ARIA role for the dropdown menu item\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the item functions and what it controls. For information about\n * how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menuitem\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menuitem';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n public isActive = false;\n\n #_ariaRole = 'menuitem';\n\n #changeDetector: ChangeDetectorRef;\n #renderer: Renderer2;\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n renderer: Renderer2,\n ) {\n this.#changeDetector = changeDetector;\n this.#renderer = renderer;\n }\n\n public ngAfterViewInit(): void {\n // Make sure anchor elements are tab-able.\n const buttonElement = this.#getButtonElement();\n /* istanbul ignore else */\n if (buttonElement) {\n this.#renderer.setAttribute(buttonElement, 'tabIndex', '0');\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public focusElement(enableNativeFocus: boolean): void {\n this.isActive = true;\n\n if (enableNativeFocus) {\n this.#getButtonElement()?.focus();\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public isFocusable(): boolean {\n const isFocusable =\n this.#getButtonElement()?.getAttribute('disabled') === null;\n return isFocusable;\n }\n\n public resetState(): void {\n this.isActive = false;\n this.#changeDetector.markForCheck();\n }\n\n #getButtonElement(): HTMLButtonElement | null {\n return this.elementRef.nativeElement.querySelector('button,a');\n }\n}\n","<div\n class=\"sky-dropdown-item\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-dropdown-item-active': isActive\n }\"\n>\n <ng-content />\n</div>\n","/**\n * The type of message to send.\n * @internal\n */\nexport enum SkyDropdownMessageType {\n /**\n * Opens the dropdown menu.\n */\n Open = 0,\n\n /**\n * Closes the dropdown menu.\n */\n Close = 1,\n\n /**\n * Puts focus on the dropdown button.\n */\n FocusTriggerButton = 2,\n\n /**\n * Puts focus on the next item in the dropdown menu.\n */\n FocusNextItem = 3,\n\n /**\n * Puts focus on the previous item in the dropdown menu.\n */\n FocusPreviousItem = 4,\n\n /**\n * Repositions the dropdown menu next to the dropdown button. This is useful for when the\n * dropdown menu's width and height change while it is open.\n */\n Reposition = 5,\n\n /**\n * Puts focus on the first item in the dropdown menu.\n */\n FocusFirstItem = 6,\n\n /**\n * Puts focus on the last item in the dropdown menu.\n */\n FocusLastItem = 7,\n}\n","import { SkyAffixHorizontalAlignment } from '@skyux/core';\n\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyDropdownHorizontalAlignment,\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import {\n Directive,\n ElementRef,\n OnDestroy,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject, of, switchMap } from 'rxjs';\n\nimport { SkyDropdownButtonType } from './types/dropdown-button-type';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyDropdownTrigger]',\n standalone: true,\n host: {\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.aria-controls]': 'isOpen() ? menuId() : null',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[attr.aria-haspopup]': 'menuAriaRole()',\n '[attr.title]': 'title()',\n '[attr.disabled]': 'disabled() || undefined',\n '(click)': 'triggerClick.next($event)',\n '(keydown)': 'triggerKeyDown.next($event)',\n '(mouseenter)': 'triggerMouseEnter.next($event)',\n '(mouseleave)': 'triggerMouseLeave.next($event)',\n },\n})\nexport class SkyDropdownTriggerDirective implements OnDestroy {\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n public readonly nativeElement = inject(ElementRef).nativeElement;\n\n // Set by the dropdown component.\n public readonly isOpen = signal<boolean | undefined>(undefined);\n public readonly menuId = signal<string | null | undefined>(undefined);\n public readonly menuAriaRole = signal<string | undefined>(undefined);\n public readonly label = signal<string | undefined>(undefined);\n public readonly buttonType = signal<SkyDropdownButtonType | undefined>(\n undefined,\n );\n public readonly screenReaderLabelContextMenuId = signal<string | undefined>(\n undefined,\n );\n public readonly title = signal<string | undefined>(undefined);\n public readonly disabled = signal<boolean | undefined>(undefined);\n\n public readonly triggerClick = new Subject<MouseEvent>();\n public readonly triggerKeyDown = new Subject<KeyboardEvent>();\n public readonly triggerMouseEnter = new Subject<MouseEvent>();\n public readonly triggerMouseLeave = new Subject<MouseEvent>();\n\n readonly #contentInfo = toSignal(\n inject(SkyContentInfoProvider, {\n optional: true,\n })?.getInfo() ?? of(undefined),\n );\n\n readonly #contextMenuLabel = toSignal(\n toObservable(this.#contentInfo).pipe(\n switchMap((contentInfo) => {\n const contentInfoDescriptor = contentInfo?.descriptor;\n\n if (contentInfoDescriptor) {\n if (contentInfoDescriptor.type === 'text') {\n return this.#resourcesSvc.getString(\n 'skyux_dropdown_context_menu_with_content_descriptor_default_label',\n contentInfoDescriptor.value,\n );\n }\n\n return of(undefined);\n }\n\n return this.#resourcesSvc.getString(\n 'skyux_dropdown_context_menu_default_label',\n );\n }),\n ),\n );\n\n protected readonly ariaLabel = computed(() => {\n const label = this.label();\n\n if (label) {\n return label;\n }\n\n if (this.buttonType() === 'context-menu') {\n return this.#contextMenuLabel();\n }\n\n return undefined;\n });\n\n protected readonly ariaLabelledby = computed(() => {\n return !this.label() &&\n this.buttonType() === 'context-menu' &&\n this.#contentInfo()?.descriptor?.type === 'elementId'\n ? this.screenReaderLabelContextMenuId() +\n ' ' +\n this.#contentInfo()?.descriptor?.value\n : undefined;\n });\n\n public ngOnDestroy(): void {\n this.triggerClick.complete();\n this.triggerKeyDown.complete();\n this.triggerMouseEnter.complete();\n this.triggerMouseLeave.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EnvironmentInjector,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAffixAutoFitContext,\n SkyAffixHorizontalAlignment,\n SkyAffixService,\n SkyAffixer,\n SkyContentInfoProvider,\n SkyIdService,\n SkyOverlayInstance,\n SkyOverlayService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { parseAffixHorizontalAlignment } from './dropdown-extensions';\nimport { SkyDropdownTriggerDirective } from './dropdown-trigger.directive';\nimport { SkyDropdownButtonType } from './types/dropdown-button-type';\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\nimport { SkyDropdownTriggerType } from './types/dropdown-trigger-type';\n\nconst DEFAULT_BUTTON_STYLE = 'default';\nconst DEFAULT_BUTTON_TYPE: SkyDropdownButtonType = 'select';\nconst DEFAULT_HORIZONTAL_ALIGNMENT: SkyAffixHorizontalAlignment = 'left';\nconst DEFAULT_TRIGGER_TYPE: SkyDropdownTriggerType = 'click';\n\n/**\n * Creates a dropdown menu that displays menu items that users may select.\n */\n@Component({\n selector: 'sky-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyDropdownComponent implements OnInit, OnDestroy {\n readonly #affixService = inject(SkyAffixService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #idSvc = inject(SkyIdService);\n readonly #overlayService = inject(SkyOverlayService);\n readonly #themeSvc = inject(SkyThemeService, { optional: true });\n readonly #zIndex = inject(SKY_STACKING_CONTEXT, { optional: true })?.zIndex;\n readonly #contentInfoProvider = inject(SkyContentInfoProvider, {\n optional: true,\n });\n\n /**\n * The background color for the dropdown button. Available values are `default`,\n * `primary`, and `link`. These values set the background color and hover behavior from the\n * [secondary and primary button classes](https://developer.blackbaud.com/skyux/components/button) respectively.\n * @default \"default\"\n */\n @Input()\n public set buttonStyle(value: string | undefined) {\n this.#_buttonStyle = value ?? DEFAULT_BUTTON_STYLE;\n }\n\n public get buttonStyle(): string {\n return this.#_buttonStyle;\n }\n\n /**\n * The type of button to render as the dropdown's trigger element. To display a button\n * with a caret, specify `'select'` and render the button text or icon in a\n * `sky-dropdown-button` element. To display a round button with an ellipsis, specify\n * `'context-menu'`.\n * @default \"select\"\n */\n @Input()\n public set buttonType(value: SkyDropdownButtonType | undefined) {\n this.#_buttonType = value ?? DEFAULT_BUTTON_TYPE;\n }\n\n public get buttonType(): SkyDropdownButtonType {\n return this.#_buttonType;\n }\n\n /**\n * Whether to disable the dropdown button.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n this.#_disabled = value;\n this.#updateTrigger();\n }\n\n public get disabled(): boolean | undefined {\n return this.#_disabled;\n }\n\n /**\n * The ARIA label for the dropdown. This sets the dropdown's `aria-label` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility). If multiple dropdowns with no label or the same label appear on the same page,\n * they must have unique ARIA labels that provide context, such as \"Context menu for Robert Hernandez\" or \"Edit Robert Hernandez.\"\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public set label(value: string | undefined) {\n this.#_label = value;\n this.#updateTrigger();\n }\n\n public get label(): string | undefined {\n return this.#_label;\n }\n\n protected readonly contentInfoObs = this.#contentInfoProvider?.getInfo();\n\n /**\n * The horizontal alignment of the dropdown menu in relation to the dropdown button.\n * @default \"left\"\n */\n @Input()\n public set horizontalAlignment(\n value: SkyDropdownHorizontalAlignment | undefined,\n ) {\n this.#_horizontalAlignment = value ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n }\n\n public get horizontalAlignment(): SkyDropdownHorizontalAlignment {\n return this.#_horizontalAlignment;\n }\n\n /**\n * The observable that sends commands to the dropdown. The commands should respect\n * the [[SkyDropdownMessage]] type.\n * @internal\n */\n @Input()\n public messageStream: Subject<SkyDropdownMessage> | undefined =\n new Subject<SkyDropdownMessage>();\n\n /**\n * The title to display in a tooltip when users hover the mouse over the dropdown button.\n */\n @Input()\n public set title(value: string | undefined) {\n this.#_title = value;\n this.#updateTrigger();\n }\n\n public get title(): string | undefined {\n return this.#_title;\n }\n\n /**\n * How users interact with the dropdown button to expose the dropdown menu.\n * We recommend the default `click` value because the `hover` value can pose\n * [accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) issues\n * for users on touch devices such as phones and tablets.\n * @deprecated We recommend against using this property. If you choose to use the deprecated\n * `hover` value anyway, we recommend that you not use it in combination with the `title`\n * property.\n * @default \"click\"\n */\n @Input()\n public set trigger(value: SkyDropdownTriggerType | undefined) {\n this.#_trigger = value ?? DEFAULT_TRIGGER_TYPE;\n }\n\n public get trigger(): SkyDropdownTriggerType {\n return this.#_trigger;\n }\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.#updateTrigger();\n this.#changeDetector.markForCheck();\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n @ViewChild('menuContainerElementRef', {\n read: ElementRef,\n })\n public set menuContainerElementRef(value: ElementRef | undefined) {\n if (value) {\n this.#destroyAffixer();\n this.#createAffixer(value);\n }\n }\n\n public set menuId(value: string | undefined) {\n this.#_menuId = value;\n this.#updateTrigger();\n }\n\n public get menuId(): string | undefined {\n return this.#_menuId;\n }\n\n public set menuAriaRole(value: string | undefined) {\n this.#_menuAriaRole = value;\n this.#updateTrigger();\n }\n\n public get menuAriaRole(): string | undefined {\n return this.#_menuAriaRole;\n }\n\n public isMouseEnter = false;\n\n public isVisible = false;\n\n @ViewChild('menuContainerTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public menuContainerTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('triggerButton', {\n read: SkyDropdownTriggerDirective,\n })\n public set triggerButton(value: SkyDropdownTriggerDirective | undefined) {\n this.#_triggerButton = value;\n this.#addEventListeners();\n this.#updateTrigger();\n }\n\n public get triggerButton(): SkyDropdownTriggerDirective | undefined {\n return this.#_customTriggerButton ?? this.#_triggerButton;\n }\n\n @ContentChild(SkyDropdownTriggerDirective)\n public set customTriggerButton(\n value: SkyDropdownTriggerDirective | undefined,\n ) {\n this.#_customTriggerButton = value;\n this.#addEventListeners();\n this.#updateTrigger();\n }\n\n protected screenReaderLabelContextMenuId = this.#idSvc.generateId();\n\n #affixer: SkyAffixer | undefined;\n #ngUnsubscribe = new Subject<void>();\n #triggerUnsubscribe = new Subject<void>();\n #overlay: SkyOverlayInstance | undefined;\n #positionTimeout: number | undefined;\n\n #_buttonStyle = DEFAULT_BUTTON_STYLE;\n #_buttonType = DEFAULT_BUTTON_TYPE;\n #_customTriggerButton: SkyDropdownTriggerDirective | undefined;\n #_disabled: boolean | undefined = false;\n #_horizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n #_isOpen = false;\n #_label: string | undefined;\n #_menuAriaRole: string | undefined;\n #_menuId: string | undefined;\n #_title: string | undefined;\n #_trigger = DEFAULT_TRIGGER_TYPE;\n #_triggerButton: SkyDropdownTriggerDirective | undefined;\n\n public ngOnInit(): void {\n this.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n // Load proper icons on theme change.\n this.#themeSvc?.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.#destroyAffixer();\n this.#destroyOverlay();\n clearTimeout(this.#positionTimeout);\n\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#triggerUnsubscribe.next();\n this.#triggerUnsubscribe.complete();\n }\n\n #updateTrigger(): void {\n const triggerButton = this.triggerButton;\n\n if (triggerButton) {\n triggerButton.buttonType.set(this.buttonType);\n triggerButton.disabled.set(this.disabled);\n triggerButton.isOpen.set(this.isOpen);\n triggerButton.label.set(this.label);\n triggerButton.menuAriaRole.set(this.menuAriaRole);\n triggerButton.menuId.set(this.menuId);\n triggerButton.title.set(this.title);\n triggerButton.disabled.set(this.disabled);\n triggerButton.screenReaderLabelContextMenuId.set(\n this.screenReaderLabelContextMenuId,\n );\n }\n }\n\n #addEventListeners(): void {\n this.#triggerUnsubscribe.next();\n this.#triggerUnsubscribe.complete();\n\n this.#triggerUnsubscribe = new Subject<void>();\n const triggerButton = this.triggerButton;\n\n if (triggerButton) {\n triggerButton.triggerClick\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe(() => {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n } else {\n this.#sendMessage(SkyDropdownMessageType.Open);\n // Wait for dropdown to open, then set focus on first item.\n setTimeout(() => {\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n });\n }\n });\n\n triggerButton.triggerKeyDown\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n /*istanbul ignore else*/\n this.#handleTriggerEscape(event);\n break;\n\n case 'tab':\n this.#handleTriggerTab();\n break;\n\n case 'arrowup':\n case 'up':\n this.#handleTriggerUp(event);\n break;\n\n case 'enter':\n case 'arrowdown':\n case 'down':\n case ' ': // Spacebar.\n this.#handleTriggerDown(event);\n break;\n }\n });\n\n triggerButton.triggerMouseEnter\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = true;\n if (this.trigger === 'hover') {\n this.#sendMessage(SkyDropdownMessageType.Open);\n }\n });\n\n triggerButton.triggerMouseLeave\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = false;\n if (this.trigger === 'hover') {\n // Allow the dropdown menu to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (!this.isMouseEnter) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n }\n\n #handleTriggerEscape(event: KeyboardEvent): void {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n }\n }\n\n #handleTriggerTab(): void {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n }\n\n #handleTriggerUp(event: KeyboardEvent): void {\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusLastItem);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n #handleTriggerDown(event: KeyboardEvent): void {\n /*istanbul ignore else*/\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n #createOverlay(): void {\n /* istanbul ignore next */\n if (this.#overlay) {\n return;\n }\n\n this.isVisible = false;\n\n if (this.menuContainerTemplateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n environmentInjector: this.#environmentInjector,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.attachTemplate(this.menuContainerTemplateRef);\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#sendMessage(SkyDropdownMessageType.Close);\n });\n\n this.#overlay = overlay;\n }\n\n this.#changeDetector.markForCheck();\n }\n\n #destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.#affixer) {\n this.#affixer.destroy();\n this.#affixer = undefined;\n }\n }\n\n #destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n #createAffixer(menuContainerElementRef: ElementRef): void {\n const affixer = (this.#affixer = this.#affixService.createAffixer(\n menuContainerElementRef,\n ));\n\n affixer.placementChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.isVisible = change.placement !== null;\n this.#changeDetector.markForCheck();\n });\n\n affixer.affixTo(this.triggerButton?.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment,\n ),\n isSticky: true,\n placement: 'below',\n });\n\n this.isVisible = true;\n\n this.#changeDetector.markForCheck();\n }\n\n #handleIncomingMessages(message: SkyDropdownMessage): void {\n if (!this.disabled) {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = true;\n this.#createOverlay();\n }\n break;\n\n case SkyDropdownMessageType.Close:\n this.isOpen = false;\n this.#destroyOverlay();\n break;\n\n case SkyDropdownMessageType.Reposition:\n // Only reposition the dropdown if it is already open.\n /* istanbul ignore else */\n if (this.isOpen && this.#affixer) {\n this.#affixer.reaffix();\n }\n break;\n\n case SkyDropdownMessageType.FocusTriggerButton:\n this.triggerButton?.nativeElement.focus();\n break;\n }\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.messageStream?.next({ type });\n }\n}\n","<div class=\"sky-dropdown\">\n <ng-content select=\"[skyDropdownTrigger]\">\n <button\n #triggerButton\n class=\"sky-btn sky-dropdown-button\"\n skyDropdownTrigger\n type=\"button\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n >\n @switch (buttonType) {\n @case ('context-menu') {\n <sky-icon *skyThemeIf=\"'modern'\" iconName=\"more-actions\" />\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"more-actions\" />\n }\n @default {\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\" />\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n class=\"sky-dropdown-caret\"\n iconName=\"chevron-down\"\n iconSize=\"s\"\n />\n </div>\n </div>\n }\n }\n </button>\n </ng-content>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n #menuContainerElementRef\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n >\n <ng-content select=\"sky-dropdown-menu\" />\n </div>\n</ng-template>\n<span\n skyScreenReaderLabel\n [createLabel]=\"\n buttonType === 'context-menu' &&\n (contentInfoObs | async)?.descriptor?.type === 'elementId'\n \"\n [attr.id]=\"screenReaderLabelContextMenuId\"\n>\n {{\n 'skyux_dropdown_context_menu_with_content_descriptor_el_default_label'\n | skyLibResources\n }}\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownComponent } from './dropdown.component';\nimport { SkyDropdownMenuChange } from './types/dropdown-menu-change';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\n\nlet nextId = 0;\n/**\n * Creates a menu that contains dropdown menu items.\n *\n */\n@Component({\n selector: 'sky-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkyDropdownMenuComponent implements AfterContentInit, OnDestroy {\n /**\n * The HTML element ID of the element that labels\n * the dropdown menu. This sets the dropdown menu's `aria-labelledby` attribute to provide a text equivalent for\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n */\n @Input()\n public ariaLabelledBy: string | undefined;\n\n /**\n * The ARIA role for the dropdown menu\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the dropdown menu functions and what it controls. The dropdown button\n * inherits this value to set its `aria-haspopup` property. For information\n * about how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menu\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menu';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n /**\n * Whether to use the browser's native focus function when users navigate through menu\n * items with the keyboard. To disable the native focus function, set this property to `false`.\n * For example, to let users interact with the dropdown menu but keep the keyboard focus on a\n * different element, set this property to `false`.\n * @default true\n * @internal\n */\n @Input()\n public set useNativeFocus(value: boolean | undefined) {\n this.#_useNativeFocus = value ?? true;\n }\n\n public get useNativeFocus(): boolean {\n return this.#_useNativeFocus;\n }\n\n /**\n * Fires when the dropdown menu's active index or selected item changes. This event provides an\n * observable to emit changes, and the response is of\n * the SkyDropdownMenuChange type.\n * @internal\n */\n @Output()\n public menuChanges = new EventEmitter<SkyDropdownMenuChange>();\n\n public dropdownMenuId = `sky-dropdown-menu-${++nextId}`;\n\n public set menuIndex(value: number) {\n if (value < 0) {\n value = this.menuItems.length - 1;\n }\n\n if (value >= this.menuItems.length) {\n value = 0;\n }\n\n this.#_menuIndex = value;\n }\n\n public get menuIndex(): number {\n return this.#_menuIndex;\n }\n\n @ContentChildren(SkyDropdownItemComponent, { descendants: true })\n public menuItems!: QueryList<SkyDropdownItemComponent>;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaRole = 'menu';\n\n #_menuIndex = 0;\n\n #_useNativeFocus = true;\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #dropdownComponent: SkyDropdownComponent | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n @Optional() dropdownComponent?: SkyDropdownComponent,\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#dropdownComponent = dropdownComponent;\n }\n\n public ngAfterContentInit(): void {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.menuId = this.dropdownMenuId;\n this.#dropdownComponent.menuAriaRole = this.ariaRole;\n\n this.#dropdownComponent.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n case SkyDropdownMessageType.Close:\n this.reset();\n break;\n\n case SkyDropdownMessageType.FocusFirstItem:\n this.focusFirstItem();\n break;\n\n case SkyDropdownMessageType.FocusNextItem:\n this.focusNextItem();\n break;\n\n case SkyDropdownMessageType.FocusPreviousItem:\n this.focusPreviousItem();\n break;\n\n case SkyDropdownMessageType.FocusLastItem:\n this.focusLastItem();\n break;\n }\n });\n\n this.menuChanges\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change: SkyDropdownMenuChange) => {\n // Close the dropdown when a menu item is selected.\n if (change.selectedItem) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n }\n\n if (change.items) {\n // Update the popover style and position whenever the number of items changes.\n this.#sendMessage(SkyDropdownMessageType.Reposition);\n }\n });\n }\n\n // Reset dropdown whenever the menu items change.\n this.menuItems.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((items: QueryList<SkyDropdownItemComponent>) => {\n this.reset();\n this.menuChanges.emit({\n items: items.toArray(),\n });\n });\n\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public focusFirstItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = 0;\n\n const firstItem = this.#getItemByIndex(this.menuIndex);\n if (firstItem && firstItem.isFocusable()) {\n this.#focusItem(firstItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public focusLastItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = this.menuItems.length - 1;\n\n const lastItem = this.#getItemByIndex(this.menuIndex);\n if (lastItem && lastItem.isFocusable()) {\n this.#focusItem(lastItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusPreviousItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex--;\n\n const previousItem = this.#getItemByIndex(this.menuIndex);\n if (previousItem && previousItem.isFocusable()) {\n this.#focusItem(previousItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusNextItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex++;\n\n const nextItem = this.#getItemByIndex(this.menuIndex);\n if (nextItem && nextItem.isFocusable()) {\n this.#focusItem(nextItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public reset(): void {\n this.#_menuIndex = -1;\n this.#resetItemsActiveState();\n this.#changeDetector.markForCheck();\n }\n\n #resetItemsActiveState(): void {\n this.menuItems.forEach((item: SkyDropdownItemComponent) => {\n item.resetState();\n });\n }\n\n #focusItem(item: SkyDropdownItemComponent): void {\n this.#resetItemsActiveState();\n item.focusElement(this.useNativeFocus);\n this.menuChanges.emit({\n activeIndex: this.menuIndex,\n });\n }\n\n #getItemByIndex(index: number): SkyDropdownItemComponent | undefined {\n return this.menuItems.find((_, i) => i === index);\n }\n\n #selectItemByEventTarget(target: EventTarget): void {\n const selectedItem = this.menuItems.find(\n (item: SkyDropdownItemComponent, i: number) => {\n const found = item.elementRef.nativeElement.contains(target);\n\n if (found) {\n this.menuIndex = i;\n this.menuChanges.next({\n activeIndex: this.menuIndex,\n });\n }\n\n return found;\n },\n );\n\n /* istanbul ignore else */\n if (selectedItem) {\n this.menuChanges.next({\n selectedItem,\n });\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.#dropdownComponent?.messageStream?.next({ type });\n }\n\n #addEventListeners(): void {\n const dropdownMenuElement = this.#elementRef.nativeElement;\n\n observableFromEvent<MouseEvent>(dropdownMenuElement, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n this.#selectItemByEventTarget(event.target as EventTarget);\n });\n\n observableFromEvent<KeyboardEvent>(dropdownMenuElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'arrowdown':\n case 'down':\n this.focusNextItem();\n event.preventDefault();\n break;\n\n case 'arrowup':\n case 'up':\n this.focusPreviousItem();\n event.preventDefault();\n break;\n\n case 'tab':\n this.#sendMessage(SkyDropdownMessageType.Close);\n\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n break;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = true;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = false;\n // Allow the dropdown component to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (\n this.#dropdownComponent &&\n this.#dropdownComponent.trigger === 'hover' &&\n this.#dropdownComponent.isMouseEnter === false\n ) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n\n #hasFocusableItems(): boolean {\n const found = this.menuItems.find((item) => item.isFocusable());\n return found !== undefined;\n }\n}\n","<div\n class=\"sky-dropdown-menu sky-shadow sky-elevation-4\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [id]=\"dropdownMenuId\"\n>\n <ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n SkyAffixModule,\n SkyIdModule,\n SkyScreenReaderLabelDirective,\n} from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyDropdownButtonComponent } from './dropdown-button.component';\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownMenuComponent } from './dropdown-menu.component';\nimport { SkyDropdownTriggerDirective } from './dropdown-trigger.directive';\nimport { SkyDropdownComponent } from './dropdown.component';\n\n@NgModule({\n declarations: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyDropdownTriggerDirective,\n SkyIconModule,\n SkyIdModule,\n SkyPopoversResourcesModule,\n SkyScreenReaderLabelDirective,\n SkyThemeModule,\n ],\n exports: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n SkyDropdownTriggerDirective,\n ],\n})\nexport class SkyDropdownModule {}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * @internal\n */\nexport const skyPopoverAnimation: AnimationTriggerMetadata = trigger(\n 'skyPopoverAnimation',\n [\n state(\n 'void',\n style({\n opacity: 0,\n }),\n ),\n state(\n 'open',\n style({\n opacity: 1,\n }),\n ),\n state(\n 'closed',\n style({\n opacity: 0,\n }),\n ),\n transition('void => *', [animate('250ms')]),\n transition('open => closed', [animate('150ms')]),\n transition('closed => open', [animate('150ms')]),\n ],\n);\n","import { SkyAffixHorizontalAlignment, SkyAffixPlacement } from '@skyux/core';\n\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\nexport function parseAffixPlacement(\n placement: SkyPopoverPlacement,\n): SkyAffixPlacement {\n switch (placement) {\n case 'above':\n return 'above';\n case 'below':\n return 'below';\n case 'right':\n return 'right';\n case 'left':\n return 'left';\n /* istanbul ignore next */\n default:\n throw `SkyAffixPlacement does not have a matching value for '${placement}'!`;\n }\n}\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyPopoverAlignment,\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import { TemplateRef } from '@angular/core';\n\n/**\n * @internal\n */\nexport class SkyPopoverContext {\n public readonly contentTemplateRef: TemplateRef<unknown>;\n\n constructor(args: { contentTemplateRef: TemplateRef<unknown> }) {\n this.contentTemplateRef = args.contentTemplateRef;\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyAffixAutoFitContext,\n SkyAffixConfig,\n SkyAffixService,\n SkyAffixer,\n SkyCoreAdapterService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n debounceTime,\n distinctUntilChanged,\n map,\n fromEvent as observableFromEvent,\n takeUntil,\n} from 'rxjs';\n\nimport { skyPopoverAnimation } from './popover-animation';\nimport { SkyPopoverAnimationState } from './popover-animation-state';\nimport { SkyPopoverContext } from './popover-context';\nimport {\n parseAffixHorizontalAlignment,\n parseAffixPlacement,\n} from './popover-extensions';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss'],\n animations: [skyPopoverAnimation],\n standalone: false,\n})\nexport class SkyPopoverContentComponent implements OnInit, OnDestroy {\n @HostBinding('id')\n protected popoverId: string | undefined;\n\n public animationState: SkyPopoverAnimationState = 'closed';\n\n public get closed(): Observable<void> {\n return this.#_closed.asObservable();\n }\n\n public get opened(): Observable<void> {\n return this.#_opened.asObservable();\n }\n\n public get isMouseEnter(): Observable<boolean> {\n return this.#_isMouseEnter.asObservable();\n }\n\n public affixer: SkyAffixer | undefined;\n\n public enableAnimations = true;\n\n public horizontalAlignment: SkyPopoverAlignment = 'center';\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.animationState = value ? 'open' : 'closed';\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n public placement: SkyPopoverPlacement | null = null;\n\n public popoverTitle: string | undefined;\n\n public popoverType: SkyPopoverType = 'info';\n\n public themeName: string | undefined;\n\n @ViewChild('arrowRef', {\n read: ElementRef,\n static: true,\n })\n public arrowRef: ElementRef | undefined;\n\n @ViewChild('popoverRef', {\n read: ElementRef,\n static: true,\n })\n public popoverRef: ElementRef | undefined;\n\n @ViewChild('contentTarget', {\n read: ViewContainerRef,\n static: true,\n })\n public set contentTarget(value: ViewContainerRef | undefined) {\n if (value) {\n value.createEmbeddedView(this.#context.contentTemplateRef);\n }\n }\n\n #caller: ElementRef | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_closed = new Subject<void>();\n\n #_isMouseEnter = new Subject<boolean>();\n\n #_isOpen = false;\n\n #_opened = new Subject<void>();\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #affixService: SkyAffixService;\n #arrowAffixer: SkyAffixer | undefined;\n #coreAdapterService: SkyCoreAdapterService;\n #context: SkyPopoverContext;\n #themeSvc: SkyThemeService | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n affixService: SkyAffixService,\n coreAdapterService: SkyCoreAdapterService,\n context: SkyPopoverContext,\n @Optional() themeSvc?: SkyThemeService,\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#affixService = affixService;\n this.#coreAdapterService = coreAdapterService;\n this.#context = context;\n this.#themeSvc = themeSvc;\n }\n\n public hasFocusableContent(): boolean {\n return (\n this.#coreAdapterService.getFocusableChildren(\n this.popoverRef?.nativeElement,\n ).length > 0\n );\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n\n /*istanbul ignore else*/\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n /*istanbul ignore next*/\n this.themeName = themeSettings.currentSettings?.theme?.name;\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#_closed.complete();\n this.#_isMouseEnter.complete();\n this.#_opened.complete();\n\n /* istanbul ignore else */\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n\n /* istanbul ignore else */\n if (this.#arrowAffixer) {\n this.#arrowAffixer.destroy();\n this.#arrowAffixer = undefined;\n }\n }\n\n public onAnimationEvent(event: AnimationEvent): void {\n if (event.fromState === 'void') {\n return;\n }\n\n if (event.phaseName === 'done') {\n if (event.toState === 'open') {\n this.#_opened.next();\n } else {\n this.#_closed.next();\n }\n }\n }\n\n public open(\n caller: ElementRef,\n config: {\n enableAnimations: boolean;\n horizontalAlignment: SkyPopoverAlignment;\n id: string;\n isStatic: boolean;\n placement: SkyPopoverPlacement;\n popoverTitle?: string;\n popoverType: SkyPopoverType;\n },\n ): void {\n this.#caller = caller;\n this.enableAnimations = config.enableAnimations;\n this.horizontalAlignment = config.horizontalAlignment;\n this.popoverId = config.id;\n this.placement = config.placement;\n this.popoverTitle = config.popoverTitle;\n this.popoverType = config.popoverType;\n\n this.#changeDetector.markForCheck();\n\n // Indicates if the popover should be displayed statically.\n // Please note: This feature is internal-only and used by the visual tests to capture multiple\n // states simultaneously without the overhead of event listeners.\n /* istanbul ignore if */\n if (config.isStatic) {\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n return;\n }\n\n // Let the styles render before gauging the affix dimensions.\n setTimeout(() => {\n /* istanbul ignore if */\n if (!this.popoverRef?.nativeElement || this.#ngUnsubscribe.closed) {\n return;\n }\n\n if (!this.affixer) {\n this.#setupAffixer();\n }\n\n const affixOptions: SkyAffixConfig = {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment,\n ),\n isSticky: true,\n placement: parseAffixPlacement(this.placement as SkyPopoverPlacement),\n };\n\n // Ensure vertical alignment is set according to the popover's placement value.\n if (\n affixOptions.placement === 'left' ||\n affixOptions.placement === 'right'\n ) {\n affixOptions.verticalAlignment = 'middle';\n }\n\n this.affixer!.affixTo(this.#caller?.nativeElement, affixOptions);\n\n this.#updateArrowOffset();\n\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n });\n }\n\n public close(): void {\n this.isOpen = false;\n this.#changeDetector.markForCheck();\n }\n\n public applyFocus(): void {\n if (this.popoverRef && this.isOpen) {\n this.#coreAdapterService.getFocusableChildrenAndApplyFocus(\n this.popoverRef,\n '.sky-popover',\n true,\n );\n }\n }\n\n #setupAffixer(): void {\n if (this.popoverRef) {\n const affixer = this.#affixService.createAffixer(this.popoverRef);\n\n affixer.placementChange\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n debounceTime(0, animationFrameScheduler),\n map((change) => change.placement),\n distinctUntilChanged(),\n )\n .subscribe((placement) => {\n this.placement = placement;\n this.#updateArrowOffset();\n this.#changeDetector.detectChanges();\n });\n\n this.affixer = affixer;\n }\n }\n\n #updateArrowOffset(): void {\n if (this.#caller && this.arrowRef && this.placement) {\n this.#arrowAffixer?.destroy();\n this.#arrowAffixer = this.#affixService.createAffixer(this.arrowRef);\n this.#arrowAffixer.affixTo(this.#caller?.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: false,\n horizontalAlignment: ['above', 'below'].includes(this.placement)\n ? 'center'\n : undefined,\n verticalAlignment: ['left', 'right'].includes(this.placement)\n ? 'middle'\n : undefined,\n isSticky: true,\n placement: parseAffixPlacement(this.placement as SkyPopoverPlacement),\n position: 'absolute',\n });\n }\n }\n\n #isFocusLeavingElement(event: KeyboardEvent): boolean {\n const focusableItems = this.#coreAdapterService.getFocusableChildren(\n this.#elementRef.nativeElement,\n );\n\n const isFirstItem = focusableItems[0] === event.target && event.shiftKey;\n\n const isLastItem =\n focusableItems[focusableItems.length - 1] === event.target &&\n !event.shiftKey;\n\n return focusableItems.length === 0 || isFirstItem || isLastItem;\n }\n\n #addEventListeners(): void {\n const hostElement = this.#elementRef.nativeElement;\n\n observableFromEvent(hostElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(true));\n\n observableFromEvent(hostElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(false));\n\n observableFromEvent<KeyboardEvent>(hostElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n break;\n\n // Since the popover now lives in an overlay at the bottom of the document body, we need\n // to handle the tab key ourselves. Otherwise, focus would be moved to the browser's\n // search bar.\n case 'tab':\n /*istanbul ignore else*/\n if (this.#isFocusLeavingElement(event)) {\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n });\n }\n}\n","<div\n #popoverRef\n class=\"sky-popover-container sky-popover-max-height\"\n [@.disabled]=\"!enableAnimations\"\n [@skyPopoverAnimation]=\"animationState\"\n [class.sky-popover-hidden]=\"!placement\"\n [ngClass]=\"[\n 'sky-popover-alignment-' + horizontalAlignment,\n 'sky-popover-placement-' + placement,\n 'sky-popover-' + popoverType\n ]\"\n (@skyPopoverAnimation.done)=\"onAnimationEvent($event)\"\n (@skyPopoverAnimation.start)=\"onAnimationEvent($event)\"\n>\n <div\n class=\"sky-popover\"\n tabindex=\"-1\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners sky-shadow': 'default',\n 'sky-elevation-4': 'modern'\n }\"\n >\n @if (popoverTitle) {\n <div\n class=\"sky-popover-header\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default'\n }\"\n >\n <h4 class=\"sky-popover-title sky-font-heading-4\">\n {{ popoverTitle }}\n </h4>\n </div>\n }\n <div\n class=\"sky-popover-body\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg': 'modern'\n }\"\n >\n <ng-container #contentTarget />\n </div>\n </div>\n <span #arrowRef aria-hidden=\"true\" class=\"sky-popover-arrow\"></span>\n</div>\n","import {\n Component,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyIdService,\n SkyOverlayInstance,\n SkyOverlayService,\n SkyStackingContext,\n} from '@skyux/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverContext } from './popover-context';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n@Component({\n selector: 'sky-popover',\n templateUrl: './popover.component.html',\n standalone: false,\n})\nexport class SkyPopoverComponent implements OnDestroy {\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n * The `skyPopoverAlignment` property on the popover directive takes precedence over this property when specified.\n * @default \"center\"\n */\n @Input()\n public set alignment(value: SkyPopoverAlignment | undefined) {\n this.#_alignment = value ?? 'center';\n }\n\n public get alignment(): SkyPopoverAlignment {\n return this.#_alignment;\n }\n\n /**\n * The placement of the popover in relation to the trigger element.\n * The `skyPopoverPlacement` property on the popover directive takes precedence over this property when specified.\n * @default \"above\"\n */\n @Input()\n public set placement(value: SkyPopoverPlacement | undefined) {\n this.#_placement = value ?? 'above';\n }\n\n public get placement(): SkyPopoverPlacement {\n return this.#_placement;\n }\n\n /**\n * The title for the popover.\n */\n @Input()\n public popoverTitle: string | undefined;\n\n /**\n * The type of popover.\n * @default \"info\"\n */\n @Input()\n public set popoverType(value: SkyPopoverType | undefined) {\n this.#_popoverType = value ?? 'info';\n }\n\n public get popoverType(): SkyPopoverType {\n return this.#_popoverType;\n }\n\n /**\n * Fires when users close the popover.\n */\n @Output()\n public popoverClosed = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Fires when users open the popover.\n */\n @Output()\n public popoverOpened = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Whether the popover is in the process of being opened or closed.\n * @internal\n */\n public isActive = false;\n\n /**\n * Used by unit tests to disable animations since the component is injected at the bottom of the\n * document body.\n * @internal\n */\n public enableAnimations = true;\n\n public isMouseEnter = false;\n\n public popoverId: string;\n\n @ViewChild('templateRef', {\n read: TemplateRef,\n static: true,\n })\n public templateRef: TemplateRef<unknown> | undefined;\n\n #contentRef!: SkyPopoverContentComponent;\n\n #isMarkedForCloseOnMouseLeave = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #overlay: SkyOverlayInstance | undefined;\n\n #_alignment: SkyPopoverAlignment = 'center';\n\n #_placement: SkyPopoverPlacement = 'above';\n\n #_popoverType: SkyPopoverType = 'info';\n\n readonly #environmentInjector = inject(EnvironmentInjector);\n\n #overlayService: SkyOverlayService;\n\n #zIndex: Observable<number> | undefined;\n\n constructor(\n overlayService: SkyOverlayService,\n @Optional()\n @Inject(SKY_STACKING_CONTEXT)\n stackingContext?: SkyStackingContext,\n ) {\n this.#overlayService = overlayService;\n this.#zIndex = stackingContext?.zIndex;\n\n this.popoverId = inject(SkyIdService).generateId();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n /**\n * Positions the popover next to a given caller element.\n * @param caller The element that opened the popover.\n * @param placement The placement of the popover.\n * @param alignment The horizontal alignment of the popover.\n * @internal\n */\n public positionNextTo(\n caller: ElementRef,\n placement?: SkyPopoverPlacement,\n alignment?: SkyPopoverAlignment,\n ): void {\n if (!this.#overlay) {\n this.#setupOverlay();\n }\n\n this.placement = placement ?? this.placement;\n this.alignment = alignment ?? this.alignment;\n this.isActive = true;\n\n this.#contentRef.open(caller, {\n enableAnimations: this.enableAnimations,\n horizontalAlignment: this.alignment,\n id: this.popoverId,\n isStatic: false,\n placement: this.placement,\n popoverTitle: this.popoverTitle,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover.\n * @internal\n */\n public close(): void {\n /*istanbul ignore next*/\n this.#contentRef?.close();\n }\n\n /**\n * Brings focus to the popover element if its open.\n * @internal\n */\n public applyFocus(): void {\n /*istanbul ignore next*/\n this.#contentRef?.applyFocus();\n }\n\n /**\n * Adds a flag to the popover to close when the mouse leaves the popover's bounds.\n * @internal\n */\n public markForCloseOnMouseLeave(): void {\n this.#isMarkedForCloseOnMouseLeave = true;\n }\n\n public hasFocusableContent(): boolean {\n return this.#contentRef.hasFocusableContent();\n }\n\n #setupOverlay(): void {\n if (this.templateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n environmentInjector: this.#environmentInjector,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.close();\n });\n\n const contentRef = overlay.attachComponent(SkyPopoverContentComponent, [\n {\n provide: SkyPopoverContext,\n useValue: new SkyPopoverContext({\n contentTemplateRef: this.templateRef,\n }),\n },\n ]);\n\n contentRef.opened.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n this.popoverOpened.emit(this);\n });\n\n contentRef.closed.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n /*istanbul ignore else*/\n if (this.isActive && this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n this.isActive = false;\n this.popoverClosed.emit(this);\n }\n });\n\n contentRef.isMouseEnter\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((isMouseEnter) => {\n this.isMouseEnter = isMouseEnter;\n if (this.#isMarkedForCloseOnMouseLeave) {\n this.#isMarkedForCloseOnMouseLeave = false;\n this.close();\n }\n });\n\n this.#overlay = overlay;\n this.#contentRef = contentRef;\n }\n }\n}\n","<ng-template #templateRef>\n <ng-content />\n</ng-template>\n","import {\n ElementRef,\n Injectable,\n OnDestroy,\n Renderer2,\n inject,\n} from '@angular/core';\nimport { SkyIdService } from '@skyux/core';\n\n/**\n * Inserts an empty \"pointer\" element after the host element to direct screen\n * readers to the opened popover content. Popover content is appended to the\n * document body, but it needs to be associated with the host element to meet\n * accessibility requirements. This is done by setting `aria-owns` on the\n * pointer element, which instructs the screen reader to consider the popover\n * contents as a child of the pointer element. We cannot set `aria-owns` on\n * the host element because it is nearly always a button, and buttons cannot\n * have block-level children.\n * @see https://github.com/w3c/html-aria/issues/124\n * @internal\n */\n@Injectable()\nexport class SkyPopoverSRPointerService implements OnDestroy {\n #srPointerEl: HTMLSpanElement | undefined;\n\n readonly #renderer = inject(Renderer2);\n readonly #srPointerId = inject(SkyIdService).generateId();\n readonly #hostEl = inject(ElementRef<HTMLElement>);\n\n public ngOnDestroy(): void {\n this.destroySRPointerEl();\n }\n\n public createSRPointerEl(): void {\n const pointerEl = this.#renderer.createElement('span');\n this.#renderer.setAttribute(pointerEl, 'id', this.#srPointerId);\n this.#srPointerEl = pointerEl;\n\n const hostEl = this.#hostEl?.nativeElement;\n this.#renderer.setAttribute(hostEl, 'aria-controls', this.#srPointerId);\n hostEl?.parentNode?.insertBefore(pointerEl, hostEl.nextSibling);\n }\n\n public destroySRPointerEl(): void {\n this.#srPointerEl?.remove();\n this.#srPointerEl = undefined;\n }\n\n public updateAriaAttributes(options: {\n ariaExpanded: boolean;\n ariaOwns?: string;\n }): void {\n const hostEl = this.#hostEl?.nativeElement;\n const pointerEl = this.#srPointerEl;\n\n // Only set attributes if the pointer element exists.\n if (pointerEl) {\n this.#renderer.setAttribute(\n hostEl,\n 'aria-expanded',\n options.ariaExpanded ? 'true' : 'false',\n );\n\n if (options.ariaExpanded === true) {\n if (options.ariaOwns) {\n this.#renderer.setAttribute(pointerEl, 'aria-owns', options.ariaOwns);\n }\n } else {\n this.#renderer.removeAttribute(pointerEl, 'aria-owns');\n }\n } else {\n this.#renderer.removeAttribute(hostEl, 'aria-expanded');\n }\n }\n}\n","/**\n * The type of message to send to the popover component.\n */\nexport enum SkyPopoverMessageType {\n /**\n * Opens the popover.\n */\n Open = 0,\n\n /**\n * Closes the popover.\n */\n Close = 1,\n\n /**\n * Repositions the popover to the appropriate position.\n * This is useful for when the popover's width and height change while it is open.\n */\n Reposition = 2,\n\n /**\n * Brings focus to the popover element.\n */\n Focus = 3,\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\n\nimport { Subject, Subscription, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverSRPointerService } from './popover-sr-pointer.service';\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverMessage } from './types/popover-message';\nimport { SkyPopoverMessageType } from './types/popover-message-type';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverTrigger } from './types/popover-trigger';\n\n@Directive({\n providers: [SkyPopoverSRPointerService],\n selector: '[skyPopover]',\n standalone: false,\n})\nexport class SkyPopoverDirective implements OnInit, OnDestroy {\n /**\n * Appends the `sky-popover-trigger` class to the trigger element.\n * @internal\n */\n @HostBinding('class')\n protected directiveClass = 'sky-popover-trigger';\n\n protected popoverId: string | undefined;\n\n /**\n * The popover component to display. Add this directive to the trigger element that opens the popover.\n * @required\n */\n @Input()\n public set skyPopover(value: SkyPopoverComponent | undefined) {\n this.popoverId = value?.popoverId;\n this.#_popover = value;\n this.#updateSRPointer(value);\n }\n\n public get skyPopover(): SkyPopoverComponent | undefined {\n return this.#_popover;\n }\n\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverAlignment: SkyPopoverAlignment | undefined;\n\n /**\n * The RxJS `Subject` to send commands to the popover that respect the `SkyPopoverMessage` type.\n */\n @Input()\n public set skyPopoverMessageStream(\n value: Subject<SkyPopoverMessage> | undefined,\n ) {\n this.#_skyPopoverMessageStream = value ?? new Subject<SkyPopoverMessage>();\n this.#subscribeMessageStream();\n }\n\n public get skyPopoverMessageStream(): Subject<SkyPopoverMessage> {\n return this.#_skyPopoverMessageStream;\n }\n\n #_skyPopoverMessageStream = new Subject<SkyPopoverMessage>();\n\n #messageStreamSub: Subscription | undefined;\n\n /**\n * The placement of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverPlacement: SkyPopoverPlacement | undefined;\n\n /**\n * The user action that displays the popover.\n * @deprecated To ensure usability on touch devices, trigger user-invoked\n * popovers on `click` actions rather than `mouseenter` actions.\n */\n @Input()\n public set skyPopoverTrigger(value: SkyPopoverTrigger | undefined) {\n this.#_trigger = value ?? 'click';\n this.#updateAriaAttributes();\n }\n\n public get skyPopoverTrigger(): SkyPopoverTrigger {\n return this.#_trigger;\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #_popover: SkyPopoverComponent | undefined;\n\n #_trigger: SkyPopoverTrigger = 'click';\n\n #elementRef: ElementRef;\n #expanded = false;\n #popoverClosedSubscription: Subscription | undefined;\n\n readonly #srPointerSvc = inject(SkyPopoverSRPointerService);\n\n constructor(elementRef: ElementRef) {\n this.#elementRef = elementRef;\n this.#subscribeMessageStream();\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#removeEventListeners();\n this.#unsubscribeMessageStream();\n this.#popoverClosedSubscription?.unsubscribe();\n }\n\n public togglePopover(): void {\n if (this.skyPopover?.isActive) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n return;\n }\n\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n\n #positionPopover(): void {\n this.skyPopover?.positionNextTo(\n this.#elementRef,\n this.skyPopoverPlacement,\n this.skyPopoverAlignment,\n );\n }\n\n #closePopover(): void {\n this.skyPopover?.close();\n }\n\n #closePopoverOrMarkForClose(): void {\n if (this.skyPopover?.isMouseEnter) {\n this.skyPopover.markForCloseOnMouseLeave();\n } else {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n }\n\n #addEventListeners(): void {\n const element = this.#elementRef.nativeElement;\n\n observableFromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n if (!this.skyPopover?.isActive) {\n return;\n }\n\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyPopoverMessageType.Close);\n event.preventDefault();\n event.stopPropagation();\n break;\n\n case 'tab':\n if (this.skyPopover.hasFocusableContent()) {\n this.#sendMessage(SkyPopoverMessageType.Focus);\n event.stopPropagation();\n event.preventDefault();\n } else {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n break;\n }\n });\n\n observableFromEvent(element, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.togglePopover();\n }\n });\n\n observableFromEvent(element, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = true;\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = false;\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n if (document.activeElement !== element) {\n // Give the popover a chance to set its isMouseEnter flag before checking to see\n // if it should be closed.\n setTimeout(() => {\n this.#closePopoverOrMarkForClose();\n });\n }\n }\n }\n });\n\n observableFromEvent(element, 'focusin')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'focusout')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n }\n });\n }\n\n #removeEventListeners(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #handleIncomingMessages(message: SkyPopoverMessage): void {\n switch (message.type) {\n case SkyPopoverMessageType.Open:\n this.#positionPopover();\n this.#expanded = true;\n this.#updateAriaAttributes();\n break;\n\n case SkyPopoverMessageType.Close:\n /*istanbul ignore else*/\n if (this.skyPopover?.isActive) {\n this.#closePopover();\n }\n break;\n\n case SkyPopoverMessageType.Reposition:\n // Only reposition the popover if it is already open.\n if (this.skyPopover?.isActive) {\n this.#positionPopover();\n }\n break;\n\n case SkyPopoverMessageType.Focus:\n this.skyPopover?.applyFocus();\n break;\n }\n }\n\n #sendMessage(messageType: SkyPopoverMessageType): void {\n this.skyPopoverMessageStream.next({ type: messageType });\n }\n\n #subscribeMessageStream(): void {\n this.#unsubscribeMessageStream();\n\n this.#messageStreamSub = this.skyPopoverMessageStream.subscribe(\n (message) => {\n this.#handleIncomingMessages(message);\n },\n );\n }\n\n #unsubscribeMessageStream(): void {\n if (this.#messageStreamSub) {\n this.#messageStreamSub.unsubscribe();\n this.#messageStreamSub = undefined;\n }\n }\n\n #updateAriaAttributes(): void {\n this.#srPointerSvc.updateAriaAttributes({\n ariaExpanded: this.#expanded,\n ariaOwns: this.popoverId,\n });\n }\n\n #updateSRPointer(popover: SkyPopoverComponent | undefined): void {\n this.#popoverClosedSubscription?.unsubscribe();\n this.#popoverClosedSubscription = popover\n ? popover.popoverClosed.subscribe(() => {\n this.#expanded = false;\n this.#updateAriaAttributes();\n })\n : undefined;\n\n if (popover) {\n if (this.skyPopoverTrigger === 'click') {\n this.#srPointerSvc.createSRPointerEl();\n }\n } else {\n this.#srPointerSvc.destroySRPointerEl();\n }\n\n this.#updateAriaAttributes();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAffixModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverDirective } from './popover.directive';\n\n@NgModule({\n declarations: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n})\nexport class SkyPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["parseAffixHorizontalAlignment","i2.SkyDropdownTriggerDirective","i4","i5","observableFromEvent","i1.SkyDropdownComponent","takeUntil","i1","i2.SkyPopoverContext","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-popovers.mjs","sources":["../../../../../libs/components/popovers/src/lib/modules/shared/sky-popovers-resources.module.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/types/dropdown-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-trigger.directive.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.module.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-animation.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-context.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/popover-sr-pointer.service.ts","../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.directive.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.module.ts","../../../../../libs/components/popovers/src/skyux-popovers.ts"],"sourcesContent":["/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-popovers' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_dropdown_context_menu_default_label: { message: 'Context menu' },\n skyux_dropdown_context_menu_with_content_descriptor_default_label: {\n message: 'Context menu for {0}',\n },\n skyux_dropdown_context_menu_with_content_descriptor_el_default_label: {\n message: 'Context menu for ',\n },\n },\n 'FR-CA': {\n skyux_dropdown_context_menu_default_label: { message: 'Menu du contexte' },\n skyux_dropdown_context_menu_with_content_descriptor_default_label: {\n message: 'Menu du contexte pour {0}',\n },\n skyux_dropdown_context_menu_with_content_descriptor_el_default_label: {\n message: 'Menu du contexte pour ',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyPopoversResourcesModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the button for the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n standalone: false,\n})\nexport class SkyDropdownButtonComponent {}\n","<ng-content />\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Specifies the items to display on the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkyDropdownItemComponent implements AfterViewInit {\n /**\n * The ARIA role for the dropdown menu item\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the item functions and what it controls. For information about\n * how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menuitem\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menuitem';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n public isActive = false;\n\n #_ariaRole = 'menuitem';\n\n #changeDetector: ChangeDetectorRef;\n #renderer: Renderer2;\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n renderer: Renderer2,\n ) {\n this.#changeDetector = changeDetector;\n this.#renderer = renderer;\n }\n\n public ngAfterViewInit(): void {\n // Make sure anchor elements are tab-able.\n const buttonElement = this.#getButtonElement();\n /* istanbul ignore else */\n if (buttonElement) {\n this.#renderer.setAttribute(buttonElement, 'tabIndex', '0');\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public focusElement(enableNativeFocus: boolean): void {\n this.isActive = true;\n\n if (enableNativeFocus) {\n this.#getButtonElement()?.focus();\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public isFocusable(): boolean {\n const isFocusable =\n this.#getButtonElement()?.getAttribute('disabled') === null;\n return isFocusable;\n }\n\n public resetState(): void {\n this.isActive = false;\n this.#changeDetector.markForCheck();\n }\n\n #getButtonElement(): HTMLButtonElement | null {\n return this.elementRef.nativeElement.querySelector('button,a');\n }\n}\n","<div\n class=\"sky-dropdown-item\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-dropdown-item-active': isActive\n }\"\n>\n <ng-content />\n</div>\n","/**\n * The type of message to send.\n * @internal\n */\nexport enum SkyDropdownMessageType {\n /**\n * Opens the dropdown menu.\n */\n Open = 0,\n\n /**\n * Closes the dropdown menu.\n */\n Close = 1,\n\n /**\n * Puts focus on the dropdown button.\n */\n FocusTriggerButton = 2,\n\n /**\n * Puts focus on the next item in the dropdown menu.\n */\n FocusNextItem = 3,\n\n /**\n * Puts focus on the previous item in the dropdown menu.\n */\n FocusPreviousItem = 4,\n\n /**\n * Repositions the dropdown menu next to the dropdown button. This is useful for when the\n * dropdown menu's width and height change while it is open.\n */\n Reposition = 5,\n\n /**\n * Puts focus on the first item in the dropdown menu.\n */\n FocusFirstItem = 6,\n\n /**\n * Puts focus on the last item in the dropdown menu.\n */\n FocusLastItem = 7,\n}\n","import { SkyAffixHorizontalAlignment } from '@skyux/core';\n\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyDropdownHorizontalAlignment,\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import {\n Directive,\n ElementRef,\n OnDestroy,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject, of, switchMap } from 'rxjs';\n\nimport { SkyDropdownButtonType } from './types/dropdown-button-type';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyDropdownTrigger]',\n standalone: true,\n host: {\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.aria-controls]': 'isOpen() ? menuId() : null',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[attr.aria-haspopup]': 'menuAriaRole()',\n '[attr.title]': 'title()',\n '[attr.disabled]': 'disabled() || undefined',\n '(click)': 'triggerClick.next($event)',\n '(keydown)': 'triggerKeyDown.next($event)',\n '(mouseenter)': 'triggerMouseEnter.next($event)',\n '(mouseleave)': 'triggerMouseLeave.next($event)',\n },\n})\nexport class SkyDropdownTriggerDirective implements OnDestroy {\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n public readonly nativeElement = inject(ElementRef).nativeElement;\n\n // Set by the dropdown component.\n public readonly isOpen = signal<boolean | undefined>(undefined);\n public readonly menuId = signal<string | null | undefined>(undefined);\n public readonly menuAriaRole = signal<string | undefined>(undefined);\n public readonly label = signal<string | undefined>(undefined);\n public readonly buttonType = signal<SkyDropdownButtonType | undefined>(\n undefined,\n );\n public readonly screenReaderLabelContextMenuId = signal<string | undefined>(\n undefined,\n );\n public readonly title = signal<string | undefined>(undefined);\n public readonly disabled = signal<boolean | undefined>(undefined);\n\n public readonly triggerClick = new Subject<MouseEvent>();\n public readonly triggerKeyDown = new Subject<KeyboardEvent>();\n public readonly triggerMouseEnter = new Subject<MouseEvent>();\n public readonly triggerMouseLeave = new Subject<MouseEvent>();\n\n readonly #contentInfo = toSignal(\n inject(SkyContentInfoProvider, {\n optional: true,\n })?.getInfo() ?? of(undefined),\n );\n\n readonly #contextMenuLabel = toSignal(\n toObservable(this.#contentInfo).pipe(\n switchMap((contentInfo) => {\n const contentInfoDescriptor = contentInfo?.descriptor;\n\n if (contentInfoDescriptor) {\n if (contentInfoDescriptor.type === 'text') {\n return this.#resourcesSvc.getString(\n 'skyux_dropdown_context_menu_with_content_descriptor_default_label',\n contentInfoDescriptor.value,\n );\n }\n\n return of(undefined);\n }\n\n return this.#resourcesSvc.getString(\n 'skyux_dropdown_context_menu_default_label',\n );\n }),\n ),\n );\n\n protected readonly ariaLabel = computed(() => {\n const label = this.label();\n\n if (label) {\n return label;\n }\n\n if (this.buttonType() === 'context-menu') {\n return this.#contextMenuLabel();\n }\n\n return undefined;\n });\n\n protected readonly ariaLabelledby = computed(() => {\n return !this.label() &&\n this.buttonType() === 'context-menu' &&\n this.#contentInfo()?.descriptor?.type === 'elementId'\n ? this.screenReaderLabelContextMenuId() +\n ' ' +\n this.#contentInfo()?.descriptor?.value\n : undefined;\n });\n\n public ngOnDestroy(): void {\n this.triggerClick.complete();\n this.triggerKeyDown.complete();\n this.triggerMouseEnter.complete();\n this.triggerMouseLeave.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EnvironmentInjector,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAffixAutoFitContext,\n SkyAffixHorizontalAlignment,\n SkyAffixService,\n SkyAffixer,\n SkyContentInfoProvider,\n SkyIdService,\n SkyOverlayInstance,\n SkyOverlayService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { parseAffixHorizontalAlignment } from './dropdown-extensions';\nimport { SkyDropdownTriggerDirective } from './dropdown-trigger.directive';\nimport { SkyDropdownButtonType } from './types/dropdown-button-type';\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\nimport { SkyDropdownTriggerType } from './types/dropdown-trigger-type';\n\nconst DEFAULT_BUTTON_STYLE = 'default';\nconst DEFAULT_BUTTON_TYPE: SkyDropdownButtonType = 'select';\nconst DEFAULT_HORIZONTAL_ALIGNMENT: SkyAffixHorizontalAlignment = 'left';\nconst DEFAULT_TRIGGER_TYPE: SkyDropdownTriggerType = 'click';\n\n/**\n * Creates a dropdown menu that displays menu items that users may select.\n */\n@Component({\n selector: 'sky-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkyDropdownComponent implements OnInit, OnDestroy {\n readonly #affixService = inject(SkyAffixService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #idSvc = inject(SkyIdService);\n readonly #overlayService = inject(SkyOverlayService);\n readonly #themeSvc = inject(SkyThemeService, { optional: true });\n readonly #zIndex = inject(SKY_STACKING_CONTEXT, { optional: true })?.zIndex;\n readonly #contentInfoProvider = inject(SkyContentInfoProvider, {\n optional: true,\n });\n\n /**\n * The background color for the dropdown button. Available values are `default`,\n * `primary`, and `link`. These values set the background color and hover behavior from the\n * [secondary and primary button classes](https://developer.blackbaud.com/skyux/components/button) respectively.\n * @default \"default\"\n */\n @Input()\n public set buttonStyle(value: string | undefined) {\n this.#_buttonStyle = value ?? DEFAULT_BUTTON_STYLE;\n }\n\n public get buttonStyle(): string {\n return this.#_buttonStyle;\n }\n\n /**\n * The type of button to render as the dropdown's trigger element. To display a button\n * with a caret, specify `'select'` and render the button text or icon in a\n * `sky-dropdown-button` element. To display a round button with an ellipsis, specify\n * `'context-menu'`.\n * @default \"select\"\n */\n @Input()\n public set buttonType(value: SkyDropdownButtonType | undefined) {\n this.#_buttonType = value ?? DEFAULT_BUTTON_TYPE;\n }\n\n public get buttonType(): SkyDropdownButtonType {\n return this.#_buttonType;\n }\n\n /**\n * Whether to disable the dropdown button.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n this.#_disabled = value;\n this.#updateTrigger();\n }\n\n public get disabled(): boolean | undefined {\n return this.#_disabled;\n }\n\n /**\n * The ARIA label for the dropdown. This sets the dropdown's `aria-label` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility). If multiple dropdowns with no label or the same label appear on the same page,\n * they must have unique ARIA labels that provide context, such as \"Context menu for Robert Hernandez\" or \"Edit Robert Hernandez.\"\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public set label(value: string | undefined) {\n this.#_label = value;\n this.#updateTrigger();\n }\n\n public get label(): string | undefined {\n return this.#_label;\n }\n\n protected readonly contentInfoObs = this.#contentInfoProvider?.getInfo();\n\n /**\n * The horizontal alignment of the dropdown menu in relation to the dropdown button.\n * @default \"left\"\n */\n @Input()\n public set horizontalAlignment(\n value: SkyDropdownHorizontalAlignment | undefined,\n ) {\n this.#_horizontalAlignment = value ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n }\n\n public get horizontalAlignment(): SkyDropdownHorizontalAlignment {\n return this.#_horizontalAlignment;\n }\n\n /**\n * The observable that sends commands to the dropdown. The commands should respect\n * the [[SkyDropdownMessage]] type.\n * @internal\n */\n @Input()\n public messageStream: Subject<SkyDropdownMessage> | undefined =\n new Subject<SkyDropdownMessage>();\n\n /**\n * The title to display in a tooltip when users hover the mouse over the dropdown button.\n */\n @Input()\n public set title(value: string | undefined) {\n this.#_title = value;\n this.#updateTrigger();\n }\n\n public get title(): string | undefined {\n return this.#_title;\n }\n\n /**\n * How users interact with the dropdown button to expose the dropdown menu.\n * We recommend the default `click` value because the `hover` value can pose\n * [accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) issues\n * for users on touch devices such as phones and tablets.\n * @deprecated We recommend against using this property. If you choose to use the deprecated\n * `hover` value anyway, we recommend that you not use it in combination with the `title`\n * property.\n * @default \"click\"\n */\n @Input()\n public set trigger(value: SkyDropdownTriggerType | undefined) {\n this.#_trigger = value ?? DEFAULT_TRIGGER_TYPE;\n }\n\n public get trigger(): SkyDropdownTriggerType {\n return this.#_trigger;\n }\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.#updateTrigger();\n this.#changeDetector.markForCheck();\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n @ViewChild('menuContainerElementRef', {\n read: ElementRef,\n })\n public set menuContainerElementRef(value: ElementRef | undefined) {\n if (value) {\n this.#destroyAffixer();\n this.#createAffixer(value);\n }\n }\n\n public set menuId(value: string | undefined) {\n this.#_menuId = value;\n this.#updateTrigger();\n }\n\n public get menuId(): string | undefined {\n return this.#_menuId;\n }\n\n public set menuAriaRole(value: string | undefined) {\n this.#_menuAriaRole = value;\n this.#updateTrigger();\n }\n\n public get menuAriaRole(): string | undefined {\n return this.#_menuAriaRole;\n }\n\n public isMouseEnter = false;\n\n public isVisible = false;\n\n @ViewChild('menuContainerTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public menuContainerTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('triggerButton', {\n read: SkyDropdownTriggerDirective,\n })\n public set triggerButton(value: SkyDropdownTriggerDirective | undefined) {\n this.#_triggerButton = value;\n this.#addEventListeners();\n this.#updateTrigger();\n }\n\n public get triggerButton(): SkyDropdownTriggerDirective | undefined {\n return this.#_customTriggerButton ?? this.#_triggerButton;\n }\n\n @ContentChild(SkyDropdownTriggerDirective)\n public set customTriggerButton(\n value: SkyDropdownTriggerDirective | undefined,\n ) {\n this.#_customTriggerButton = value;\n this.#addEventListeners();\n this.#updateTrigger();\n }\n\n protected screenReaderLabelContextMenuId = this.#idSvc.generateId();\n\n #affixer: SkyAffixer | undefined;\n #ngUnsubscribe = new Subject<void>();\n #triggerUnsubscribe = new Subject<void>();\n #overlay: SkyOverlayInstance | undefined;\n #positionTimeout: number | undefined;\n\n #_buttonStyle = DEFAULT_BUTTON_STYLE;\n #_buttonType = DEFAULT_BUTTON_TYPE;\n #_customTriggerButton: SkyDropdownTriggerDirective | undefined;\n #_disabled: boolean | undefined = false;\n #_horizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n #_isOpen = false;\n #_label: string | undefined;\n #_menuAriaRole: string | undefined;\n #_menuId: string | undefined;\n #_title: string | undefined;\n #_trigger = DEFAULT_TRIGGER_TYPE;\n #_triggerButton: SkyDropdownTriggerDirective | undefined;\n\n public ngOnInit(): void {\n this.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n // Load proper icons on theme change.\n this.#themeSvc?.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.#destroyAffixer();\n this.#destroyOverlay();\n clearTimeout(this.#positionTimeout);\n\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#triggerUnsubscribe.next();\n this.#triggerUnsubscribe.complete();\n }\n\n #updateTrigger(): void {\n const triggerButton = this.triggerButton;\n\n if (triggerButton) {\n triggerButton.buttonType.set(this.buttonType);\n triggerButton.disabled.set(this.disabled);\n triggerButton.isOpen.set(this.isOpen);\n triggerButton.label.set(this.label);\n triggerButton.menuAriaRole.set(this.menuAriaRole);\n triggerButton.menuId.set(this.menuId);\n triggerButton.title.set(this.title);\n triggerButton.disabled.set(this.disabled);\n triggerButton.screenReaderLabelContextMenuId.set(\n this.screenReaderLabelContextMenuId,\n );\n }\n }\n\n #addEventListeners(): void {\n this.#triggerUnsubscribe.next();\n this.#triggerUnsubscribe.complete();\n\n this.#triggerUnsubscribe = new Subject<void>();\n const triggerButton = this.triggerButton;\n\n if (triggerButton) {\n triggerButton.triggerClick\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe(() => {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n } else {\n this.#sendMessage(SkyDropdownMessageType.Open);\n // Wait for dropdown to open, then set focus on first item.\n setTimeout(() => {\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n });\n }\n });\n\n triggerButton.triggerKeyDown\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n /*istanbul ignore else*/\n this.#handleTriggerEscape(event);\n break;\n\n case 'tab':\n this.#handleTriggerTab();\n break;\n\n case 'arrowup':\n case 'up':\n this.#handleTriggerUp(event);\n break;\n\n case 'enter':\n case 'arrowdown':\n case 'down':\n case ' ': // Spacebar.\n this.#handleTriggerDown(event);\n break;\n }\n });\n\n triggerButton.triggerMouseEnter\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = true;\n if (this.trigger === 'hover') {\n this.#sendMessage(SkyDropdownMessageType.Open);\n }\n });\n\n triggerButton.triggerMouseLeave\n .pipe(takeUntil(this.#triggerUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = false;\n if (this.trigger === 'hover') {\n // Allow the dropdown menu to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (!this.isMouseEnter) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n }\n\n #handleTriggerEscape(event: KeyboardEvent): void {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n }\n }\n\n #handleTriggerTab(): void {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n }\n\n #handleTriggerUp(event: KeyboardEvent): void {\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusLastItem);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n #handleTriggerDown(event: KeyboardEvent): void {\n /*istanbul ignore else*/\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n #createOverlay(): void {\n /* istanbul ignore next */\n if (this.#overlay) {\n return;\n }\n\n this.isVisible = false;\n\n if (this.menuContainerTemplateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n environmentInjector: this.#environmentInjector,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.attachTemplate(this.menuContainerTemplateRef);\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#sendMessage(SkyDropdownMessageType.Close);\n });\n\n this.#overlay = overlay;\n }\n\n this.#changeDetector.markForCheck();\n }\n\n #destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.#affixer) {\n this.#affixer.destroy();\n this.#affixer = undefined;\n }\n }\n\n #destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n #createAffixer(menuContainerElementRef: ElementRef): void {\n const affixer = (this.#affixer = this.#affixService.createAffixer(\n menuContainerElementRef,\n ));\n\n affixer.placementChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.isVisible = change.placement !== null;\n this.#changeDetector.markForCheck();\n });\n\n affixer.affixTo(this.triggerButton?.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment,\n ),\n isSticky: true,\n placement: 'below',\n });\n\n this.isVisible = true;\n\n this.#changeDetector.markForCheck();\n }\n\n #handleIncomingMessages(message: SkyDropdownMessage): void {\n if (!this.disabled) {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n if (!this.isOpen) {\n this.isOpen = true;\n this.#createOverlay();\n }\n break;\n\n case SkyDropdownMessageType.Close:\n this.isOpen = false;\n this.#destroyOverlay();\n break;\n\n case SkyDropdownMessageType.Reposition:\n // Only reposition the dropdown if it is already open.\n /* istanbul ignore else */\n if (this.isOpen && this.#affixer) {\n this.#affixer.reaffix();\n }\n break;\n\n case SkyDropdownMessageType.FocusTriggerButton:\n this.triggerButton?.nativeElement.focus();\n break;\n }\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.messageStream?.next({ type });\n }\n}\n","<div class=\"sky-dropdown\">\n <ng-content select=\"[skyDropdownTrigger]\">\n <button\n #triggerButton\n class=\"sky-btn sky-dropdown-button\"\n skyDropdownTrigger\n type=\"button\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n >\n @switch (buttonType) {\n @case ('context-menu') {\n <sky-icon *skyThemeIf=\"'modern'\" iconName=\"more-actions\" />\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"more-actions\" />\n }\n @default {\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\" />\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n class=\"sky-dropdown-caret\"\n iconName=\"chevron-down\"\n iconSize=\"s\"\n />\n </div>\n </div>\n }\n }\n </button>\n </ng-content>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n #menuContainerElementRef\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n >\n <ng-content select=\"sky-dropdown-menu\" />\n </div>\n</ng-template>\n<span\n skyScreenReaderLabel\n [createLabel]=\"\n buttonType === 'context-menu' &&\n (contentInfoObs | async)?.descriptor?.type === 'elementId'\n \"\n [attr.id]=\"screenReaderLabelContextMenuId\"\n>\n {{\n 'skyux_dropdown_context_menu_with_content_descriptor_el_default_label'\n | skyLibResources\n }}\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownComponent } from './dropdown.component';\nimport { SkyDropdownMenuChange } from './types/dropdown-menu-change';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\n\nlet nextId = 0;\n/**\n * Creates a menu that contains dropdown menu items.\n *\n */\n@Component({\n selector: 'sky-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SkyDropdownMenuComponent implements AfterContentInit, OnDestroy {\n /**\n * The HTML element ID of the element that labels\n * the dropdown menu. This sets the dropdown menu's `aria-labelledby` attribute to provide a text equivalent for\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n */\n @Input()\n public ariaLabelledBy: string | undefined;\n\n /**\n * The ARIA role for the dropdown menu\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the dropdown menu functions and what it controls. The dropdown button\n * inherits this value to set its `aria-haspopup` property. For information\n * about how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menu\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menu';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n /**\n * Whether to use the browser's native focus function when users navigate through menu\n * items with the keyboard. To disable the native focus function, set this property to `false`.\n * For example, to let users interact with the dropdown menu but keep the keyboard focus on a\n * different element, set this property to `false`.\n * @default true\n * @internal\n */\n @Input()\n public set useNativeFocus(value: boolean | undefined) {\n this.#_useNativeFocus = value ?? true;\n }\n\n public get useNativeFocus(): boolean {\n return this.#_useNativeFocus;\n }\n\n /**\n * Fires when the dropdown menu's active index or selected item changes. This event provides an\n * observable to emit changes, and the response is of\n * the SkyDropdownMenuChange type.\n * @internal\n */\n @Output()\n public menuChanges = new EventEmitter<SkyDropdownMenuChange>();\n\n public dropdownMenuId = `sky-dropdown-menu-${++nextId}`;\n\n public set menuIndex(value: number) {\n if (value < 0) {\n value = this.menuItems.length - 1;\n }\n\n if (value >= this.menuItems.length) {\n value = 0;\n }\n\n this.#_menuIndex = value;\n }\n\n public get menuIndex(): number {\n return this.#_menuIndex;\n }\n\n @ContentChildren(SkyDropdownItemComponent, { descendants: true })\n public menuItems!: QueryList<SkyDropdownItemComponent>;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaRole = 'menu';\n\n #_menuIndex = 0;\n\n #_useNativeFocus = true;\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #dropdownComponent: SkyDropdownComponent | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n @Optional() dropdownComponent?: SkyDropdownComponent,\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#dropdownComponent = dropdownComponent;\n }\n\n public ngAfterContentInit(): void {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.menuId = this.dropdownMenuId;\n this.#dropdownComponent.menuAriaRole = this.ariaRole;\n\n this.#dropdownComponent.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n case SkyDropdownMessageType.Close:\n this.reset();\n break;\n\n case SkyDropdownMessageType.FocusFirstItem:\n this.focusFirstItem();\n break;\n\n case SkyDropdownMessageType.FocusNextItem:\n this.focusNextItem();\n break;\n\n case SkyDropdownMessageType.FocusPreviousItem:\n this.focusPreviousItem();\n break;\n\n case SkyDropdownMessageType.FocusLastItem:\n this.focusLastItem();\n break;\n }\n });\n\n this.menuChanges\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change: SkyDropdownMenuChange) => {\n // Close the dropdown when a menu item is selected.\n if (change.selectedItem) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n }\n\n if (change.items) {\n // Update the popover style and position whenever the number of items changes.\n this.#sendMessage(SkyDropdownMessageType.Reposition);\n }\n });\n }\n\n // Reset dropdown whenever the menu items change.\n this.menuItems.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((items: QueryList<SkyDropdownItemComponent>) => {\n this.reset();\n this.menuChanges.emit({\n items: items.toArray(),\n });\n });\n\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public focusFirstItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = 0;\n\n const firstItem = this.#getItemByIndex(this.menuIndex);\n if (firstItem && firstItem.isFocusable()) {\n this.#focusItem(firstItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public focusLastItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = this.menuItems.length - 1;\n\n const lastItem = this.#getItemByIndex(this.menuIndex);\n if (lastItem && lastItem.isFocusable()) {\n this.#focusItem(lastItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusPreviousItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex--;\n\n const previousItem = this.#getItemByIndex(this.menuIndex);\n if (previousItem && previousItem.isFocusable()) {\n this.#focusItem(previousItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusNextItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex++;\n\n const nextItem = this.#getItemByIndex(this.menuIndex);\n if (nextItem && nextItem.isFocusable()) {\n this.#focusItem(nextItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public reset(): void {\n this.#_menuIndex = -1;\n this.#resetItemsActiveState();\n this.#changeDetector.markForCheck();\n }\n\n #resetItemsActiveState(): void {\n this.menuItems.forEach((item: SkyDropdownItemComponent) => {\n item.resetState();\n });\n }\n\n #focusItem(item: SkyDropdownItemComponent): void {\n this.#resetItemsActiveState();\n item.focusElement(this.useNativeFocus);\n this.menuChanges.emit({\n activeIndex: this.menuIndex,\n });\n }\n\n #getItemByIndex(index: number): SkyDropdownItemComponent | undefined {\n return this.menuItems.find((_, i) => i === index);\n }\n\n #selectItemByEventTarget(target: EventTarget): void {\n const selectedItem = this.menuItems.find(\n (item: SkyDropdownItemComponent, i: number) => {\n const found = item.elementRef.nativeElement.contains(target);\n\n if (found) {\n this.menuIndex = i;\n this.menuChanges.next({\n activeIndex: this.menuIndex,\n });\n }\n\n return found;\n },\n );\n\n /* istanbul ignore else */\n if (selectedItem) {\n this.menuChanges.next({\n selectedItem,\n });\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.#dropdownComponent?.messageStream?.next({ type });\n }\n\n #addEventListeners(): void {\n const dropdownMenuElement = this.#elementRef.nativeElement;\n\n observableFromEvent<MouseEvent>(dropdownMenuElement, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n this.#selectItemByEventTarget(event.target as EventTarget);\n });\n\n observableFromEvent<KeyboardEvent>(dropdownMenuElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'arrowdown':\n case 'down':\n this.focusNextItem();\n event.preventDefault();\n break;\n\n case 'arrowup':\n case 'up':\n this.focusPreviousItem();\n event.preventDefault();\n break;\n\n case 'tab':\n this.#sendMessage(SkyDropdownMessageType.Close);\n\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n break;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = true;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = false;\n // Allow the dropdown component to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (\n this.#dropdownComponent &&\n this.#dropdownComponent.trigger === 'hover' &&\n this.#dropdownComponent.isMouseEnter === false\n ) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n\n #hasFocusableItems(): boolean {\n const found = this.menuItems.find((item) => item.isFocusable());\n return found !== undefined;\n }\n}\n","<div\n class=\"sky-dropdown-menu sky-shadow sky-elevation-4\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [id]=\"dropdownMenuId\"\n>\n <ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n SkyAffixModule,\n SkyIdModule,\n SkyScreenReaderLabelDirective,\n} from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyDropdownButtonComponent } from './dropdown-button.component';\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownMenuComponent } from './dropdown-menu.component';\nimport { SkyDropdownTriggerDirective } from './dropdown-trigger.directive';\nimport { SkyDropdownComponent } from './dropdown.component';\n\n@NgModule({\n declarations: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyDropdownTriggerDirective,\n SkyIconModule,\n SkyIdModule,\n SkyPopoversResourcesModule,\n SkyScreenReaderLabelDirective,\n SkyThemeModule,\n ],\n exports: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n SkyDropdownTriggerDirective,\n ],\n})\nexport class SkyDropdownModule {}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * @internal\n */\nexport const skyPopoverAnimation: AnimationTriggerMetadata = trigger(\n 'skyPopoverAnimation',\n [\n state(\n 'void',\n style({\n opacity: 0,\n }),\n ),\n state(\n 'open',\n style({\n opacity: 1,\n }),\n ),\n state(\n 'closed',\n style({\n opacity: 0,\n }),\n ),\n transition('void => *', [animate('250ms')]),\n transition('open => closed', [animate('150ms')]),\n transition('closed => open', [animate('150ms')]),\n ],\n);\n","import { SkyAffixHorizontalAlignment, SkyAffixPlacement } from '@skyux/core';\n\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\nexport function parseAffixPlacement(\n placement: SkyPopoverPlacement,\n): SkyAffixPlacement {\n switch (placement) {\n case 'above':\n return 'above';\n case 'below':\n return 'below';\n case 'right':\n return 'right';\n case 'left':\n return 'left';\n /* istanbul ignore next */\n default:\n throw `SkyAffixPlacement does not have a matching value for '${placement}'!`;\n }\n}\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyPopoverAlignment,\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import { TemplateRef } from '@angular/core';\n\n/**\n * @internal\n */\nexport class SkyPopoverContext {\n public readonly contentTemplateRef: TemplateRef<unknown>;\n\n constructor(args: { contentTemplateRef: TemplateRef<unknown> }) {\n this.contentTemplateRef = args.contentTemplateRef;\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyAffixAutoFitContext,\n SkyAffixConfig,\n SkyAffixService,\n SkyAffixer,\n SkyCoreAdapterService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n debounceTime,\n distinctUntilChanged,\n map,\n fromEvent as observableFromEvent,\n takeUntil,\n} from 'rxjs';\n\nimport { skyPopoverAnimation } from './popover-animation';\nimport { SkyPopoverAnimationState } from './popover-animation-state';\nimport { SkyPopoverContext } from './popover-context';\nimport {\n parseAffixHorizontalAlignment,\n parseAffixPlacement,\n} from './popover-extensions';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss'],\n animations: [skyPopoverAnimation],\n standalone: false,\n})\nexport class SkyPopoverContentComponent implements OnInit, OnDestroy {\n @HostBinding('id')\n protected popoverId: string | undefined;\n\n public animationState: SkyPopoverAnimationState = 'closed';\n\n public get closed(): Observable<void> {\n return this.#_closed.asObservable();\n }\n\n public get opened(): Observable<void> {\n return this.#_opened.asObservable();\n }\n\n public get isMouseEnter(): Observable<boolean> {\n return this.#_isMouseEnter.asObservable();\n }\n\n public affixer: SkyAffixer | undefined;\n\n public enableAnimations = true;\n\n public horizontalAlignment: SkyPopoverAlignment = 'center';\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.animationState = value ? 'open' : 'closed';\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n public placement: SkyPopoverPlacement | null = null;\n\n public popoverTitle: string | undefined;\n\n public popoverType: SkyPopoverType = 'info';\n\n public themeName: string | undefined;\n\n @ViewChild('arrowRef', {\n read: ElementRef,\n static: true,\n })\n public arrowRef: ElementRef | undefined;\n\n @ViewChild('popoverRef', {\n read: ElementRef,\n static: true,\n })\n public popoverRef: ElementRef | undefined;\n\n @ViewChild('contentTarget', {\n read: ViewContainerRef,\n static: true,\n })\n public set contentTarget(value: ViewContainerRef | undefined) {\n if (value) {\n value.createEmbeddedView(this.#context.contentTemplateRef);\n }\n }\n\n #caller: ElementRef | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_closed = new Subject<void>();\n\n #_isMouseEnter = new Subject<boolean>();\n\n #_isOpen = false;\n\n #_opened = new Subject<void>();\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #affixService: SkyAffixService;\n #arrowAffixer: SkyAffixer | undefined;\n #coreAdapterService: SkyCoreAdapterService;\n #context: SkyPopoverContext;\n #themeSvc: SkyThemeService | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n affixService: SkyAffixService,\n coreAdapterService: SkyCoreAdapterService,\n context: SkyPopoverContext,\n @Optional() themeSvc?: SkyThemeService,\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#affixService = affixService;\n this.#coreAdapterService = coreAdapterService;\n this.#context = context;\n this.#themeSvc = themeSvc;\n }\n\n public hasFocusableContent(): boolean {\n return (\n this.#coreAdapterService.getFocusableChildren(\n this.popoverRef?.nativeElement,\n ).length > 0\n );\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n\n /*istanbul ignore else*/\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n /*istanbul ignore next*/\n this.themeName = themeSettings.currentSettings?.theme?.name;\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#_closed.complete();\n this.#_isMouseEnter.complete();\n this.#_opened.complete();\n\n /* istanbul ignore else */\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n\n /* istanbul ignore else */\n if (this.#arrowAffixer) {\n this.#arrowAffixer.destroy();\n this.#arrowAffixer = undefined;\n }\n }\n\n public onAnimationEvent(event: AnimationEvent): void {\n if (event.fromState === 'void') {\n return;\n }\n\n if (event.phaseName === 'done') {\n if (event.toState === 'open') {\n this.#_opened.next();\n } else {\n this.#_closed.next();\n }\n }\n }\n\n public open(\n caller: ElementRef,\n config: {\n enableAnimations: boolean;\n horizontalAlignment: SkyPopoverAlignment;\n id: string;\n isStatic: boolean;\n placement: SkyPopoverPlacement;\n popoverTitle?: string;\n popoverType: SkyPopoverType;\n },\n ): void {\n this.#caller = caller;\n this.enableAnimations = config.enableAnimations;\n this.horizontalAlignment = config.horizontalAlignment;\n this.popoverId = config.id;\n this.placement = config.placement;\n this.popoverTitle = config.popoverTitle;\n this.popoverType = config.popoverType;\n\n this.#changeDetector.markForCheck();\n\n // Indicates if the popover should be displayed statically.\n // Please note: This feature is internal-only and used by the visual tests to capture multiple\n // states simultaneously without the overhead of event listeners.\n /* istanbul ignore if */\n if (config.isStatic) {\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n return;\n }\n\n // Let the styles render before gauging the affix dimensions.\n setTimeout(() => {\n /* istanbul ignore if */\n if (!this.popoverRef?.nativeElement || this.#ngUnsubscribe.closed) {\n return;\n }\n\n if (!this.affixer) {\n this.#setupAffixer();\n }\n\n const affixOptions: SkyAffixConfig = {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment,\n ),\n isSticky: true,\n placement: parseAffixPlacement(this.placement as SkyPopoverPlacement),\n };\n\n // Ensure vertical alignment is set according to the popover's placement value.\n if (\n affixOptions.placement === 'left' ||\n affixOptions.placement === 'right'\n ) {\n affixOptions.verticalAlignment = 'middle';\n }\n\n this.affixer!.affixTo(this.#caller?.nativeElement, affixOptions);\n\n this.#updateArrowOffset();\n\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n });\n }\n\n public close(): void {\n this.isOpen = false;\n this.#changeDetector.markForCheck();\n }\n\n public applyFocus(): void {\n if (this.popoverRef && this.isOpen) {\n this.#coreAdapterService.getFocusableChildrenAndApplyFocus(\n this.popoverRef,\n '.sky-popover',\n true,\n );\n }\n }\n\n #setupAffixer(): void {\n if (this.popoverRef) {\n const affixer = this.#affixService.createAffixer(this.popoverRef);\n\n affixer.placementChange\n .pipe(\n takeUntil(this.#ngUnsubscribe),\n debounceTime(0, animationFrameScheduler),\n map((change) => change.placement),\n distinctUntilChanged(),\n )\n .subscribe((placement) => {\n this.placement = placement;\n this.#updateArrowOffset();\n this.#changeDetector.detectChanges();\n });\n\n this.affixer = affixer;\n }\n }\n\n #updateArrowOffset(): void {\n if (this.#caller && this.arrowRef && this.placement) {\n this.#arrowAffixer?.destroy();\n this.#arrowAffixer = this.#affixService.createAffixer(this.arrowRef);\n this.#arrowAffixer.affixTo(this.#caller?.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: false,\n horizontalAlignment: ['above', 'below'].includes(this.placement)\n ? 'center'\n : undefined,\n verticalAlignment: ['left', 'right'].includes(this.placement)\n ? 'middle'\n : undefined,\n isSticky: true,\n placement: parseAffixPlacement(this.placement as SkyPopoverPlacement),\n position: 'absolute',\n });\n }\n }\n\n #isFocusLeavingElement(event: KeyboardEvent): boolean {\n const focusableItems = this.#coreAdapterService.getFocusableChildren(\n this.#elementRef.nativeElement,\n );\n\n const isFirstItem = focusableItems[0] === event.target && event.shiftKey;\n\n const isLastItem =\n focusableItems[focusableItems.length - 1] === event.target &&\n !event.shiftKey;\n\n return focusableItems.length === 0 || isFirstItem || isLastItem;\n }\n\n #addEventListeners(): void {\n const hostElement = this.#elementRef.nativeElement;\n\n observableFromEvent(hostElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(true));\n\n observableFromEvent(hostElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(false));\n\n observableFromEvent<KeyboardEvent>(hostElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n break;\n\n // Since the popover now lives in an overlay at the bottom of the document body, we need\n // to handle the tab key ourselves. Otherwise, focus would be moved to the browser's\n // search bar.\n case 'tab':\n /*istanbul ignore else*/\n if (this.#isFocusLeavingElement(event)) {\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n });\n }\n}\n","<div\n #popoverRef\n class=\"sky-popover-container sky-popover-max-height\"\n [@.disabled]=\"!enableAnimations\"\n [@skyPopoverAnimation]=\"animationState\"\n [class.sky-popover-hidden]=\"!placement\"\n [ngClass]=\"[\n 'sky-popover-alignment-' + horizontalAlignment,\n 'sky-popover-placement-' + placement,\n 'sky-popover-' + popoverType\n ]\"\n (@skyPopoverAnimation.done)=\"onAnimationEvent($event)\"\n (@skyPopoverAnimation.start)=\"onAnimationEvent($event)\"\n>\n <div\n class=\"sky-popover\"\n tabindex=\"-1\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners sky-shadow': 'default',\n 'sky-elevation-4': 'modern'\n }\"\n >\n @if (popoverTitle) {\n <div\n class=\"sky-popover-header\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default'\n }\"\n >\n <h4 class=\"sky-popover-title sky-font-heading-4\">\n {{ popoverTitle }}\n </h4>\n </div>\n }\n <div\n class=\"sky-popover-body\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg': 'modern'\n }\"\n >\n <ng-container #contentTarget />\n </div>\n </div>\n <span #arrowRef aria-hidden=\"true\" class=\"sky-popover-arrow\"></span>\n</div>\n","import {\n Component,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyIdService,\n SkyOverlayInstance,\n SkyOverlayService,\n SkyStackingContext,\n} from '@skyux/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverContext } from './popover-context';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n@Component({\n selector: 'sky-popover',\n templateUrl: './popover.component.html',\n standalone: false,\n})\nexport class SkyPopoverComponent implements OnDestroy {\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n * The `skyPopoverAlignment` property on the popover directive takes precedence over this property when specified.\n * @default \"center\"\n */\n @Input()\n public set alignment(value: SkyPopoverAlignment | undefined) {\n this.#_alignment = value ?? 'center';\n }\n\n public get alignment(): SkyPopoverAlignment {\n return this.#_alignment;\n }\n\n /**\n * The placement of the popover in relation to the trigger element.\n * The `skyPopoverPlacement` property on the popover directive takes precedence over this property when specified.\n * @default \"above\"\n */\n @Input()\n public set placement(value: SkyPopoverPlacement | undefined) {\n this.#_placement = value ?? 'above';\n }\n\n public get placement(): SkyPopoverPlacement {\n return this.#_placement;\n }\n\n /**\n * The title for the popover.\n */\n @Input()\n public popoverTitle: string | undefined;\n\n /**\n * The type of popover.\n * @default \"info\"\n */\n @Input()\n public set popoverType(value: SkyPopoverType | undefined) {\n this.#_popoverType = value ?? 'info';\n }\n\n public get popoverType(): SkyPopoverType {\n return this.#_popoverType;\n }\n\n /**\n * Fires when users close the popover.\n */\n @Output()\n public popoverClosed = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Fires when users open the popover.\n */\n @Output()\n public popoverOpened = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Whether the popover is in the process of being opened or closed.\n * @internal\n */\n public isActive = false;\n\n /**\n * Used by unit tests to disable animations since the component is injected at the bottom of the\n * document body.\n * @internal\n */\n public enableAnimations = true;\n\n public isMouseEnter = false;\n\n public popoverId: string;\n\n @ViewChild('templateRef', {\n read: TemplateRef,\n static: true,\n })\n public templateRef: TemplateRef<unknown> | undefined;\n\n #contentRef!: SkyPopoverContentComponent;\n\n #isMarkedForCloseOnMouseLeave = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #overlay: SkyOverlayInstance | undefined;\n\n #_alignment: SkyPopoverAlignment = 'center';\n\n #_placement: SkyPopoverPlacement = 'above';\n\n #_popoverType: SkyPopoverType = 'info';\n\n readonly #environmentInjector = inject(EnvironmentInjector);\n\n #overlayService: SkyOverlayService;\n\n #zIndex: Observable<number> | undefined;\n\n constructor(\n overlayService: SkyOverlayService,\n @Optional()\n @Inject(SKY_STACKING_CONTEXT)\n stackingContext?: SkyStackingContext,\n ) {\n this.#overlayService = overlayService;\n this.#zIndex = stackingContext?.zIndex;\n\n this.popoverId = inject(SkyIdService).generateId();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n /**\n * Positions the popover next to a given caller element.\n * @param caller The element that opened the popover.\n * @param placement The placement of the popover.\n * @param alignment The horizontal alignment of the popover.\n * @internal\n */\n public positionNextTo(\n caller: ElementRef,\n placement?: SkyPopoverPlacement,\n alignment?: SkyPopoverAlignment,\n ): void {\n if (!this.#overlay) {\n this.#setupOverlay();\n }\n\n this.placement = placement ?? this.placement;\n this.alignment = alignment ?? this.alignment;\n this.isActive = true;\n\n this.#contentRef.open(caller, {\n enableAnimations: this.enableAnimations,\n horizontalAlignment: this.alignment,\n id: this.popoverId,\n isStatic: false,\n placement: this.placement,\n popoverTitle: this.popoverTitle,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover.\n * @internal\n */\n public close(): void {\n /*istanbul ignore next*/\n this.#contentRef?.close();\n }\n\n /**\n * Brings focus to the popover element if its open.\n * @internal\n */\n public applyFocus(): void {\n /*istanbul ignore next*/\n this.#contentRef?.applyFocus();\n }\n\n /**\n * Adds a flag to the popover to close when the mouse leaves the popover's bounds.\n * @internal\n */\n public markForCloseOnMouseLeave(): void {\n this.#isMarkedForCloseOnMouseLeave = true;\n }\n\n public hasFocusableContent(): boolean {\n return this.#contentRef.hasFocusableContent();\n }\n\n #setupOverlay(): void {\n if (this.templateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n environmentInjector: this.#environmentInjector,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.close();\n });\n\n const contentRef = overlay.attachComponent(SkyPopoverContentComponent, [\n {\n provide: SkyPopoverContext,\n useValue: new SkyPopoverContext({\n contentTemplateRef: this.templateRef,\n }),\n },\n ]);\n\n contentRef.opened.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n this.popoverOpened.emit(this);\n });\n\n contentRef.closed.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n /*istanbul ignore else*/\n if (this.isActive && this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n this.isActive = false;\n this.popoverClosed.emit(this);\n }\n });\n\n contentRef.isMouseEnter\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((isMouseEnter) => {\n this.isMouseEnter = isMouseEnter;\n if (this.#isMarkedForCloseOnMouseLeave) {\n this.#isMarkedForCloseOnMouseLeave = false;\n this.close();\n }\n });\n\n this.#overlay = overlay;\n this.#contentRef = contentRef;\n }\n }\n}\n","<ng-template #templateRef>\n <ng-content />\n</ng-template>\n","import {\n ElementRef,\n Injectable,\n OnDestroy,\n Renderer2,\n inject,\n} from '@angular/core';\nimport { SkyIdService } from '@skyux/core';\n\n/**\n * Inserts an empty \"pointer\" element after the host element to direct screen\n * readers to the opened popover content. Popover content is appended to the\n * document body, but it needs to be associated with the host element to meet\n * accessibility requirements. This is done by setting `aria-owns` on the\n * pointer element, which instructs the screen reader to consider the popover\n * contents as a child of the pointer element. We cannot set `aria-owns` on\n * the host element because it is nearly always a button, and buttons cannot\n * have block-level children.\n * @see https://github.com/w3c/html-aria/issues/124\n * @internal\n */\n@Injectable()\nexport class SkyPopoverSRPointerService implements OnDestroy {\n #srPointerEl: HTMLSpanElement | undefined;\n\n readonly #renderer = inject(Renderer2);\n readonly #srPointerId = inject(SkyIdService).generateId();\n readonly #hostEl = inject(ElementRef<HTMLElement>);\n\n public ngOnDestroy(): void {\n this.destroySRPointerEl();\n }\n\n public createSRPointerEl(): void {\n const pointerEl = this.#renderer.createElement('span');\n this.#renderer.setAttribute(pointerEl, 'id', this.#srPointerId);\n this.#srPointerEl = pointerEl;\n\n const hostEl = this.#hostEl?.nativeElement;\n this.#renderer.setAttribute(hostEl, 'aria-controls', this.#srPointerId);\n hostEl?.parentNode?.insertBefore(pointerEl, hostEl.nextSibling);\n }\n\n public destroySRPointerEl(): void {\n this.#srPointerEl?.remove();\n this.#srPointerEl = undefined;\n }\n\n public updateAriaAttributes(options: {\n ariaExpanded: boolean;\n ariaOwns?: string;\n }): void {\n const hostEl = this.#hostEl?.nativeElement;\n const pointerEl = this.#srPointerEl;\n\n // Only set attributes if the pointer element exists.\n if (pointerEl) {\n this.#renderer.setAttribute(\n hostEl,\n 'aria-expanded',\n options.ariaExpanded ? 'true' : 'false',\n );\n\n if (options.ariaExpanded === true) {\n if (options.ariaOwns) {\n this.#renderer.setAttribute(pointerEl, 'aria-owns', options.ariaOwns);\n }\n } else {\n this.#renderer.removeAttribute(pointerEl, 'aria-owns');\n }\n } else {\n this.#renderer.removeAttribute(hostEl, 'aria-expanded');\n }\n }\n}\n","/**\n * The type of message to send to the popover component.\n */\nexport enum SkyPopoverMessageType {\n /**\n * Opens the popover.\n */\n Open = 0,\n\n /**\n * Closes the popover.\n */\n Close = 1,\n\n /**\n * Repositions the popover to the appropriate position.\n * This is useful for when the popover's width and height change while it is open.\n */\n Reposition = 2,\n\n /**\n * Brings focus to the popover element.\n */\n Focus = 3,\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\n\nimport { Subject, Subscription, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverSRPointerService } from './popover-sr-pointer.service';\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverMessage } from './types/popover-message';\nimport { SkyPopoverMessageType } from './types/popover-message-type';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverTrigger } from './types/popover-trigger';\n\n@Directive({\n providers: [SkyPopoverSRPointerService],\n selector: '[skyPopover]',\n standalone: false,\n})\nexport class SkyPopoverDirective implements OnInit, OnDestroy {\n /**\n * Appends the `sky-popover-trigger` class to the trigger element.\n * @internal\n */\n @HostBinding('class')\n protected directiveClass = 'sky-popover-trigger';\n\n protected popoverId: string | undefined;\n\n /**\n * The popover component to display. Add this directive to the trigger element that opens the popover.\n * @required\n */\n @Input()\n public set skyPopover(value: SkyPopoverComponent | undefined) {\n this.popoverId = value?.popoverId;\n this.#_popover = value;\n this.#updateSRPointer(value);\n }\n\n public get skyPopover(): SkyPopoverComponent | undefined {\n return this.#_popover;\n }\n\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverAlignment: SkyPopoverAlignment | undefined;\n\n /**\n * The RxJS `Subject` to send commands to the popover that respect the `SkyPopoverMessage` type.\n */\n @Input()\n public set skyPopoverMessageStream(\n value: Subject<SkyPopoverMessage> | undefined,\n ) {\n this.#_skyPopoverMessageStream = value ?? new Subject<SkyPopoverMessage>();\n this.#subscribeMessageStream();\n }\n\n public get skyPopoverMessageStream(): Subject<SkyPopoverMessage> {\n return this.#_skyPopoverMessageStream;\n }\n\n #_skyPopoverMessageStream = new Subject<SkyPopoverMessage>();\n\n #messageStreamSub: Subscription | undefined;\n\n /**\n * The placement of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverPlacement: SkyPopoverPlacement | undefined;\n\n /**\n * The user action that displays the popover.\n * @deprecated To ensure usability on touch devices, trigger user-invoked\n * popovers on `click` actions rather than `mouseenter` actions.\n */\n @Input()\n public set skyPopoverTrigger(value: SkyPopoverTrigger | undefined) {\n this.#_trigger = value ?? 'click';\n this.#updateAriaAttributes();\n }\n\n public get skyPopoverTrigger(): SkyPopoverTrigger {\n return this.#_trigger;\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #_popover: SkyPopoverComponent | undefined;\n\n #_trigger: SkyPopoverTrigger = 'click';\n\n #elementRef: ElementRef;\n #expanded = false;\n #popoverClosedSubscription: Subscription | undefined;\n\n readonly #srPointerSvc = inject(SkyPopoverSRPointerService);\n\n constructor(elementRef: ElementRef) {\n this.#elementRef = elementRef;\n this.#subscribeMessageStream();\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#removeEventListeners();\n this.#unsubscribeMessageStream();\n this.#popoverClosedSubscription?.unsubscribe();\n }\n\n public togglePopover(): void {\n if (this.skyPopover?.isActive) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n return;\n }\n\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n\n #positionPopover(): void {\n this.skyPopover?.positionNextTo(\n this.#elementRef,\n this.skyPopoverPlacement,\n this.skyPopoverAlignment,\n );\n }\n\n #closePopover(): void {\n this.skyPopover?.close();\n }\n\n #closePopoverOrMarkForClose(): void {\n if (this.skyPopover?.isMouseEnter) {\n this.skyPopover.markForCloseOnMouseLeave();\n } else {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n }\n\n #addEventListeners(): void {\n const element = this.#elementRef.nativeElement;\n\n observableFromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n if (!this.skyPopover?.isActive) {\n return;\n }\n\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyPopoverMessageType.Close);\n event.preventDefault();\n event.stopPropagation();\n break;\n\n case 'tab':\n if (this.skyPopover.hasFocusableContent()) {\n this.#sendMessage(SkyPopoverMessageType.Focus);\n event.stopPropagation();\n event.preventDefault();\n } else {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n break;\n }\n });\n\n observableFromEvent(element, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.togglePopover();\n }\n });\n\n observableFromEvent(element, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = true;\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = false;\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n if (document.activeElement !== element) {\n // Give the popover a chance to set its isMouseEnter flag before checking to see\n // if it should be closed.\n setTimeout(() => {\n this.#closePopoverOrMarkForClose();\n });\n }\n }\n }\n });\n\n observableFromEvent(element, 'focusin')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'focusout')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n }\n });\n }\n\n #removeEventListeners(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #handleIncomingMessages(message: SkyPopoverMessage): void {\n switch (message.type) {\n case SkyPopoverMessageType.Open:\n this.#positionPopover();\n this.#expanded = true;\n this.#updateAriaAttributes();\n break;\n\n case SkyPopoverMessageType.Close:\n /*istanbul ignore else*/\n if (this.skyPopover?.isActive) {\n this.#closePopover();\n }\n break;\n\n case SkyPopoverMessageType.Reposition:\n // Only reposition the popover if it is already open.\n if (this.skyPopover?.isActive) {\n this.#positionPopover();\n }\n break;\n\n case SkyPopoverMessageType.Focus:\n this.skyPopover?.applyFocus();\n break;\n }\n }\n\n #sendMessage(messageType: SkyPopoverMessageType): void {\n this.skyPopoverMessageStream.next({ type: messageType });\n }\n\n #subscribeMessageStream(): void {\n this.#unsubscribeMessageStream();\n\n this.#messageStreamSub = this.skyPopoverMessageStream.subscribe(\n (message) => {\n this.#handleIncomingMessages(message);\n },\n );\n }\n\n #unsubscribeMessageStream(): void {\n if (this.#messageStreamSub) {\n this.#messageStreamSub.unsubscribe();\n this.#messageStreamSub = undefined;\n }\n }\n\n #updateAriaAttributes(): void {\n this.#srPointerSvc.updateAriaAttributes({\n ariaExpanded: this.#expanded,\n ariaOwns: this.popoverId,\n });\n }\n\n #updateSRPointer(popover: SkyPopoverComponent | undefined): void {\n this.#popoverClosedSubscription?.unsubscribe();\n this.#popoverClosedSubscription = popover\n ? popover.popoverClosed.subscribe(() => {\n this.#expanded = false;\n this.#updateAriaAttributes();\n })\n : undefined;\n\n if (popover) {\n if (this.skyPopoverTrigger === 'click') {\n this.#srPointerSvc.createSRPointerEl();\n }\n } else {\n this.#srPointerSvc.destroySRPointerEl();\n }\n\n this.#updateAriaAttributes();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAffixModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverDirective } from './popover.directive';\n\n@NgModule({\n declarations: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n})\nexport class SkyPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["parseAffixHorizontalAlignment","i2.SkyDropdownTriggerDirective","i4","i5","observableFromEvent","i1.SkyDropdownComponent","takeUntil","i1","i2.SkyPopoverContext","i3"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/popovers",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.29.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"@angular/common": "^19.2.14",
|
|
22
22
|
"@angular/core": "^19.2.14",
|
|
23
23
|
"@angular/platform-browser": "^19.2.14",
|
|
24
|
-
"@skyux-sdk/testing": "12.
|
|
25
|
-
"@skyux/core": "12.
|
|
26
|
-
"@skyux/i18n": "12.
|
|
27
|
-
"@skyux/icon": "12.
|
|
28
|
-
"@skyux/theme": "12.
|
|
24
|
+
"@skyux-sdk/testing": "12.29.0",
|
|
25
|
+
"@skyux/core": "12.29.0",
|
|
26
|
+
"@skyux/i18n": "12.29.0",
|
|
27
|
+
"@skyux/icon": "12.29.0",
|
|
28
|
+
"@skyux/theme": "12.29.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"tslib": "^2.8.1"
|