UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

29 lines (28 loc) 1.43 kB
"use client"; import { getChildrenNodesValues } from "../Tree/get-children-nodes-values/get-children-nodes-values.mjs"; import { getAllCheckedNodes } from "../Tree/get-all-checked-nodes/get-all-checked-nodes.mjs"; import { isNodeChecked } from "../Tree/is-node-checked/is-node-checked.mjs"; //#region packages/@mantine/core/src/components/TreeSelect/get-checked-values-by-strategy.ts function expandToLeafChecked(value, data) { const leaves = /* @__PURE__ */ new Set(); for (const v of value) for (const leaf of getChildrenNodesValues(v, data)) leaves.add(leaf); return Array.from(leaves); } function getTopmostCheckedParents(data, checkedState) { const result = []; for (const node of data) if (isNodeChecked(node.value, data, checkedState)) result.push(node.value); else if (Array.isArray(node.children) && node.children.length > 0) result.push(...getTopmostCheckedParents(node.children, checkedState)); return result; } function checkedToValue(checkedState, data, strategy) { if (checkedState.length === 0) return []; switch (strategy) { case "child": return checkedState; case "all": return getAllCheckedNodes(data, checkedState).result.filter((n) => n.checked).map((n) => n.value); case "parent": return getTopmostCheckedParents(data, checkedState); default: return checkedState; } } //#endregion export { checkedToValue, expandToLeafChecked }; //# sourceMappingURL=get-checked-values-by-strategy.mjs.map