@skyux/popovers 12.13.2 → 12.14.1

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.
@@ -126,11 +126,11 @@ class SkyDropdownItemComponent {
126
126
  return this.elementRef.nativeElement.querySelector('button,a');
127
127
  }
128
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyDropdownItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyDropdownItemComponent, isStandalone: false, selector: "sky-dropdown-item", inputs: { ariaRole: "ariaRole" }, ngImport: i0, template: "<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", styles: [".sky-dropdown-item:not(.sky-theme-modern *){--sky-override-dropdown-item-active-class-background: #eeeeef;--sky-override-dropdown-item-border-radius: 0px;--sky-override-dropdown-item-box-shadow: none;--sky-override-dropdown-item-color-background: transparent;--sky-override-dropdown-item-color-text: #212327;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-color-text: var( --sky-text-color-deemphasized );--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic;--sky-override-dropdown-item-focus-visible-background: #eeeeef;--sky-override-dropdown-item-hover-background: #eeeeef;--sky-override-dropdown-item-margin: 4px;--sky-override-dropdown-item-padding: 3px 20px}.sky-theme-modern:not(.sky-theme-brand-base) .sky-dropdown-item{--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic}.sky-dropdown-item{background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);border:none;display:block;margin:var(--sky-override-dropdown-item-margin, 0);min-width:160px;text-align:left;transition:box-shadow .15s}.sky-dropdown-item.sky-dropdown-item-active a,.sky-dropdown-item.sky-dropdown-item-active button{background-color:var(--sky-override-dropdown-item-active-class-background, var(--sky-color-background-action-tertiary-active))}.sky-dropdown-item>a,.sky-dropdown-item>button{border-radius:var(--sky-override-dropdown-item-border-radius, var(--sky-border-radius-s));background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base));border:none;color:var(--sky-override-dropdown-item-color-text, var(--sky-color-text-default));cursor:pointer;display:block;padding:var(--sky-override-dropdown-item-padding, var(--sky-space-inset-pillarbox-1_2-top-m) var(--sky-space-inset-pillarbox-1_2-left-m) var(--sky-space-inset-pillarbox-1_2-bottom-m) var(--sky-space-inset-pillarbox-1_2-right-m));text-align:left;width:100%}.sky-dropdown-item>a:hover,.sky-dropdown-item>button:hover{text-decoration:none;background-color:var(--sky-override-dropdown-item-hover-background, var(--sky-color-background-action-tertiary-hover));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-action-tertiary-hover))}.sky-dropdown-item>a:active,.sky-dropdown-item>button:active{background-color:var(--sky-override-dropdown-item-color-background, var(--sky-color-background-action-tertiary-active));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-action-tertiary-active))}.sky-dropdown-item>a:focus-visible:not(:active),.sky-dropdown-item>button:focus-visible:not(:active){background-color:var(--sky-override-dropdown-item-focus-visible-background, var(--sky-color-background-action-tertiary-focus));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-tertiary-focus), var(--sky-elevation-focus))}.sky-dropdown-item>a[disabled],.sky-dropdown-item>a[disabled]:hover,.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:active,.sky-dropdown-item>button[disabled],.sky-dropdown-item>button[disabled]:hover,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:active{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled));background-color:var(--sky-override-dropdown-item-disabled-color-background, var(--sky-color-background-action-tertiary-disabled));color:var(--sky-override-dropdown-item-disabled-color-text, var(--sky-color-text-deemphasized));cursor:default;font-size:var(--sky-override-dropdown-item-disabled-font-size, inherit);font-style:var(--sky-override-dropdown-item-disabled-font-style, inherit)}.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:hover:focus-visible,.sky-dropdown-item>a[disabled]:focus-visible:focus-visible,.sky-dropdown-item>a[disabled]:active:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:hover:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible:focus-visible,.sky-dropdown-item>button[disabled]:active:focus-visible{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled))}:host-context(.sky-theme-modern) .sky-dropdown-item>a,:host-context(.sky-theme-modern) .sky-dropdown-item>button{outline:none}.sky-theme-modern .sky-dropdown-item>a,.sky-theme-modern .sky-dropdown-item>button{outline:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: SkyDropdownItemComponent, isStandalone: false, selector: "sky-dropdown-item", inputs: { ariaRole: "ariaRole" }, ngImport: i0, template: "<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", styles: [".sky-dropdown-item:not(.sky-theme-modern *){--sky-override-dropdown-item-active-class-background: #eeeeef;--sky-override-dropdown-item-border-radius: 0px;--sky-override-dropdown-item-box-shadow: none;--sky-override-dropdown-item-box-shadow-focus: none;--sky-override-dropdown-item-color-background: transparent;--sky-override-dropdown-item-color-text: #212327;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-color-text: var( --sky-text-color-deemphasized );--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic;--sky-override-dropdown-item-focus-visible-background: #eeeeef;--sky-override-dropdown-item-hover-background: #eeeeef;--sky-override-dropdown-item-margin: 4px;--sky-override-dropdown-item-padding: 3px 20px}.sky-theme-modern:not(.sky-theme-brand-base) .sky-dropdown-item{--sky-override-dropdown-item-box-shadow-focus: inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-tertiary-focus), var(--sky-elevation-focus);--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic}.sky-dropdown-item{background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);border:none;display:block;margin:var(--sky-override-dropdown-item-margin, 0);min-width:160px;text-align:left;transition:box-shadow .15s}.sky-dropdown-item.sky-dropdown-item-active a,.sky-dropdown-item.sky-dropdown-item-active button{background-color:var(--sky-override-dropdown-item-active-class-background, var(--sky-color-background-action-tertiary-active))}.sky-dropdown-item>a,.sky-dropdown-item>button{border-radius:var(--sky-override-dropdown-item-border-radius, var(--sky-border-radius-s));background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base));border:none;color:var(--sky-override-dropdown-item-color-text, var(--sky-color-text-default));cursor:pointer;display:block;padding:var(--sky-override-dropdown-item-padding, var(--sky-space-inset-pillarbox-1_2-top-m) var(--sky-space-inset-pillarbox-1_2-left-m) var(--sky-space-inset-pillarbox-1_2-bottom-m) var(--sky-space-inset-pillarbox-1_2-right-m));text-align:left;width:100%}.sky-dropdown-item>a:hover,.sky-dropdown-item>button:hover{text-decoration:none;background-color:var(--sky-override-dropdown-item-hover-background, var(--sky-color-background-action-tertiary-hover));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-action-tertiary-hover))}.sky-dropdown-item>a:active,.sky-dropdown-item>button:active{background-color:var(--sky-override-dropdown-item-color-background, var(--sky-color-background-action-tertiary-active));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-action-tertiary-active))}.sky-dropdown-item>a:focus-visible:not(:active),.sky-dropdown-item>button:focus-visible:not(:active){background-color:var(--sky-override-dropdown-item-focus-visible-background, var(--sky-color-background-action-tertiary-focus));box-shadow:var(--sky-override-dropdown-item-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-tertiary-focus))}.sky-dropdown-item>a[disabled],.sky-dropdown-item>a[disabled]:hover,.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:active,.sky-dropdown-item>button[disabled],.sky-dropdown-item>button[disabled]:hover,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:active{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled));background-color:var(--sky-override-dropdown-item-disabled-color-background, var(--sky-color-background-action-tertiary-disabled));color:var(--sky-override-dropdown-item-disabled-color-text, var(--sky-color-text-deemphasized));cursor:default;font-size:var(--sky-override-dropdown-item-disabled-font-size, inherit);font-style:var(--sky-override-dropdown-item-disabled-font-style, inherit)}.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:hover:focus-visible,.sky-dropdown-item>a[disabled]:focus-visible:focus-visible,.sky-dropdown-item>a[disabled]:active:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:hover:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible:focus-visible,.sky-dropdown-item>button[disabled]:active:focus-visible{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled))}:host-context(.sky-theme-modern) .sky-dropdown-item>a,:host-context(.sky-theme-modern) .sky-dropdown-item>button{outline:none}.sky-theme-modern .sky-dropdown-item>a,.sky-theme-modern .sky-dropdown-item>button{outline:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
130
130
  }
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: SkyDropdownItemComponent, decorators: [{
132
132
  type: Component,
133
- args: [{ selector: 'sky-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<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", styles: [".sky-dropdown-item:not(.sky-theme-modern *){--sky-override-dropdown-item-active-class-background: #eeeeef;--sky-override-dropdown-item-border-radius: 0px;--sky-override-dropdown-item-box-shadow: none;--sky-override-dropdown-item-color-background: transparent;--sky-override-dropdown-item-color-text: #212327;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-color-text: var( --sky-text-color-deemphasized );--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic;--sky-override-dropdown-item-focus-visible-background: #eeeeef;--sky-override-dropdown-item-hover-background: #eeeeef;--sky-override-dropdown-item-margin: 4px;--sky-override-dropdown-item-padding: 3px 20px}.sky-theme-modern:not(.sky-theme-brand-base) .sky-dropdown-item{--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic}.sky-dropdown-item{background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);border:none;display:block;margin:var(--sky-override-dropdown-item-margin, 0);min-width:160px;text-align:left;transition:box-shadow .15s}.sky-dropdown-item.sky-dropdown-item-active a,.sky-dropdown-item.sky-dropdown-item-active button{background-color:var(--sky-override-dropdown-item-active-class-background, var(--sky-color-background-action-tertiary-active))}.sky-dropdown-item>a,.sky-dropdown-item>button{border-radius:var(--sky-override-dropdown-item-border-radius, var(--sky-border-radius-s));background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base));border:none;color:var(--sky-override-dropdown-item-color-text, var(--sky-color-text-default));cursor:pointer;display:block;padding:var(--sky-override-dropdown-item-padding, var(--sky-space-inset-pillarbox-1_2-top-m) var(--sky-space-inset-pillarbox-1_2-left-m) var(--sky-space-inset-pillarbox-1_2-bottom-m) var(--sky-space-inset-pillarbox-1_2-right-m));text-align:left;width:100%}.sky-dropdown-item>a:hover,.sky-dropdown-item>button:hover{text-decoration:none;background-color:var(--sky-override-dropdown-item-hover-background, var(--sky-color-background-action-tertiary-hover));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-action-tertiary-hover))}.sky-dropdown-item>a:active,.sky-dropdown-item>button:active{background-color:var(--sky-override-dropdown-item-color-background, var(--sky-color-background-action-tertiary-active));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-action-tertiary-active))}.sky-dropdown-item>a:focus-visible:not(:active),.sky-dropdown-item>button:focus-visible:not(:active){background-color:var(--sky-override-dropdown-item-focus-visible-background, var(--sky-color-background-action-tertiary-focus));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-tertiary-focus), var(--sky-elevation-focus))}.sky-dropdown-item>a[disabled],.sky-dropdown-item>a[disabled]:hover,.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:active,.sky-dropdown-item>button[disabled],.sky-dropdown-item>button[disabled]:hover,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:active{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled));background-color:var(--sky-override-dropdown-item-disabled-color-background, var(--sky-color-background-action-tertiary-disabled));color:var(--sky-override-dropdown-item-disabled-color-text, var(--sky-color-text-deemphasized));cursor:default;font-size:var(--sky-override-dropdown-item-disabled-font-size, inherit);font-style:var(--sky-override-dropdown-item-disabled-font-style, inherit)}.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:hover:focus-visible,.sky-dropdown-item>a[disabled]:focus-visible:focus-visible,.sky-dropdown-item>a[disabled]:active:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:hover:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible:focus-visible,.sky-dropdown-item>button[disabled]:active:focus-visible{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled))}:host-context(.sky-theme-modern) .sky-dropdown-item>a,:host-context(.sky-theme-modern) .sky-dropdown-item>button{outline:none}.sky-theme-modern .sky-dropdown-item>a,.sky-theme-modern .sky-dropdown-item>button{outline:none}\n"] }]
133
+ args: [{ selector: 'sky-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<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", styles: [".sky-dropdown-item:not(.sky-theme-modern *){--sky-override-dropdown-item-active-class-background: #eeeeef;--sky-override-dropdown-item-border-radius: 0px;--sky-override-dropdown-item-box-shadow: none;--sky-override-dropdown-item-box-shadow-focus: none;--sky-override-dropdown-item-color-background: transparent;--sky-override-dropdown-item-color-text: #212327;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-color-text: var( --sky-text-color-deemphasized );--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic;--sky-override-dropdown-item-focus-visible-background: #eeeeef;--sky-override-dropdown-item-hover-background: #eeeeef;--sky-override-dropdown-item-margin: 4px;--sky-override-dropdown-item-padding: 3px 20px}.sky-theme-modern:not(.sky-theme-brand-base) .sky-dropdown-item{--sky-override-dropdown-item-box-shadow-focus: inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-tertiary-focus), var(--sky-elevation-focus);--sky-override-dropdown-item-disabled-box-shadow: none;--sky-override-dropdown-item-disabled-color-background: transparent;--sky-override-dropdown-item-disabled-font-size: 15px;--sky-override-dropdown-item-disabled-font-style: italic}.sky-dropdown-item{background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);border:none;display:block;margin:var(--sky-override-dropdown-item-margin, 0);min-width:160px;text-align:left;transition:box-shadow .15s}.sky-dropdown-item.sky-dropdown-item-active a,.sky-dropdown-item.sky-dropdown-item-active button{background-color:var(--sky-override-dropdown-item-active-class-background, var(--sky-color-background-action-tertiary-active))}.sky-dropdown-item>a,.sky-dropdown-item>button{border-radius:var(--sky-override-dropdown-item-border-radius, var(--sky-border-radius-s));background-color:var(--sky-override-dropdown-item-color-background, --sky-color-background-action-tertiary-base);box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-action-tertiary-base));border:none;color:var(--sky-override-dropdown-item-color-text, var(--sky-color-text-default));cursor:pointer;display:block;padding:var(--sky-override-dropdown-item-padding, var(--sky-space-inset-pillarbox-1_2-top-m) var(--sky-space-inset-pillarbox-1_2-left-m) var(--sky-space-inset-pillarbox-1_2-bottom-m) var(--sky-space-inset-pillarbox-1_2-right-m));text-align:left;width:100%}.sky-dropdown-item>a:hover,.sky-dropdown-item>button:hover{text-decoration:none;background-color:var(--sky-override-dropdown-item-hover-background, var(--sky-color-background-action-tertiary-hover));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-action-tertiary-hover))}.sky-dropdown-item>a:active,.sky-dropdown-item>button:active{background-color:var(--sky-override-dropdown-item-color-background, var(--sky-color-background-action-tertiary-active));box-shadow:var(--sky-override-dropdown-item-box-shadow, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-action-tertiary-active))}.sky-dropdown-item>a:focus-visible:not(:active),.sky-dropdown-item>button:focus-visible:not(:active){background-color:var(--sky-override-dropdown-item-focus-visible-background, var(--sky-color-background-action-tertiary-focus));box-shadow:var(--sky-override-dropdown-item-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-action-tertiary-focus))}.sky-dropdown-item>a[disabled],.sky-dropdown-item>a[disabled]:hover,.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:active,.sky-dropdown-item>button[disabled],.sky-dropdown-item>button[disabled]:hover,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:active{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled));background-color:var(--sky-override-dropdown-item-disabled-color-background, var(--sky-color-background-action-tertiary-disabled));color:var(--sky-override-dropdown-item-disabled-color-text, var(--sky-color-text-deemphasized));cursor:default;font-size:var(--sky-override-dropdown-item-disabled-font-size, inherit);font-style:var(--sky-override-dropdown-item-disabled-font-style, inherit)}.sky-dropdown-item>a[disabled]:focus-visible,.sky-dropdown-item>a[disabled]:hover:focus-visible,.sky-dropdown-item>a[disabled]:focus-visible:focus-visible,.sky-dropdown-item>a[disabled]:active:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible,.sky-dropdown-item>button[disabled]:hover:focus-visible,.sky-dropdown-item>button[disabled]:focus-visible:focus-visible,.sky-dropdown-item>button[disabled]:active:focus-visible{box-shadow:var(--sky-override-dropdown-item-disabled-box-shadow, inset 0 0 0 var(--sky-border-width-action-disabled) var(--sky-color-border-action-tertiary-disabled))}:host-context(.sky-theme-modern) .sky-dropdown-item>a,:host-context(.sky-theme-modern) .sky-dropdown-item>button{outline:none}.sky-theme-modern .sky-dropdown-item>a,.sky-theme-modern .sky-dropdown-item>button{outline:none}\n"] }]
134
134
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], propDecorators: { ariaRole: [{
135
135
  type: Input
136
136
  }] } });
@@ -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.7", ngImport: i0, type: SkyDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
692
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", 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-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-soft));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-default));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-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) calc(var(--sky-space-inset-pillarbox-2_3-bottom-m) - var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l))) var(--sky-space-inset-pillarbox-2_3-left-m));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-space-inset-balanced-xs));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-elevation-focus)}: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-elevation-focus)}.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 }); }
692
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", 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-soft));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-default));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-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) calc(var(--sky-space-inset-pillarbox-2_3-bottom-m) - var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l))) var(--sky-space-inset-pillarbox-2_3-left-m));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-space-inset-balanced-xs));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.7", 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-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-soft));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-default));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-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) calc(var(--sky-space-inset-pillarbox-2_3-bottom-m) - var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l))) var(--sky-space-inset-pillarbox-2_3-left-m));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-space-inset-balanced-xs));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-elevation-focus)}: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-elevation-focus)}.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"] }]
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-soft));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-default));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-space-inset-pillarbox-2_3-top-m) var(--sky-space-inset-pillarbox-2_3-right-m) calc(var(--sky-space-inset-pillarbox-2_3-bottom-m) - var(--sky-override-tab-selected-border-bottom-size, var(--sky-border-width-selected-l))) var(--sky-space-inset-pillarbox-2_3-left-m));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-space-inset-balanced-xs));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.13.2",
3
+ "version": "12.14.1",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,11 +21,11 @@
21
21
  "@angular/common": "^19.2.7",
22
22
  "@angular/core": "^19.2.7",
23
23
  "@angular/platform-browser": "^19.2.7",
24
- "@skyux-sdk/testing": "12.13.2",
25
- "@skyux/core": "12.13.2",
26
- "@skyux/i18n": "12.13.2",
27
- "@skyux/icon": "12.13.2",
28
- "@skyux/theme": "12.13.2"
24
+ "@skyux-sdk/testing": "12.14.1",
25
+ "@skyux/core": "12.14.1",
26
+ "@skyux/i18n": "12.14.1",
27
+ "@skyux/icon": "12.14.1",
28
+ "@skyux/theme": "12.14.1"
29
29
  },
30
30
  "dependencies": {
31
31
  "tslib": "^2.8.1"