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