UNPKG

tntd

Version:

tntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。

78 lines (77 loc) 5.42 kB
"use strict"; 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 }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _images = require("./images"); var _templateObject; /** * @file Logo * @author zhangyou */ 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 }; } function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); } var Logo = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: ", ";\n line-height: ", ";\n padding-left: 15px;\n width: 220px;\n background: #191d29;\n font-size: ", ";\n color: rgba(226, 237, 255, 0.9);\n letter-spacing: 0;\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n &:after {\n position: absolute;\n bottom: -12px;\n left: 0;\n background-image: linear-gradient(0deg, #191d29 23%, #151924 93%);\n content: '';\n width: 100%;\n height: 12px;\n }\n\n .ant-layout-sider-collapsed & {\n padding-left: 26px;\n }\n\n .compatible & {\n background: #213f83;\n color: #a1d7ff;\n box-shadow: 0 1px 8px 0 rgba(0, 0, 0, 0.3);\n &:after {\n display: none;\n }\n }\n cursor: pointer;\n font-weight: 400;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n .tnt-themeS1 & {\n background: #ffffff !important;\n box-shadow: 2px 3px 8px -1px rgba(0, 0, 0, 0.15);\n color: #17233d;\n &:after {\n display: none;\n }\n }\n\n .tnt-themeS1.compatible & {\n background: #323b4a;\n }\n\n // \u84DD\u8272\u4E3B\u9898\n .tnt-themeS3 & {\n background: ", "; //#1D4295 !important;\n box-shadow: 2px 3px 8px -1px rgba(0, 0, 0, 0.15);\n color: #ffffff;\n &:after {\n display: none;\n }\n }\n\n img {\n position: relative;\n top: -1px;\n width: 23px;\n height: 23px;\n margin-right: 12px;\n .large-size & {\n width: 28px;\n height: 28px;\n }\n }\n"])), function (props) { return "".concat(props.theme.headerHeight, "px"); }, function (props) { return "".concat(props.theme.headerHeight, "px"); }, function (props) { return "".concat(props.fontSize, "px"); }, function (props) { return "".concat(props.theme.blueBgColor, " !important"); }); // JS判断字符串长度(英文占1个字符,中文汉字占2个字符) var getStrLen = function getStrLen() { var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var len = 0; for (var i = 0; i < str.length; i++) { var c = str.charCodeAt(i); var chartLength = 2; //单字节加1 if (c >= 0x0001 && c <= 0x007e || 0xff60 <= c && c <= 0xff9f) { chartLength = 1; } len += chartLength; } return len; }; var _default = exports["default"] = (0, _styledComponents.withTheme)(function (props) { var _a; var logo = props.logo, name = props.name, enName = props.enName, language = props.language, collapsed = props.collapsed, size = props.theme.size; var productNameLen = getStrLen(language === 'cn' ? name : enName); var fontSize = { 12: 19, 13: 18, 14: 17, 15: 16, 16: 15 }[Math.max(12, Math.min(productNameLen, 16))] + (size === 'large' ? 1 : 0); var LogoImg = function LogoImg(props) { return _react["default"].createElement("img", Object.assign({ onError: function onError(e) { e.target.onerror = null; e.target.src = _images.logoImgMap["default"]; } }, props)); }; return _react["default"].createElement(Logo, Object.assign({}, props, { fontSize: fontSize }), typeof logo === 'string' ? _react["default"].createElement(LogoImg, { src: _images.logoImgMap[logo] || _images.logoImgMap["default"] }) : logo && logo.type === 'img' ? _react["default"].createElement(LogoImg, Object.assign({}, logo.props, { src: ((_a = logo.props) === null || _a === void 0 ? void 0 : _a.src) || _images.logoImgMap["default"] })) : logo, collapsed ? '' : { cn: name, en: enName }[language]); });