UNPKG

@momentum-ui/react-collaboration

Version:

Cisco Momentum UI Framework for React Collaboration Applications

48 lines (43 loc) 1.36 kB
import { IComboBoxGroup, IComboBoxItem } from './ComboBox.types'; export const handleFilter = ( comboBoxGroup: IComboBoxGroup[], inputValue: string ): IComboBoxGroup[] => { const queryLowerCase = inputValue.toLowerCase().trim(); const filterItem = Array.prototype.map .call(comboBoxGroup, (group: IComboBoxGroup) => { return { ...group, items: group.items.filter((item) => item.label?.toLowerCase()?.includes(queryLowerCase)), }; }) .filter((group: IComboBoxGroup) => group.items?.length > 0); return filterItem; }; export const searchItem = ( key: string, originComboBoxGroups: IComboBoxGroup[] ): IComboBoxItem | undefined => { let target: IComboBoxItem | undefined; key && Array.prototype.some.call(originComboBoxGroups, (group: IComboBoxGroup) => { const foundItem = group.items.find((item: IComboBoxItem) => item.key === key); if (foundItem) { target = foundItem; return true; } return false; }); return target ?? { key: undefined, label: undefined }; }; export const getSumScrollTop = (element: Element): number => { let sum = 0; while (element) { element = element.parentElement; if (element) { const scrollTop = Number.isNaN(element.scrollTop) ? 0 : element.scrollTop; sum += scrollTop; } } return sum; };