UNPKG

@hitachivantara/uikit-react-core

Version:
27 lines (26 loc) 1.02 kB
//#region src/List/utils.ts var isItemSelected = (item, newItem) => { const selectionKey = item?.id ? "id" : "label"; const selectionElement = item?.[selectionKey]; return newItem[selectionKey] === selectionElement; }; var parseList = (item, props, selectAll, list = []) => { const { multiSelect, selectable, singleSelectionToggle } = props || {}; let anySelected = false; return list.map((elem) => { const newItem = { ...elem }; if (!multiSelect) newItem.selected = false; if ((item ? isItemSelected(item, newItem) : elem?.selected) && selectable) { let selectionState; if (multiSelect) selectionState = item ? !elem?.selected : true; else selectionState = !anySelected && (item && singleSelectionToggle ? !elem?.selected : true); newItem.selected = selectionState; anySelected = true; } if (typeof selectAll === "boolean" && !elem?.disabled) newItem.selected = selectAll; if (!newItem?.selected) newItem.selected = false; return newItem; }); }; //#endregion export { parseList };