@dvcol/neo-svelte
Version:
Neomorphic ui library for svelte 5
20 lines (19 loc) • 699 B
JavaScript
import { isSection } from './neo-list.model.js';
function itemMatch(item, search) {
return item.label?.toLowerCase().includes(search) || item.description?.toLowerCase().includes(search);
}
export const itemSearchFilter = (item, search) => {
if (item?.hidden)
return false;
const pattern = search?.trim().toLowerCase();
if (!pattern?.length)
return true;
if (isSection(item))
return item.items?.some(i => itemMatch(i, pattern));
return !!itemMatch(item, pattern);
};
export function itemLabelSort(a, b, reverse) {
if (!a?.label || !b?.label)
return 0;
return reverse ? a.label.localeCompare(b.label) : b.label.localeCompare(a.label);
}