From ee758d3069cfa74053eadec03451c6854816419c Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 23 Mar 2023 17:21:32 -0600 Subject: [PATCH] Et2Select: Fix keyboard navigation in search results & sidebox category closes --- api/js/etemplate/Et2Select/Et2Select.ts | 3 ++- api/js/etemplate/Et2Select/SearchMixin.ts | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/api/js/etemplate/Et2Select/Et2Select.ts b/api/js/etemplate/Et2Select/Et2Select.ts index 66e117cc98..6f45f5048a 100644 --- a/api/js/etemplate/Et2Select/Et2Select.ts +++ b/api/js/etemplate/Et2Select/Et2Select.ts @@ -269,7 +269,7 @@ export class Et2Select extends Et2WithSearchMixin(Et2WidgetWithSelect) this.addEventListener("mousewheel", this._handleMouseWheel); this.addEventListener("mouseenter", this._handleMouseEnter); this.addEventListener("mouseup", this.handleOptionClick); - this.addEventListener("keyup", this.handleKeyDown); + this.addEventListener("keydown", this.handleKeyDown); this.updateComplete.then(() => { @@ -710,6 +710,7 @@ export class Et2Select extends Et2WithSearchMixin(Et2WidgetWithSelect) this.handleMenuHide(); } }); + event.stopPropagation(); } } diff --git a/api/js/etemplate/Et2Select/SearchMixin.ts b/api/js/etemplate/Et2Select/SearchMixin.ts index 9fba2ee50e..b41c8a5567 100644 --- a/api/js/etemplate/Et2Select/SearchMixin.ts +++ b/api/js/etemplate/Et2Select/SearchMixin.ts @@ -884,7 +884,10 @@ export const Et2WithSearchMixin = >(superclass // Pass off some keys to select if(['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) { - return this.handleKeyDown(event); + + // Strip out hidden non-matching selected & disabled items so key navigation works + this.menuItems = this.menuItems.filter(i => !i.disabled); + return super.handleKeyDown(event); } event.stopPropagation();