UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 2.45 kB
{"version":3,"file":"get-all-checked-nodes.cjs","names":[],"sources":["../../../../src/components/Tree/get-all-checked-nodes/get-all-checked-nodes.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\n\nexport interface CheckedNodeStatus {\n checked: boolean;\n indeterminate: boolean;\n hasChildren: boolean;\n value: string;\n}\n\nexport function getAllCheckedNodes(\n data: TreeNodeData[],\n checkedState: string[],\n acc: CheckedNodeStatus[] = []\n) {\n const currentTreeChecked: CheckedNodeStatus[] = [];\n\n for (const node of data) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n const innerChecked = getAllCheckedNodes(node.children, checkedState, acc);\n if (innerChecked.currentTreeChecked.length === node.children.length) {\n const isChecked = innerChecked.currentTreeChecked.every((item) => item.checked);\n const item = {\n checked: isChecked,\n indeterminate: !isChecked,\n value: node.value,\n hasChildren: true,\n };\n currentTreeChecked.push(item);\n acc.push(item);\n } else if (innerChecked.currentTreeChecked.length > 0) {\n const item = { checked: false, indeterminate: true, value: node.value, hasChildren: true };\n currentTreeChecked.push(item);\n acc.push(item);\n }\n } else if (checkedState.includes(node.value)) {\n const item: CheckedNodeStatus = {\n checked: true,\n indeterminate: false,\n value: node.value,\n hasChildren: false,\n };\n currentTreeChecked.push(item);\n acc.push(item);\n }\n }\n\n return { result: acc, currentTreeChecked };\n}\n"],"mappings":";;AASA,SAAgB,mBACd,MACA,cACA,MAA2B,CAAC,GAC5B;CACA,MAAM,qBAA0C,CAAC;CAEjD,KAAK,MAAM,QAAQ,MACjB,IAAI,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAAS,SAAS,GAAG;EAC5D,MAAM,eAAe,mBAAmB,KAAK,UAAU,cAAc,GAAG;EACxE,IAAI,aAAa,mBAAmB,WAAW,KAAK,SAAS,QAAQ;GACnE,MAAM,YAAY,aAAa,mBAAmB,OAAO,SAAS,KAAK,OAAO;GAC9E,MAAM,OAAO;IACX,SAAS;IACT,eAAe,CAAC;IAChB,OAAO,KAAK;IACZ,aAAa;GACf;GACA,mBAAmB,KAAK,IAAI;GAC5B,IAAI,KAAK,IAAI;EACf,OAAO,IAAI,aAAa,mBAAmB,SAAS,GAAG;GACrD,MAAM,OAAO;IAAE,SAAS;IAAO,eAAe;IAAM,OAAO,KAAK;IAAO,aAAa;GAAK;GACzF,mBAAmB,KAAK,IAAI;GAC5B,IAAI,KAAK,IAAI;EACf;CACF,OAAO,IAAI,aAAa,SAAS,KAAK,KAAK,GAAG;EAC5C,MAAM,OAA0B;GAC9B,SAAS;GACT,eAAe;GACf,OAAO,KAAK;GACZ,aAAa;EACf;EACA,mBAAmB,KAAK,IAAI;EAC5B,IAAI,KAAK,IAAI;CACf;CAGF,OAAO;EAAE,QAAQ;EAAK;CAAmB;AAC3C"}