UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

36 lines (35 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const isItemSelected = (item, newItem) => { const selectionKey = item?.id ? "id" : "label"; const selectionElement = item?.[selectionKey]; return newItem[selectionKey] === selectionElement; }; const parseList = (item, props, selectAll, list = []) => { const { multiSelect, selectable, singleSelectionToggle } = props || {}; let anySelected = false; const newList = list.map((elem) => { const newItem = { ...elem }; if (!multiSelect) { newItem.selected = false; } const selectItem = item ? isItemSelected(item, newItem) : elem?.selected; if (selectItem && 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; }); return newList; }; exports.isItemSelected = isItemSelected; exports.parseList = parseList;