@orca-fe/pocket
Version:
UI components by orca-team
58 lines • 1.61 kB
JavaScript
export function findSelectedMenuIndex(path, menu, key = 'path') {
for (var i = 0; i < menu.length; i++) {
var m = menu[i];
if (m[key] === path) {
return [i];
}
if (m.children) {
var res = findSelectedMenuIndex(path, m.children, key);
if (res.length > 0) {
return [i, ...res];
}
}
}
return [];
}
export function findSelectedMenuIndexTraverse(path, menu, key = 'path') {
var pathArr = path.split('/');
var length = pathArr.length;
var res = [];
while (res.length === 0 && length > 1) {
var p = pathArr.slice(0, length).join('/');
res = findSelectedMenuIndex(p, menu, key);
length -= 1;
}
return res;
}
export function findSelectedMenuKey(path, menu, key = 'path') {
var indexs = findSelectedMenuIndexTraverse(path, menu, key);
var res = [];
var _menu = menu;
for (var i = 0; i < indexs.length; i++) {
var _menu2;
var menuIndex = indexs[i];
if ((_menu2 = _menu) !== null && _menu2 !== void 0 && _menu2[menuIndex]) {
res.push(_menu[menuIndex].key);
_menu = _menu[menuIndex].children;
} else {
return [];
}
}
return res;
}
export function findSelectedMenu(path, menu, key = 'path') {
var indexs = findSelectedMenuIndexTraverse(path, menu, key);
var res = [];
var _menu = menu;
for (var i = 0; i < indexs.length; i++) {
var _menu3;
var menuIndex = indexs[i];
if ((_menu3 = _menu) !== null && _menu3 !== void 0 && _menu3[menuIndex]) {
res.push(_menu[menuIndex]);
_menu = _menu[menuIndex].children;
} else {
return [];
}
}
return res;
}