@danilandreev/material-docs
Version:
material-docs - react framework for easy creating documentation site in material design style.
97 lines (72 loc) • 3.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.displayName = void 0;
var _react = _interopRequireDefault(require("react"));
var _styles = require("./styles");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _getChildrenFromContainer = _interopRequireDefault(require("../../utils/getChildrenFromContainer"));
var _clsx = _interopRequireDefault(require("clsx"));
var _styles2 = require("@material-ui/styles");
var _ListItemContained = require("../ListItemContained");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var displayName = "MatDocListItem";
exports.displayName = displayName;
var ListItem = /*#__PURE__*/_react.default.forwardRef(function ListItem(props, ref) {
var children = props.children,
_props$type = props.type,
type = _props$type === void 0 ? "circle" : _props$type,
_props$dense = props.dense,
dense = _props$dense === void 0 ? false : _props$dense,
style = props.style,
className = props.className,
classes = props.classes,
other = _objectWithoutProperties(props, ["children", "type", "dense", "style", "className", "classes"]);
var containedItems = (0, _getChildrenFromContainer.default)(children, _ListItemContained.displayName);
var content = _react.default.Children.map(children, function (child) {
return child.type && child.type.displayName === _ListItemContained.displayName ? null : child;
});
var listTypeClass = classes.typeCircle;
switch (type) {
case "square":
listTypeClass = classes.typeSquare;
break;
case "upper-roman":
listTypeClass = classes.typeRoman;
break;
case "lower-alpha":
listTypeClass = classes.typeAlpha;
break;
case "none":
listTypeClass = classes.typeNone;
break;
}
return /*#__PURE__*/_react.default.createElement("li", _extends({
className: (0, _clsx.default)(classes.root, dense && classes.dense, listTypeClass, className)
}, other, {
ref: ref,
style: style
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", null, content), containedItems && /*#__PURE__*/_react.default.createElement("ul", {
className: classes.list
}, containedItems)));
});
ListItem.displayName = displayName;
ListItem.propTypes = {
// ListItemProps
type: _propTypes.default.oneOf(["circle", "square", "upper-roman", "lower-alpha", "none"]),
dense: _propTypes.default.bool,
// Stylable
style: _propTypes.default.object,
className: _propTypes.default.string,
classes: _propTypes.default.object,
// Containerable
children: _propTypes.default.node
};
var _default = (0, _styles2.withStyles)(_styles.styles, {
name: displayName
})(ListItem);
exports.default = _default;