@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 1.36 kB
Source Map (JSON)
{"version":3,"file":"merge-async-children.cjs","names":[],"sources":["../../../../src/components/Tree/merge-async-children/merge-async-children.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport function mergeAsyncChildren(\n data: TreeNodeData[],\n parentValue: string,\n children: TreeNodeData[]\n): TreeNodeData[] {\n let changed = false;\n\n const result = data.map((node) => {\n if (node.value === parentValue) {\n changed = true;\n const merged: TreeNodeData = { ...node, children };\n delete merged.hasChildren;\n return merged;\n }\n\n if (Array.isArray(node.children)) {\n const updatedChildren = mergeAsyncChildren(node.children, parentValue, children);\n if (updatedChildren !== node.children) {\n changed = true;\n return { ...node, children: updatedChildren };\n }\n }\n\n return node;\n });\n\n return changed ? result : data;\n}\n"],"mappings":";;AAEA,SAAgB,mBACd,MACA,aACA,UACgB;CAChB,IAAI,UAAU;CAEd,MAAM,SAAS,KAAK,KAAK,SAAS;EAChC,IAAI,KAAK,UAAU,aAAa;GAC9B,UAAU;GACV,MAAM,SAAuB;IAAE,GAAG;IAAM;GAAS;GACjD,OAAO,OAAO;GACd,OAAO;EACT;EAEA,IAAI,MAAM,QAAQ,KAAK,QAAQ,GAAG;GAChC,MAAM,kBAAkB,mBAAmB,KAAK,UAAU,aAAa,QAAQ;GAC/E,IAAI,oBAAoB,KAAK,UAAU;IACrC,UAAU;IACV,OAAO;KAAE,GAAG;KAAM,UAAU;IAAgB;GAC9C;EACF;EAEA,OAAO;CACT,CAAC;CAED,OAAO,UAAU,SAAS;AAC5B"}