mt-ui-components-vue3
Version:
玛果添实UI组件库(Vue3)
72 lines (71 loc) • 2.69 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.clearMenuItem = clearMenuItem;
exports.flatMap = flatMap;
exports.getMenuFirstChildren = getMenuFirstChildren;
exports.getSlot = getSlot;
exports.getSlotVNode = getSlotVNode;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
function clearMenuItem(menusData) {
return menusData.map(function (item) {
var _finalItem$meta;
var finalItem = (0, _objectSpread2.default)({}, item);
if ((_finalItem$meta = finalItem.meta) !== null && _finalItem$meta !== void 0 && _finalItem$meta.hideInMenu) {
return null;
}
if (finalItem && finalItem !== null && finalItem !== void 0 && finalItem.children) {
var _finalItem$meta2;
if (!((_finalItem$meta2 = finalItem.meta) !== null && _finalItem$meta2 !== void 0 && _finalItem$meta2.hideChildInMenu) && finalItem.children.some(function (child) {
var _child$meta;
return child && child.name && !((_child$meta = child.meta) !== null && _child$meta !== void 0 && _child$meta.hideInMenu);
})) {
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
children: clearMenuItem(finalItem.children)
});
}
delete finalItem.children;
}
return finalItem;
}).filter(function (item) {
return item;
});
}
function flatMap(menusData) {
return menusData.map(function (item) {
var _finalItem$meta3;
var finalItem = (0, _objectSpread2.default)({}, item);
if (!finalItem.name || (_finalItem$meta3 = finalItem.meta) !== null && _finalItem$meta3 !== void 0 && _finalItem$meta3.hideInMenu) {
return null;
}
if (finalItem.children) {
delete finalItem.children;
}
return finalItem;
}).filter(function (item) {
return item;
});
}
function getMenuFirstChildren(menus, key) {
return key === undefined ? [] : (menus[menus.findIndex(function (menu) {
return menu.path === key;
})] || {}).children || [];
}
function getSlot(slots, props) {
var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';
if (props[prop] === false) {
// force not render
return false;
}
return props[prop] || slots[prop];
}
function getSlotVNode(slots, props) {
var _slots$prop;
var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'default';
if (props[prop] === false) {
return false;
}
return props[prop] || ((_slots$prop = slots[prop]) === null || _slots$prop === void 0 ? void 0 : _slots$prop.call(slots));
}