UNPKG

@pisell/layout

Version:

基于 Fusion 设计系统的自然布局体系

93 lines (91 loc) 4.68 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _context = _interopRequireDefault(require("./common/context")); var _constant = require("./common/constant"); var _excluded = ["className", "type", "style", "component", "strong", "underline", "delete", "code", "mark", "color", "align", "backgroundColor", "children"]; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /** * 文字 包含:字号、字重、行高 * @param props */ var Text = function Text(props) { var _classNames; var className = props.className, type = props.type, style = props.style, _props$component = props.component, component = _props$component === void 0 ? 'span' : _props$component, strong = props.strong, underline = props.underline, deleteProp = props["delete"], code = props.code, mark = props.mark, color = props.color, align = props.align, backgroundColor = props.backgroundColor, children = props.children, others = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded); var _useContext = (0, _react.useContext)(_context["default"]), prefix = _useContext.prefix; // @ts-ignore var newType = _constant.TEXT_TYPE_MAP[type] || type; var cls = (0, _classnames["default"])(className, (_classNames = {}, _classNames[prefix + "text"] = true, _classNames[prefix + "text-" + newType] = newType, _classNames)); var memorizedChildren = (0, _react.useMemo)(function () { var _children = children; if (typeof _children === 'string' && _children.indexOf('\n') !== -1) { var childrenList = _children.split('\n'); var newChildren = []; childrenList.forEach(function (child) { newChildren.push(child); newChildren.push( /*#__PURE__*/_react["default"].createElement("br", null)); }); newChildren.pop(); _children = newChildren; } if (strong) { _children = /*#__PURE__*/_react["default"].createElement("strong", null, _children); } if (underline) { _children = /*#__PURE__*/_react["default"].createElement("u", null, _children); } if (deleteProp) { _children = /*#__PURE__*/_react["default"].createElement("del", null, _children); } if (code) { _children = /*#__PURE__*/_react["default"].createElement("code", null, _children); } if (mark) { _children = /*#__PURE__*/_react["default"].createElement("mark", null, _children); } return _children; }, [children, mark, code, deleteProp, underline, strong]); var newStyle = (0, _react.useMemo)(function () { return (0, _extends2["default"])({}, color ? { color: color } : null, backgroundColor ? { backgroundColor: backgroundColor } : null, { textAlign: align }, style); }, [color, backgroundColor, align, style]); return /*#__PURE__*/(0, _react.createElement)(component, (0, _extends2["default"])({}, others, { style: newStyle, className: cls }), memorizedChildren); }; Text.displayName = 'Text'; Text.typeMark = 'Text'; Text.defaultProps = { align: 'left', type: 'body2', component: 'span' }; var _default = Text; exports["default"] = _default;