export const extractNavMenus = (data) => { if (!data) { return; } const navMenus = []; const traverse = (nodes) => { nodes.forEach((node) => { if (!node.children) { navMenus.push(node); } else { traverse(node.children); } }); }; traverse(data); return navMenus; }; export const integrateParams = (_params) => { const { pagination, sort, filter, ...other } = _params; return { current: pagination?.page, pageSize: pagination?.perPage, orderBy: sort?.field + ' ' + sort?.order, ...filter, ...other } } export const camelToPascalWithSpaces = (camelCaseString) => { if (typeof camelCaseString !== 'string') { return ''; } if (camelCaseString.trim() === '') { return ''; } return camelCaseString .replace(/([a-z0-9])([A-Z])/g, '$1 $2') .replace(/^\w/, (c) => c.toUpperCase()); } export const flattenTree = (nodes, depth = 0) => { let result = []; nodes.forEach(node => { result.push({ ...node, depth }); if (node.children && node.children.length > 0) { result = result.concat(flattenTree(node.children, depth + 1)); } }); return result; }; export const haveChildren = (item) => { if (Array.isArray(item)) { return item.map((k) => haveChildren(k)); } if (item && typeof item === 'object') { if (item.id !== undefined) { item.id = item.id.toString(); } if (item.children && Array.isArray(item.children)) { item.children = haveChildren(item.children); } } return item; };