@synergy-design-system/components
Version:
28 lines (26 loc) • 1.12 kB
JavaScript
// src/components/combobox/option-renderer.ts
import "lit";
var defaultOptionRenderer = (option) => option;
var highlightOptionRenderer = (option, query) => {
if (!query) {
return option;
}
const clonedOption = option.cloneNode(true);
const optionLabel = clonedOption.getTextLabel();
clonedOption.selected = option.selected;
const queryIndex = optionLabel.toLowerCase().indexOf(query.toLowerCase());
const indexLabel = clonedOption.innerHTML.indexOf(optionLabel);
const mark = document.createElement("mark");
mark.textContent = optionLabel.slice(queryIndex, queryIndex + query.length);
mark.classList.add("syn-highlight-style");
const exchangedText = optionLabel.replace(new RegExp(query, "i"), mark.outerHTML);
const previousContent = clonedOption.innerHTML.slice(0, indexLabel);
const followingContent = clonedOption.innerHTML.slice(indexLabel + optionLabel.length);
clonedOption.innerHTML = previousContent.concat(exchangedText, followingContent);
return clonedOption;
};
export {
defaultOptionRenderer,
highlightOptionRenderer
};
//# sourceMappingURL=chunk.KLL2SVR7.js.map