@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 2.29 kB
Source Map (JSON)
{"version":3,"file":"get-children-nodes-values.mjs","names":[],"sources":["../../../../src/components/Tree/get-children-nodes-values/get-children-nodes-values.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport function findTreeNode(value: string, data: TreeNodeData[]): TreeNodeData | null {\n for (const node of data) {\n if (node.value === value) {\n return node;\n }\n\n if (Array.isArray(node.children)) {\n const childNode = findTreeNode(value, node.children);\n if (childNode) {\n return childNode;\n }\n }\n }\n\n return null;\n}\n\n// Returns values for all nested nodes which do not have children\nexport function getChildrenNodesValues(\n value: string,\n data: TreeNodeData[],\n acc: string[] = []\n): string[] {\n const node = findTreeNode(value, data);\n if (!node) {\n return acc;\n }\n\n if (!Array.isArray(node.children) || node.children.length === 0) {\n return [node.value];\n }\n\n node.children.forEach((child) => {\n if (Array.isArray(child.children) && child.children.length > 0) {\n getChildrenNodesValues(child.value, data, acc);\n } else {\n acc.push(child.value);\n }\n });\n\n return acc;\n}\n\nexport function getAllChildrenNodes(data: TreeNodeData[]) {\n return data.reduce((acc, node) => {\n if (Array.isArray(node.children) && node.children.length > 0) {\n acc.push(...getAllChildrenNodes(node.children));\n } else {\n acc.push(node.value);\n }\n\n return acc;\n }, [] as string[]);\n}\n"],"mappings":";;AAEA,SAAgB,aAAa,OAAe,MAA2C;AACrF,MAAK,MAAM,QAAQ,MAAM;AACvB,MAAI,KAAK,UAAU,MACjB,QAAO;AAGT,MAAI,MAAM,QAAQ,KAAK,SAAS,EAAE;GAChC,MAAM,YAAY,aAAa,OAAO,KAAK,SAAS;AACpD,OAAI,UACF,QAAO;;;AAKb,QAAO;;AAIT,SAAgB,uBACd,OACA,MACA,MAAgB,EAAE,EACR;CACV,MAAM,OAAO,aAAa,OAAO,KAAK;AACtC,KAAI,CAAC,KACH,QAAO;AAGT,KAAI,CAAC,MAAM,QAAQ,KAAK,SAAS,IAAI,KAAK,SAAS,WAAW,EAC5D,QAAO,CAAC,KAAK,MAAM;AAGrB,MAAK,SAAS,SAAS,UAAU;AAC/B,MAAI,MAAM,QAAQ,MAAM,SAAS,IAAI,MAAM,SAAS,SAAS,EAC3D,wBAAuB,MAAM,OAAO,MAAM,IAAI;MAE9C,KAAI,KAAK,MAAM,MAAM;GAEvB;AAEF,QAAO;;AAGT,SAAgB,oBAAoB,MAAsB;AACxD,QAAO,KAAK,QAAQ,KAAK,SAAS;AAChC,MAAI,MAAM,QAAQ,KAAK,SAAS,IAAI,KAAK,SAAS,SAAS,EACzD,KAAI,KAAK,GAAG,oBAAoB,KAAK,SAAS,CAAC;MAE/C,KAAI,KAAK,KAAK,MAAM;AAGtB,SAAO;IACN,EAAE,CAAa"}