Exclude disabled options from search

This commit is contained in:
Talia 2025-08-07 19:46:23 +02:00
parent aad018dad0
commit 7d6f2591f4
Signed by: darkwiiplayer
GPG key ID: 7808674088232B3E
2 changed files with 5 additions and 2 deletions

View file

@ -6,7 +6,7 @@
},
"type": "module",
"license": "MIT",
"version": "3.0.0",
"version": "3.0.1",
"url": "https://darkwiiplayer.github.io/BetterSelect/",
"scripts": {
"definitions": "tsc src/*.js --declaration --allowJs --emitDeclarationOnly"

View file

@ -445,18 +445,21 @@ export class BetterSelect extends HTMLElement {
this.close()
return
}
const candidates = /** @type {HTMLElement[]} */(Array.from(this.list.children).filter(child => !child.hasAttribute("hidden")))
const candidates = /** @type {HTMLElement[]} */(Array.from(this.list.children).filter(child => !child.hasAttribute("hidden") && !child.part.contains("disabled")))
if (candidates.length) {
this.setOption(candidates[0])
this.close()
}
}
static searchHideDisabled = true
/**
* @param {string} value
* @param {HTMLElement} item
*/
match(value, item) {
if (/** @type {Object} */(value && this.constructor).searchHideDisabled && item.part.contains("disabled")) return false
return item.innerText.toLowerCase().match(value.toLowerCase())
}