UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 2.58 kB
{"version":3,"file":"get-checked-values-by-strategy.cjs","names":["getChildrenNodesValues","isNodeChecked","getAllCheckedNodes"],"sources":["../../../src/components/TreeSelect/get-checked-values-by-strategy.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport { getAllCheckedNodes } from '../Tree/get-all-checked-nodes/get-all-checked-nodes';\nimport { getChildrenNodesValues } from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\n\nexport type CheckedStrategy = 'all' | 'parent' | 'child';\n\nexport function expandToLeafChecked(value: string[], data: TreeNodeData[]): string[] {\n const leaves = new Set<string>();\n for (const v of value) {\n for (const leaf of getChildrenNodesValues(v, data)) {\n leaves.add(leaf);\n }\n }\n return Array.from(leaves);\n}\n\nfunction getTopmostCheckedParents(data: TreeNodeData[], checkedState: string[]): string[] {\n const result: string[] = [];\n for (const node of data) {\n if (isNodeChecked(node.value, data, checkedState)) {\n result.push(node.value);\n } else if (Array.isArray(node.children) && node.children.length > 0) {\n result.push(...getTopmostCheckedParents(node.children, checkedState));\n }\n }\n return result;\n}\n\nexport function checkedToValue(\n checkedState: string[],\n data: TreeNodeData[],\n strategy: CheckedStrategy\n): string[] {\n if (checkedState.length === 0) {\n return [];\n }\n\n switch (strategy) {\n case 'child':\n return checkedState;\n case 'all':\n return getAllCheckedNodes(data, checkedState)\n .result.filter((n) => n.checked)\n .map((n) => n.value);\n case 'parent':\n return getTopmostCheckedParents(data, checkedState);\n default:\n return checkedState;\n }\n}\n"],"mappings":";;;;;AAOA,SAAgB,oBAAoB,OAAiB,MAAgC;CACnF,MAAM,yBAAS,IAAI,IAAY;CAC/B,KAAK,MAAM,KAAK,OACd,KAAK,MAAM,QAAQA,kCAAAA,uBAAuB,GAAG,IAAI,GAC/C,OAAO,IAAI,IAAI;CAGnB,OAAO,MAAM,KAAK,MAAM;AAC1B;AAEA,SAAS,yBAAyB,MAAsB,cAAkC;CACxF,MAAM,SAAmB,CAAC;CAC1B,KAAK,MAAM,QAAQ,MACjB,IAAIC,wBAAAA,cAAc,KAAK,OAAO,MAAM,YAAY,GAC9C,OAAO,KAAK,KAAK,KAAK;MACjB,IAAI,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAAS,SAAS,GAChE,OAAO,KAAK,GAAG,yBAAyB,KAAK,UAAU,YAAY,CAAC;CAGxE,OAAO;AACT;AAEA,SAAgB,eACd,cACA,MACA,UACU;CACV,IAAI,aAAa,WAAW,GAC1B,OAAO,CAAC;CAGV,QAAQ,UAAR;EACE,KAAK,SACH,OAAO;EACT,KAAK,OACH,OAAOC,8BAAAA,mBAAmB,MAAM,YAAY,EACzC,OAAO,QAAQ,MAAM,EAAE,OAAO,EAC9B,KAAK,MAAM,EAAE,KAAK;EACvB,KAAK,UACH,OAAO,yBAAyB,MAAM,YAAY;EACpD,SACE,OAAO;CACX;AACF"}