}
}
function dropdownMenuKeyDown(event) {
- let button, dropdown;
const activeItem = document.activeElement;
if (activeItem.nodeName !== 'LI') {
return;
if (target.childElementCount === 1 && (target.children[0].nodeName === 'SPAN' || target.children[0].nodeName === 'A')) {
target = target.children[0];
}
- dropdown = _dropdowns.get(_activeTargetId);
- button = dropdown.querySelector('.dropdownToggle');
+ const dropdown = _dropdowns.get(_activeTargetId);
+ const button = dropdown.querySelector('.dropdownToggle');
const mouseEvent = dropdown.dataset.a11yMouseEvent || 'click';
Core.triggerEvent(target, mouseEvent);
- if (button)
+ if (button) {
button.focus();
+ }
}
else if (event.key === 'Escape' || event.key === 'Tab') {
event.preventDefault();
- dropdown = _dropdowns.get(_activeTargetId);
- button = dropdown.querySelector('.dropdownToggle');
+ const dropdown = _dropdowns.get(_activeTargetId);
+ let button = dropdown.querySelector('.dropdownToggle');
// Remote controlled drop-down menus may not have a dedicated toggle button, instead the
// `dropdown` element itself is the button.
if (button === null && !dropdown.classList.contains('dropdown')) {
// Legacy call required for `WCF.Dropdown`
_toggle(event, targetId, alternateElement, disableAutoFocus) {
return toggle(event, targetId, alternateElement, disableAutoFocus);
- }
+ },
};
return UiDropdownSimple;
});
}
function dropdownMenuKeyDown(event: KeyboardEvent): void {
- let button, dropdown;
-
const activeItem = document.activeElement as HTMLElement;
if (activeItem.nodeName !== 'LI') {
return;
target = target.children[0] as HTMLElement;
}
- dropdown = _dropdowns.get(_activeTargetId);
- button = dropdown.querySelector('.dropdownToggle');
+ const dropdown = _dropdowns.get(_activeTargetId)!;
+ const button = dropdown.querySelector('.dropdownToggle') as HTMLElement;
const mouseEvent = dropdown.dataset.a11yMouseEvent || 'click';
Core.triggerEvent(target, mouseEvent);
- if (button) button.focus();
+ if (button) {
+ button.focus();
+ }
} else if (event.key === 'Escape' || event.key === 'Tab') {
event.preventDefault();
- dropdown = _dropdowns.get(_activeTargetId);
- button = dropdown.querySelector('.dropdownToggle');
+ const dropdown = _dropdowns.get(_activeTargetId)!;
+ let button: HTMLElement | null = dropdown.querySelector('.dropdownToggle');
+
// Remote controlled drop-down menus may not have a dedicated toggle button, instead the
// `dropdown` element itself is the button.
if (button === null && !dropdown.classList.contains('dropdown')) {
// Legacy call required for `WCF.Dropdown`
_toggle(event: KeyboardEvent | MouseEvent | null, targetId?: string, alternateElement?: HTMLElement, disableAutoFocus?: boolean): boolean {
return toggle(event, targetId, alternateElement, disableAutoFocus);
- }
+ },
};
export = UiDropdownSimple;