in src/panel/widgets.tsx [55:69]
function hi(children: React.ReactNode) : React.ReactNode {
if (!term || term.length <= 1) return children;
if (children === undefined)
return null;
if (Array.isArray(children))
return React.Children.map(children, hi);
if (React.isValidElement(children))
return React.cloneElement(children, undefined, hi(children.props.children));
if (!['number', 'string'].includes(typeof children))
return children;
term = term.replace(/[-[\]/{}()+?.\\^$|]/g, '\\$&').replace(/\*/g, '.*');
return (children + '')
.split(new RegExp(`(${term.split(/\s+/).filter(part => part).join('|')})`, 'i'))
.map((word, i) => i % 2 === 1 ? <mark key={i}>{word}</mark> : word);
}