UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

86 lines (71 loc) 2.56 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); 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); } var OrderedList = function OrderedList(props) { return subList(props); }; OrderedList.propTypes = { /** The text displayed. */ sublist: _propTypes["default"].arrayOf(_propTypes["default"].shape({ text: _propTypes["default"].string.required, sublist: _propTypes["default"].arrayOf(_propTypes["default"].shape({ text: _propTypes["default"].string.required })) })) }; OrderedList.defaultProps = { sublist: [{ text: 'This is a list item in an ordered list' }, { text: 'An ordered list is a list in which the sequence of items is important.' }, { text: 'Lists can be nested inside of each other', sublist: [{ text: 'This is a nested list item' }, { text: 'This is another nested list item in an ordered list' }] }, { text: 'This is the last list item' }] }; var listItem = function listItem(props, itemIndex, olIndex) { var raw = { __html: props.text }; var key = "li." + olIndex + "." + itemIndex; /* eslint-disable-next-line react/no-danger */ return /*#__PURE__*/_react["default"].createElement("li", { key: key, dangerouslySetInnerHTML: raw }); }; listItem.propTypes = process.env.NODE_ENV !== "production" ? { text: _propTypes["default"].string } : {}; var subList = function subList(props) { var newProps = _extends({}, props); if (!Object.prototype.hasOwnProperty.call(newProps, 'olIndex')) { newProps.olIndex = 0; } var olId = "ol." + newProps.olIndex; newProps.olIndex += 1; var list = newProps.sublist; return /*#__PURE__*/_react["default"].createElement("ol", { key: olId }, list && list.map(function (item, itemIndex) { if (item.sublist) { var subitem = [listItem(item, itemIndex, olId)]; subitem.push(subList(item)); return subitem; } return listItem(item, itemIndex, olId); })); }; var _default = OrderedList; exports["default"] = _default; module.exports = exports.default;