tntd
Version:
tntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。
173 lines (171 loc) • 7.21 kB
JavaScript
;
function _typeof(o) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
return typeof o;
} : function (o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
}, _typeof(o);
}
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
HeaderActionItem: true
};
exports["default"] = exports.HeaderActionItem = void 0;
var _react = _interopRequireDefault(require("react"));
var _styledComponents = require("styled-components");
var _Layout = _interopRequireDefault(require("./Layout"));
var _EnterpriseLayout = _interopRequireDefault(require("./EnterpriseLayout"));
var _paaslayout = _interopRequireDefault(require("./paaslayout"));
var _HeaderNavs = _interopRequireWildcard(require("./HeaderNavs"));
Object.keys(_HeaderNavs).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _HeaderNavs[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _HeaderNavs[key];
}
});
});
var _HeaderTabs = _interopRequireDefault(require("./HeaderTabs"));
var _authContext = _interopRequireDefault(require("../auth-context"));
var _utils = require("../utils");
var _ActionsContext = _interopRequireDefault(require("./ActionsContext"));
var _createActions = _interopRequireDefault(require("./createActions"));
var _storage = require("./storage");
function _getRequireWildcardCache(e) {
if ("function" != typeof WeakMap) return null;
var r = new WeakMap(),
t = new WeakMap();
return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
return e ? t : r;
})(e);
}
function _interopRequireWildcard(e, r) {
if (!r && e && e.__esModule) return e;
if (null === e || "object" != _typeof(e) && "function" != typeof e) return {
"default": e
};
var t = _getRequireWildcardCache(r);
if (t && t.has(e)) return t.get(e);
var n = {
__proto__: null
},
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
}
return n["default"] = e, t && t.set(e, n), n;
}
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
"default": e
};
}
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
var HeaderActionItem = exports.HeaderActionItem = function HeaderActionItem(props) {
return _react["default"].createElement("li", Object.assign({}, props), props.children);
};
var TNTLayout = function TNTLayout(_a) {
var type = _a.type,
config = _a.config,
_a$showMenuInIframe = _a.showMenuInIframe,
showMenuInIframe = _a$showMenuInIframe === void 0 ? false : _a$showMenuInIframe,
props = __rest(_a, ["type", "config", "showMenuInIframe"]);
var headerHeight = props.size === 'large' ? 60 : 50;
var theme = {
size: props.size,
compatible: props.compatible,
headerHeight: headerHeight,
primaryColor: '#126BFB',
secondaryColor: '#005df4',
primaryTextColor: '#17233D',
secondaryTextColor: 'rgba(23,35,61,.8)',
lightIconColor: 'rgba(23,35,61,.7)',
headerActionsColor: 'rgba(23,35,61,.6)',
borderColor: '#B2BECD',
dividerColor: '#E1E6EE',
lightBgColor: '#F1F2F5',
blueBgColor: '#1D4295' // 默认的蓝色主题
};
var isInIframe = showMenuInIframe ? false : self !== top && !window.navigator.userAgent.includes('mo-fang-app');
// 前期拼写错误,导致需要兼容处理
var extraHeaderActions = props.extraHeaderActions || props.extralHeaderActions;
var extendMap = typeof props.extendMap === 'string' ? (0, _utils.safeParseJSON)(props.extendMap, {}) : props.extendMap;
var _ref = extendMap || {},
_ref$displayType = _ref.displayType,
displayType = _ref$displayType === void 0 ? 'default' : _ref$displayType,
menuAlignMode = _ref.menuAlignMode,
_ref$globalNavigation = _ref.globalNavigation,
globalNavigation = _ref$globalNavigation === void 0 ? false : _ref$globalNavigation,
_ref$language = _ref.language,
language = _ref$language === void 0 ? ['cn'] : _ref$language,
_ref$themeSwitch = _ref.themeSwitch,
themeSwitch = _ref$themeSwitch === void 0 ? true : _ref$themeSwitch;
var userInfo = props.userInfo || {};
var actionsContextValue = (0, _createActions["default"])({
language: (0, _storage.getLanguageStore)() || userInfo.lang || 'cn'
});
var onLanguageChange = function onLanguageChange(language) {
actionsContextValue.setLanguage(language);
props.onLanguageChange && props.onLanguageChange(language);
};
// layout上的指定的属性优先级会高于extendMap中的属性
type = type || displayType;
config = Object.assign({
language: (language === null || language === void 0 ? void 0 : language.length) > 1,
theme: themeSwitch,
avatar: true,
globalNavigation: globalNavigation
}, config);
return _react["default"].createElement(_styledComponents.ThemeProvider, {
theme: theme
}, _react["default"].createElement(_authContext["default"].Provider, {
value: (0, _utils.getCheckAuth)(props.menus)
}, _react["default"].createElement(_ActionsContext["default"].Provider, {
value: actionsContextValue
}, type === 'paas' && _react["default"].createElement(_paaslayout["default"], Object.assign({
menuAlignMode: menuAlignMode,
config: config
}, props, {
extraHeaderActions: extraHeaderActions,
isInIframe: isInIframe,
userInfo: userInfo,
onLanguageChange: onLanguageChange
})), type === 'enterprise' && _react["default"].createElement(_EnterpriseLayout["default"], Object.assign({
menuAlignMode: menuAlignMode,
config: config
}, props, {
extraHeaderActions: extraHeaderActions,
isInIframe: isInIframe,
userInfo: userInfo,
onLanguageChange: onLanguageChange,
type: type
})), (!type || !['paas', 'enterprise'].includes(type)) && _react["default"].createElement(_Layout["default"], Object.assign({
menuAlignMode: menuAlignMode,
config: config
}, props, {
extraHeaderActions: extraHeaderActions,
isInIframe: isInIframe,
userInfo: userInfo,
onLanguageChange: onLanguageChange
})))));
};
TNTLayout.HeaderActionItem = HeaderActionItem;
TNTLayout.HeaderNavs = _HeaderNavs["default"];
TNTLayout.HeaderTabs = _HeaderTabs["default"];
TNTLayout.AuthContext = _authContext["default"];
TNTLayout.findMenuInfoByPath = _utils.findMenuInfoByPath;
var _default = exports["default"] = TNTLayout;