| 
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; 
 | 
}; 
 |