UNPKG

shineout

Version:

Shein 前端组件库

118 lines (95 loc) 4.56 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); 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 _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _styles = require("./styles"); var _func = require("../utils/func"); var _Node = _interopRequireDefault(require("./Node")); var List = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(List, _PureComponent); function List(props) { var _this; _this = _PureComponent.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "bindLines", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "bindList", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "lines", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "element", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "hasExpanded", void 0); _this.bindLines = _this.bindElement.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'lines'); _this.bindList = _this.bindElement.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'element'); _this.renderNode = _this.renderNode.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } var _proto = List.prototype; _proto.getKey = function getKey(data, index) { var _this$props = this.props, _this$props$id = _this$props.id, id = _this$props$id === void 0 ? '' : _this$props$id, keygen = _this$props.keygen; if (typeof keygen === 'function') return keygen(data, id); if (keygen) return data[keygen]; return id + (id ? ',' : '') + index; }; _proto.bindElement = function bindElement(name, el) { this[name] = el; }; _proto.renderNode = function renderNode(child, index) { var _this$props2 = this.props, data = _this$props2.data, isRoot = _this$props2.isRoot, expanded = _this$props2.expanded, keygen = _this$props2.keygen, line = _this$props2.line, className = _this$props2.className, style = _this$props2.style, other = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["data", "isRoot", "expanded", "keygen", "line", "className", "style"]); var id = this.getKey(child, index); return _react.default.createElement(_Node.default, (0, _extends2.default)({}, other, { data: child, id: id, index: index, key: id, line: line, keygen: keygen, listComponent: List })); }; _proto.render = function render() { var _this$props3 = this.props, data = _this$props3.data, expanded = _this$props3.expanded, className = _this$props3.className, style = _this$props3.style, childrenClassName = _this$props3.childrenClassName; if (!expanded && !this.hasExpanded) return null; this.hasExpanded = true; var newStyle = Object.assign({}, style, { display: expanded ? 'block' : 'none' }); return _react.default.createElement("div", { className: (0, _classnames.default)(className, childrenClassName), ref: this.bindList, onDrop: _func.empty, onDragOver: _func.empty, style: newStyle }, data.map(this.renderNode)); }; return List; }(_react.PureComponent); (0, _defineProperty2.default)(List, "defaultProps", { id: '', line: true, className: (0, _styles.treeClass)('children') }); var _default = List; exports.default = _default;