UNPKG

chowa

Version:

UI component library based on React

40 lines (39 loc) 1.47 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const PropTypes = require("prop-types"); const classnames_1 = require("classnames"); const utils_1 = require("../utils"); const timeline_item_1 = require("./timeline-item"); const Timeline = (props) => { const { children, className, style, mode } = props; const componentClass = classnames_1.default({ [utils_1.preClass('timeline')]: true, [utils_1.preClass('timeline-alternate')]: mode === 'alternate', [className]: utils_1.isExist(className) }); return (React.createElement("ul", { className: componentClass, style: style }, React.Children.map(children, (child, key) => { if (!utils_1.isReactElement(child) || child.type !== timeline_item_1.default) { return null; } return React.cloneElement(child, { placement: mode === 'alternate' ? (key % 2 === 0 ? 'left' : 'right') : mode }); }))); }; Timeline.propTypes = { className: PropTypes.string, style: PropTypes.object, mode: PropTypes.oneOf(['left', 'right', 'alternate']) }; Timeline.Item = timeline_item_1.default; exports.default = Timeline;