UNPKG

@choerodon/master

Version:
1,019 lines (861 loc) 40.6 kB
var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); } /* eslint-disable */ /** * Created by jaywoods on 2017/6/24. */ import { action, computed, get, observable, set } from 'mobx'; import _ from 'lodash'; import groupBy from 'lodash/groupBy'; import concat from 'lodash/concat'; import orderBy from 'lodash/orderBy'; import flatten from 'lodash/flatten'; import axios from "../../../components/axios"; import AppState from "./AppState"; import HeaderStore from "./HeaderStore"; var BATCH_SIZE = 30; var isLoadMenu = []; var loadingTenant = []; // 这里记录了查询菜单失败的menuType 下次进来直接返回空 避免失败一次 就不在查询菜单的问题 var failedMenuType = []; export function getMenuType() { var menuType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : AppState.currentMenuType; var isUser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AppState.isTypeUser; return isUser ? 'user' : menuType.type; // return menuType.type; } function filterEmptyMenus(menuData, parent) { var newMenuData = menuData.filter(function (item) { var name = item.name, type = item.type, subMenus = item.subMenus; return name !== null && (type === 'menu' || subMenus && filterEmptyMenus(subMenus, item).length > 0 || item.modelCode); // return name !== null && (type === 'menu_item' || (subMenus !== null && filterEmptyMenus(subMenus, item).length > 0)); }); if (parent) { parent.subMenus = newMenuData; } return newMenuData; } function changeMenuLevel(_ref) { var level = _ref.level, child = _ref.child; child.forEach(function (item) { item.level = level; if (item.subMenus) { changeMenuLevel({ level: level, child: item.subMenus }); } }); } function insertLcMenuOneMenu(menuItem, groupLcMenu, groupParentLcMenu, parentArr) { if (menuItem.modelCode) { return; } if (groupLcMenu[menuItem.code]) { var keyGroup = orderBy(groupLcMenu[menuItem.code], ['sort'], ['asc']); var insertIndex = parentArr.findIndex(function (r) { return r === menuItem; }); if (insertIndex !== -1) { keyGroup.forEach(function (o, i) { parentArr.splice(insertIndex + 1 + i, 0, o); }); } } if (groupParentLcMenu[menuItem.code]) { menuItem.subMenus = menuItem.subMenus || []; var orderGroup = orderBy(groupParentLcMenu[menuItem.code], ['sort'], ['asc']); menuItem.subMenus = concat(orderGroup, menuItem.subMenus); } if (menuItem.subMenus) { menuItem.subMenus.forEach(function (item) { return insertLcMenuOneMenu(item, groupLcMenu, groupParentLcMenu, menuItem); }); } } function insertLcMenu(menuData, lcMenu) { var groupLcMenu = groupBy(lcMenu, 'afterBy'); var groupNullLcMenu = groupLcMenu["null"] || []; var groupParentLcMenu = groupBy(groupNullLcMenu, 'parentCode'); menuData.forEach(function (item) { return insertLcMenuOneMenu(item, groupLcMenu, groupParentLcMenu, menuData); }); } var MenuStore = (_class = /*#__PURE__*/function () { function MenuStore() { _classCallCheck(this, MenuStore); _initializerDefineProperty(this, "menuGroup", _descriptor, this); _initializerDefineProperty(this, "requestedSiteMenu", _descriptor2, this); _initializerDefineProperty(this, "activeMenuRoot", _descriptor3, this); _initializerDefineProperty(this, "collapsed", _descriptor4, this); _initializerDefineProperty(this, "activeMenu", _descriptor5, this); _initializerDefineProperty(this, "activeMenuParents", _descriptor6, this); _initializerDefineProperty(this, "selected", _descriptor7, this); _initializerDefineProperty(this, "leftOpenKeys", _descriptor8, this); _initializerDefineProperty(this, "openKeys", _descriptor9, this); _initializerDefineProperty(this, "type", _descriptor10, this); _initializerDefineProperty(this, "isUser", _descriptor11, this); _initializerDefineProperty(this, "id", _descriptor12, this); _initializerDefineProperty(this, "notFoundSign", _descriptor13, this); _initializerDefineProperty(this, "closedKeys", _descriptor14, this); _initializerDefineProperty(this, "hasSitePermission", _descriptor15, this); this.statistics = {}; this.counter = 0; } _createClass(MenuStore, [{ key: "getHasSitePermission", get: function get() { return this.hasSitePermission; } }, { key: "setHasSitePermission", value: function setHasSitePermission(data) { this.hasSitePermission = data; } }, { key: "getRequestedSiteMenu", get: function get() { return this.requestedSiteMenu; } }, { key: "setRequestedSiteMenu", value: function setRequestedSiteMenu(data) { this.requestedSiteMenu = data; } }, { key: "getClosedKeys", get: function get() { return this.closedKeys; } }, { key: "setClosedKeys", value: function setClosedKeys(data) { var isDelete = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!isDelete) { this.closedKeys = Array.from(new Set([].concat(_toConsumableArray(this.closedKeys), _toConsumableArray(data)))); } else { this.closedKeys = _.difference(this.closedKeys, data); } } }, { key: "click", value: function click(code, level, name) { var _this = this; if (level in this.statistics) { if (code in this.statistics[level]) { this.statistics[level][code].count += 1; } else { this.statistics[level][code] = { count: 1, name: name }; } } else { this.statistics[level] = {}; this.statistics[level][code] = { count: 1, name: name }; } this.counter += 1; var postData = Object.keys(this.statistics).map(function (type) { return { level: type, menus: Object.keys(_this.statistics[type]).map(function (mCode) { return _objectSpread({ mCode: mCode }, _this.statistics[type][mCode]); }) }; }); if (postData.reduce(function (p, cur) { return p + cur.menus.reduce(function (menusP, menusCur) { return menusP + menusCur.count; }, 0); }, 0) >= BATCH_SIZE) { this.uploadStatistics(); this.counter = 0; } localStorage.setItem('rawStatistics', JSON.stringify(this.statistics)); } }, { key: "uploadStatistics", value: function uploadStatistics() { var _this2 = this; var postData = Object.keys(this.statistics).map(function (type) { return { rootCode: "choerodon.code.top.".concat(type), menus: Object.keys(_this2.statistics[type]).map(function (code) { return _objectSpread({ code: code }, _this2.statistics[type][code]); }) }; }); if (!postData.every(function (v) { return v.rootCode && ['choerodon.code.top.site', 'choerodon.code.top.organization', 'choerodon.code.top.project', 'choerodon.code.top.user'].includes(v.rootCode); })) { this.statistics = {}; return; } axios.post('/hadm/choerodon/v1/statistic/menu_click/save', JSON.stringify(postData)).then(function (data) { if (!data.failed) { _this2.statistics = {}; } }); } }, { key: "getActiveMenuRoot", get: function get() { return this.activeMenuRoot; } }, { key: "setActiveMenuRoot", value: function setActiveMenuRoot(data) { this.activeMenuRoot = data; } }, { key: "setActiveMenuParents", value: function setActiveMenuParents(data) { this.activeMenuParents = data; } }, { key: "setCollapsed", value: function setCollapsed(collapsed) { this.collapsed = collapsed; } }, { key: "setActiveMenu", value: function setActiveMenu(activeMenu) { this.activeMenu = activeMenu; } }, { key: "setSelected", value: function setSelected(selected) { this.selected = selected; } }, { key: "setLeftOpenKeys", value: function setLeftOpenKeys(leftOpenKeys) { this.leftOpenKeys = leftOpenKeys; } }, { key: "setOpenKeys", value: function setOpenKeys(openKeys) { if (openKeys && openKeys.length > 0) { this.openKeys = _.difference(Array.from(new Set(_toConsumableArray(openKeys))), this.closedKeys); } else { this.openKeys = openKeys; } } }, { key: "setType", value: function setType(type) { this.type = type; } }, { key: "setIsUser", value: function setIsUser(isUser) { this.isUser = isUser; } }, { key: "setId", value: function setId(id) { this.id = id; } }, { key: "setNotFoundSignSign", value: function setNotFoundSignSign(value) { this.notFoundSign = value; } }, { key: "setOpenkeysBaseonRoot", value: function setOpenkeysBaseonRoot(root) { var keys = []; function cursive(data, array) { if (data.subMenus && data.subMenus.length > 0) { array.push(data.code); data.subMenus.forEach(function (rootItem) { cursive(rootItem, array); }); } } cursive(root, keys); this.setOpenKeys(Array.from(new Set([].concat(keys, _toConsumableArray(this.openKeys || []))))); } }, { key: "clearMenuGroupByLevel", value: function clearMenuGroupByLevel(level) { if (['site', 'user', 'organization', 'project'].includes(level)) { if (['site', 'user'].includes(level)) { this.menuGroup[level] = []; } else { this.menuGroup[level] = {}; } } } }, { key: "setRootBaseOnActiveMenu", value: function setRootBaseOnActiveMenu() { var flag = this.activeMenu; if (this.activeMenu && this.getMenuData && this.getMenuData.length > 0) { if (this.activeMenu.level !== this.getMenuData[0].level) { this.setActiveMenu(this.getMenuData[0].subMenus[0]); flag = this.getMenuData[0].subMenus[0]; } var menuRoot = this.getActiveMenuRoot || {}; var root = this.getMenuData.find(function (i) { return i.id === flag.rootId; }); if (root) { menuRoot[root.level] = root; this.setOpenkeysBaseonRoot(root); this.setActiveMenuRoot(JSON.parse(JSON.stringify(menuRoot))); } } } }, { key: "judgeFailedMenuType", value: function judgeFailedMenuType(menuType) { var type = menuType.type, id = menuType.id; var flag = failedMenuType.find(function (i) { return i.type === type && i.id === id; }); if (flag) { return true; } return false; } }, { key: "loadMenuData", value: function loadMenuData() { var _this3 = this; var menuType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : AppState.currentMenuType; var isUser = arguments.length > 1 ? arguments[1] : undefined; var setData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var selfResolve = arguments.length > 3 ? arguments[3] : undefined; if (this.judgeFailedMenuType(menuType)) { isLoadMenu = 0; AppState.setCanShowRoute(true); // debugger; return new Promise(function (resolve) { // debugger; resolve([]); }); } this.setRootBaseOnActiveMenu(); if (isLoadMenu === 1) { if (selfResolve) { // debugger; setTimeout(function () { return _this3.loadMenuData(menuType, isUser, setData, selfResolve); }, 500); } else { // debugger; return new Promise(function (resolve) { setTimeout(function () { return _this3.loadMenuData(menuType, isUser, setData, resolve); }, 500); }); } } else { AppState.setCanShowRoute(false); isLoadMenu = 1; if (selfResolve) { // debugger; mainFunc.call(this, selfResolve); } else { // debugger; return new Promise(function (resolve) { mainFunc.call(_this3, resolve); }); } } // return new Promise((resolve) => { // mainFunc.call(this, resolve); // }); function mainFunc(_x) { return _mainFunc.apply(this, arguments); } function _mainFunc() { _mainFunc = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(resolve) { var _this4 = this; var getMenu, type, _menuType$id, id, organizationId, orgId, menu, hasMenu, _AppState$getUserInfo, result, _orgId, flag, _AppState$getUserInfo2, _result, _orgId2, data, _menu; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; getMenu = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(that) { var currentOrgId, url, data, child; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: // debugger; currentOrgId = String(organizationId || new URLSearchParams(window.location.hash.split('?')[1]).get('organizationId') || id); url = '/iam/choerodon/v1/menu'; if (type === 'project') { url += "?projectId=".concat(id, "&tenantId=").concat(currentOrgId); } else if (type === 'organization') { url += "?labels=TENANT_MENU&tenantId=".concat(currentOrgId); } else if (type === 'user') { url += '?labels=USER_MENU'; } else { url += '?labels=SITE_MENU&tenantId=0'; that.setRequestedSiteMenu(true); } _context.next = 5; return axios({ url: url, method: 'get', enabledCancelCache: false, enabledCancelRoute: false }); case 5: data = _context.sent; child = filterEmptyMenus(data || []); // debugger; if (type === 'project') { changeMenuLevel({ level: 'project', child: child }); } else if (type === 'user') { changeMenuLevel({ level: 'user', child: child }); } // debugger; that.setMenuData(child, type, id); return _context.abrupt("return", child); case 10: case "end": return _context.stop(); } } }, _callee); })); return function getMenu(_x2) { return _ref2.apply(this, arguments); }; }(); type = getMenuType(menuType, isUser) || 'site'; if (setData) { if (type !== 'user') { AppState.currentMenuType.type = type; if (menuType === null || menuType === void 0 ? void 0 : menuType.id) { AppState.currentMenuType.id = menuType === null || menuType === void 0 ? void 0 : menuType.id; } } } // debugger; _menuType$id = menuType.id, id = _menuType$id === void 0 ? 0 : _menuType$id, organizationId = menuType.organizationId, orgId = menuType.orgId; menu = this.menuData(type, id); hasMenu = function hasMenu() { if (type === 'organization') { return orgId && Object.keys(menuStore.menuGroup[type]).map(function (i) { return String(i); }).includes(String(orgId)); } else if (type === 'site') { if (_this4.getRequestedSiteMenu) { return true; } } else { return id && Object.keys(menuStore.menuGroup[type]).map(function (i) { return String(i); }).includes(String(id)); } return false; }; // debugger; if (!(menu.length || hasMenu())) { _context2.next = 32; break; } if (!(type === 'site')) { _context2.next = 20; break; } if (!(((_AppState$getUserInfo = AppState.getUserInfo) === null || _AppState$getUserInfo === void 0 ? void 0 : _AppState$getUserInfo.currentRoleLevel) !== 'site' && this.getHasSitePermission)) { _context2.next = 18; break; } _context2.next = 12; return axios.put('iam/v1/users/tenant-id?tenantId=0', null, { enabledCancelCache: false, enabledCancelRoute: false }); case 12: _context2.next = 14; return axios.get('/iam/choerodon/v1/switch/site', { enabledCancelCache: false, enabledCancelRoute: false }); case 14: result = _context2.sent; // debugger; if (!result) { this.setHasSitePermission(false); } // debugger; _context2.next = 18; return AppState.loadUserInfo(); case 18: _context2.next = 26; break; case 20: if (!(type === 'organization')) { _context2.next = 26; break; } // debugger; _orgId = String(organizationId || new URLSearchParams(window.location.hash.split('?')[1]).get('organizationId') || id); if (!(String(AppState.getUserInfo.tenantId) !== String(_orgId))) { _context2.next = 26; break; } _context2.next = 25; return axios({ url: "iam/v1/users/tenant-id?tenantId=".concat(_orgId), method: 'put', enabledCancelCache: false, enabledCancelRoute: false }); case 25: // debugger; AppState.loadUserInfo(); case 26: if (AppState.currentMenuType.hasChangeCategorys) { _context2.next = 30; break; } // debugger; isLoadMenu = 0; AppState.setCanShowRoute(true); return _context2.abrupt("return", resolve(menu)); case 30: delete AppState.menuType.hasChangeCategorys; AppState.setCanShowRoute(true); case 32: flag = 0; if (!(type === 'site')) { _context2.next = 43; break; } if (!(((_AppState$getUserInfo2 = AppState.getUserInfo) === null || _AppState$getUserInfo2 === void 0 ? void 0 : _AppState$getUserInfo2.currentRoleLevel) !== 'site' && this.getHasSitePermission)) { _context2.next = 41; break; } _context2.next = 37; return axios.put('iam/v1/users/tenant-id?tenantId=0', null, { enabledCancelCache: false, enabledCancelRoute: false }); case 37: _context2.next = 39; return axios.get('/iam/choerodon/v1/switch/site', { enabledCancelCache: false, enabledCancelRoute: false }); case 39: _result = _context2.sent; // debugger; if (!_result) { this.setHasSitePermission(false); } case 41: _context2.next = 53; break; case 43: if (!(id && ['project', 'organization'].includes(type))) { _context2.next = 53; break; } // debugger; _orgId2 = String(organizationId || new URLSearchParams(window.location.hash.split('?')[1]).get('organizationId') || id); if (loadingTenant.includes(_orgId2)) { _context2.next = 52; break; } loadingTenant.push(String(_orgId2)); _context2.next = 49; return axios.put("iam/v1/users/tenant-id?tenantId=".concat(_orgId2 || id), null, { enabledCancelCache: false, enabledCancelRoute: false }); case 49: // debugger; loadingTenant.splice(loadingTenant.indexOf(loadingTenant), 1); _context2.next = 53; break; case 52: flag = 1; case 53: if (flag) { _context2.next = 71; break; } // debugger; _menu = this.menuData(type, id); // debugger; if (!['organization', 'project'].includes(type)) { _context2.next = 62; break; } if (Object.keys(menuStore.menuGroup[type]).includes(id)) { _context2.next = 60; break; } _context2.next = 59; return getMenu(this); case 59: data = _context2.sent; case 60: _context2.next = 66; break; case 62: if (!(!_menu.length && !_menu.level)) { _context2.next = 66; break; } _context2.next = 65; return getMenu(this); case 65: data = _context2.sent; case 66: if (AppState.userInfo.currentRoleLevel !== type) { AppState.userInfo.currentRoleLevel = type; AppState.loadUserInfo(); // debugger; } AppState.setCanShowRoute(true); AppState.userInfo.currentRoleLevel = type; isLoadMenu = 0; // debugger; return _context2.abrupt("return", resolve(data || [])); case 71: isLoadMenu = 0; AppState.setCanShowRoute(true); _context2.next = 80; break; case 75: _context2.prev = 75; _context2.t0 = _context2["catch"](0); // debugger; failedMenuType.push(menuType); isLoadMenu = 0; AppState.setCanShowRoute(true); case 80: case "end": return _context2.stop(); } } }, _callee2, this, [[0, 75]]); })); return _mainFunc.apply(this, arguments); } } /** * 递归设置rootId */ }, { key: "cursiveSetRootId", value: function cursiveSetRootId(params, rootId) { var _this5 = this; var newRootId = rootId; if (!newRootId) { newRootId = params.id; } params.rootId = newRootId; if (params.subMenus && params.subMenus.length > 0) { params.subMenus = params.subMenus.map(function (bItem) { return _this5.cursiveSetRootId(bItem, newRootId); }); } return params; } }, { key: "setMenuData", value: function setMenuData(child, childType) { var _this6 = this; var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : AppState.currentMenuType.id; var data = filterEmptyMenus(child).map(function (item) { return _this6.cursiveSetRootId(item, undefined); }); this.setRootBaseOnActiveMenu(); if (String(id) && !['user', 'site'].includes(childType)) { set(this.menuGroup[childType], id, data); } else { set(this.menuGroup, childType, data); } localStorage.setItem('menuGroup', JSON.stringify(this.menuGroup)); } }, { key: "getMenuData", get: function get() { return this.menuData(); } }, { key: "getSiteMenuData", get: function get() { return this.menuData('site', 0); } }, { key: "menuData", value: function menuData() { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMenuType(); var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AppState.currentMenuType.id; var data; if (type) { if (id && !['site', 'user'].includes(type)) { data = get(this.menuGroup[type], id); } else { data = get(this.menuGroup, type); } } return data || []; } }, { key: "treeReduce", value: function treeReduce(tree, callback) { var _tree$childrenName, _this7 = this; var childrenName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'subMenus'; var parents = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; if (tree.code) { parents.push(tree); } return typeof tree[childrenName] === 'object' ? (_tree$childrenName = tree[childrenName]) === null || _tree$childrenName === void 0 ? void 0 : _tree$childrenName.some(function (node, index) { var newParents = parents.slice(0); node.parentName = parents[0] && parents[0].name; if (node[childrenName] && node[childrenName].length > 0) { return _this7.treeReduce(node, callback, childrenName, newParents); } // node.parentName = parents[0].name; return callback(node, parents, index); }) : undefined; } }]); return MenuStore; }(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, "menuGroup", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return { site: [], user: [], organization: {}, project: {} }; } }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "requestedSiteMenu", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return false; } }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "activeMenuRoot", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return {}; } }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "collapsed", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return false; } }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "activeMenu", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return null; } }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "activeMenuParents", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return []; } }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "selected", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return null; } }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "leftOpenKeys", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return []; } }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "openKeys", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return []; } }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "type", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return null; } }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "isUser", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return null; } }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "id", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return null; } }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "notFoundSign", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return false; } }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "closedKeys", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return []; } }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, "hasSitePermission", [observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return true; } }), _applyDecoratedDescriptor(_class.prototype, "getHasSitePermission", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getHasSitePermission"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setHasSitePermission", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setHasSitePermission"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getRequestedSiteMenu", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getRequestedSiteMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setRequestedSiteMenu", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setRequestedSiteMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getClosedKeys", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getClosedKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setClosedKeys", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setClosedKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getActiveMenuRoot", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getActiveMenuRoot"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveMenuRoot", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveMenuRoot"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveMenuParents", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveMenuParents"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setCollapsed", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setCollapsed"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveMenu", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setSelected", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setSelected"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setLeftOpenKeys", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setLeftOpenKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setOpenKeys", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setOpenKeys"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setType", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setType"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setIsUser", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setIsUser"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setId", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setId"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setNotFoundSignSign", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setNotFoundSignSign"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setOpenkeysBaseonRoot", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setOpenkeysBaseonRoot"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "clearMenuGroupByLevel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "clearMenuGroupByLevel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setRootBaseOnActiveMenu", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setRootBaseOnActiveMenu"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "loadMenuData", [action], Object.getOwnPropertyDescriptor(_class.prototype, "loadMenuData"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setMenuData", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setMenuData"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getMenuData", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getMenuData"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "getSiteMenuData", [computed], Object.getOwnPropertyDescriptor(_class.prototype, "getSiteMenuData"), _class.prototype)), _class); var menuStore = new MenuStore(); export default menuStore;