UNPKG

react-lightning-design-components

Version:

Salesforce Lightning Design System components built with React 16

210 lines (162 loc) 15.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _Icon = require('./Icon'); var _Icon2 = _interopRequireDefault(_Icon); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var SalesPath = function (_React$Component) { (0, _inherits3.default)(SalesPath, _React$Component); function SalesPath(props) { (0, _classCallCheck3.default)(this, SalesPath); var _this = (0, _possibleConstructorReturn3.default)(this, (SalesPath.__proto__ || (0, _getPrototypeOf2.default)(SalesPath)).call(this, props)); _this.state = {}; return _this; } (0, _createClass3.default)(SalesPath, [{ key: 'onItemClick', value: function onItemClick(itemKey) { if (this.props.onSelect) { this.props.onSelect(itemKey); } // Uncontrolled this.setState({ activeKey: itemKey }); } }, { key: 'renderSalesPath', value: function renderSalesPath(activeKey, paths) { var _this2 = this; var typeTracker = -1; return _react2.default.Children.map(paths, function (path) { var _path$props = path.props, eventKey = _path$props.eventKey, type = _path$props.type, props = (0, _objectWithoutProperties3.default)(_path$props, ['eventKey', 'type']); var isActive = eventKey === activeKey; typeTracker = isActive ? 0 : typeTracker >= 0 ? 1 : -1; var evaluatedType = type || (isActive ? 'current' : typeTracker === -1 ? 'complete' : 'incomplete'); return _react2.default.createElement(PathItem, (0, _extends3.default)({ eventKey: eventKey, type: evaluatedType, onSelect: _this2.onItemClick.bind(_this2) }, props)); }); } }, { key: 'render', value: function render() { var _props = this.props, className = _props.className, children = _props.children; var activeKey = this.props.activeKey || this.state.activeKey || this.props.defaultActiveKey; var salesPathClassNames = (0, _classnames2.default)(className, 'slds-tabs--path'); return _react2.default.createElement( 'div', { className: salesPathClassNames, role: 'application tablist' }, _react2.default.createElement( 'ul', { className: 'slds-tabs--path__nav', role: 'presentation' }, this.renderSalesPath(activeKey, children) ) ); } }]); return SalesPath; }(_react2.default.Component); SalesPath.propTypes = { className: _propTypes2.default.string, defaultActiveKey: _propTypes2.default.any, activeKey: _propTypes2.default.any, onSelect: _propTypes2.default.func, children: _propTypes2.default.node }; var PathItem = function (_React$Component2) { (0, _inherits3.default)(PathItem, _React$Component2); function PathItem() { (0, _classCallCheck3.default)(this, PathItem); return (0, _possibleConstructorReturn3.default)(this, (PathItem.__proto__ || (0, _getPrototypeOf2.default)(PathItem)).apply(this, arguments)); } (0, _createClass3.default)(PathItem, [{ key: 'onItemClick', value: function onItemClick(itemKey) { if (this.props.onSelect) { this.props.onSelect(itemKey); } } }, { key: 'render', value: function render() { var _props2 = this.props, className = _props2.className, eventKey = _props2.eventKey, title = _props2.title, completedTitle = _props2.completedTitle, type = _props2.type; var pathItemClassName = (0, _classnames2.default)('slds-tabs--path__item', 'slds-is-' + type, className); var tabIndex = type === 'current' ? 0 : -1; var completedText = completedTitle || 'Stage Complete'; return _react2.default.createElement( 'li', { className: pathItemClassName, role: 'presentation' }, _react2.default.createElement( 'a', { className: 'slds-tabs--path__link', 'aria-selected': 'false', tabIndex: tabIndex, role: 'tab', 'aria-live': 'assertive', onClick: this.onItemClick.bind(this, eventKey) }, _react2.default.createElement( 'span', { className: 'slds-tabs--path__stage' }, _react2.default.createElement(_Icon2.default, { category: 'utility', icon: 'check', size: 'x-small' }), type === 'complete' ? _react2.default.createElement( 'span', { className: 'slds-assistive-text' }, completedText ) : null ), _react2.default.createElement( 'span', { className: 'slds-tabs--path__title' }, title ) ) ); } }]); return PathItem; }(_react2.default.Component); PathItem.propTypes = { className: _propTypes2.default.string, eventKey: _propTypes2.default.any, type: _propTypes2.default.oneOf(['complete', 'current', 'incomplete']), title: _propTypes2.default.string, completedTitle: _propTypes2.default.string, onSelect: _propTypes2.default.func }; SalesPath.PathItem = PathItem; exports.default = SalesPath; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL1NhbGVzUGF0aC5qcyJdLCJuYW1lcyI6WyJTYWxlc1BhdGgiLCJwcm9wcyIsInN0YXRlIiwiaXRlbUtleSIsIm9uU2VsZWN0Iiwic2V0U3RhdGUiLCJhY3RpdmVLZXkiLCJwYXRocyIsInR5cGVUcmFja2VyIiwiQ2hpbGRyZW4iLCJtYXAiLCJwYXRoIiwiZXZlbnRLZXkiLCJ0eXBlIiwiaXNBY3RpdmUiLCJldmFsdWF0ZWRUeXBlIiwib25JdGVtQ2xpY2siLCJiaW5kIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJkZWZhdWx0QWN0aXZlS2V5Iiwic2FsZXNQYXRoQ2xhc3NOYW1lcyIsInJlbmRlclNhbGVzUGF0aCIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsInN0cmluZyIsImFueSIsImZ1bmMiLCJub2RlIiwiUGF0aEl0ZW0iLCJ0aXRsZSIsImNvbXBsZXRlZFRpdGxlIiwicGF0aEl0ZW1DbGFzc05hbWUiLCJ0YWJJbmRleCIsImNvbXBsZXRlZFRleHQiLCJvbmVPZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7SUFFTUEsUzs7O0FBRUoscUJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQSw0SUFDWEEsS0FEVzs7QUFFakIsVUFBS0MsS0FBTCxHQUFhLEVBQWI7QUFGaUI7QUFHbEI7Ozs7Z0NBRVdDLE8sRUFBUztBQUNuQixVQUFJLEtBQUtGLEtBQUwsQ0FBV0csUUFBZixFQUF5QjtBQUN2QixhQUFLSCxLQUFMLENBQVdHLFFBQVgsQ0FBb0JELE9BQXBCO0FBQ0Q7QUFDRDtBQUNBLFdBQUtFLFFBQUwsQ0FBYyxFQUFFQyxXQUFXSCxPQUFiLEVBQWQ7QUFDRDs7O29DQUVlRyxTLEVBQVdDLEssRUFBTztBQUFBOztBQUNoQyxVQUFJQyxjQUFjLENBQUMsQ0FBbkI7O0FBRUEsYUFBTyxnQkFBTUMsUUFBTixDQUFlQyxHQUFm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SyxPQUE5QixFQUFzQyxNQUFLLFNBQTNDLEdBREY7QUFFS0MscUJBQVMsVUFBVixHQUNBO0FBQUE7QUFBQSxnQkFBTSxXQUFVLHFCQUFoQjtBQUF3Q3FCO0FBQXhDLGFBREEsR0FFRTtBQUpOLFdBUkY7QUFjRTtBQUFBO0FBQUEsY0FBTSxXQUFVLHdCQUFoQjtBQUEyQ0o7QUFBM0M7QUFkRjtBQURGLE9BREY7QUFvQkQ7OztFQXhDb0IsZ0JBQU1QLFM7O0FBMkM3Qk0sU0FBU0wsU0FBVCxHQUFxQjtBQUNuQk4sYUFBVyxvQkFBVU8sTUFERjtBQUVuQmIsWUFBVSxvQkFBVWMsR0FGRDtBQUduQmIsUUFBTSxvQkFBVXNCLEtBQVYsQ0FBZ0IsQ0FBQyxVQUFELEVBQWEsU0FBYixFQUF3QixZQUF4QixDQUFoQixDQUhhO0FBSW5CTCxTQUFPLG9CQUFVTCxNQUpFO0FBS25CTSxrQkFBZ0Isb0JBQVVOLE1BTFA7QUFNbkJyQixZQUFVLG9CQUFVdUI7QUFORCxDQUFyQjs7QUFTQTNCLFVBQVU2QixRQUFWLEdBQXFCQSxRQUFyQjs7a0JBRWU3QixTIiwiZmlsZSI6IlNhbGVzUGF0aC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jbGFzcyBTYWxlc1BhdGggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgfVxuXG4gIG9uSXRlbUNsaWNrKGl0ZW1LZXkpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5vblNlbGVjdCkge1xuICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChpdGVtS2V5KTtcbiAgICB9XG4gICAgLy8gVW5jb250cm9sbGVkXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUtleTogaXRlbUtleSB9KTtcbiAgfVxuXG4gIHJlbmRlclNhbGVzUGF0aChhY3RpdmVLZXksIHBhdGhzKSB7XG4gICAgbGV0IHR5cGVUcmFja2VyID0gLTE7XG5cbiAgICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ubWFwKHBhdGhzLCAocGF0aCkgPT4ge1xuICAgICAgY29uc3QgeyBldmVudEtleSwgdHlwZSwgLi4ucHJvcHMgfSA9IHBhdGgucHJvcHM7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IGV2ZW50S2V5ID09PSBhY3RpdmVLZXk7XG5cbiAgICAgIHR5cGVUcmFja2VyID0gKGlzQWN0aXZlKSA/IDAgOlxuICAgICAgICAodHlwZVRyYWNrZXIgPj0gMCkgPyAxIDogLTE7XG5cbiAgICAgIGNvbnN0IGV2YWx1YXRlZFR5cGUgPSB0eXBlIHx8IChcbiAgICAgICAgKGlzQWN0aXZlKSA/ICdjdXJyZW50JyA6XG4gICAgICAgICgodHlwZVRyYWNrZXIgPT09IC0xKSA/ICdjb21wbGV0ZScgOiAnaW5jb21wbGV0ZScpXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKDxQYXRoSXRlbVxuICAgICAgICBldmVudEtleT17IGV2ZW50S2V5IH1cbiAgICAgICAgdHlwZT17IGV2YWx1YXRlZFR5cGUgfVxuICAgICAgICBvblNlbGVjdD17IHRoaXMub25JdGVtQ2xpY2suYmluZCh0aGlzKSB9XG4gICAgICAgIHsgLi4ucHJvcHMgfVxuICAgICAgLz4pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBhY3RpdmVLZXkgPSB0aGlzLnByb3BzLmFjdGl2ZUtleSB8fCB0aGlzLnN0YXRlLmFjdGl2ZUtleSB8fCB0aGlzLnByb3BzLmRlZmF1bHRBY3RpdmVLZXk7XG5cbiAgICBjb25zdCBzYWxlc1BhdGhDbGFzc05hbWVzID0gY2xhc3NuYW1lcyhjbGFzc05hbWUsICdzbGRzLXRhYnMtLXBhdGgnKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9eyBzYWxlc1BhdGhDbGFzc05hbWVzIH0gcm9sZT0nYXBwbGljYXRpb24gdGFibGlzdCc+XG4gICAgICAgIDx1bCBjbGFzc05hbWU9J3NsZHMtdGFicy0tcGF0aF9fbmF2JyByb2xlPSdwcmVzZW50YXRpb24nPlxuICAgICAgICAgIHsgdGhpcy5yZW5kZXJTYWxlc1BhdGgoYWN0aXZlS2V5LCBjaGlsZHJlbikgfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5TYWxlc1BhdGgucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRlZmF1bHRBY3RpdmVLZXk6IFByb3BUeXBlcy5hbnksXG4gIGFjdGl2ZUtleTogUHJvcFR5cGVzLmFueSxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5cbmNsYXNzIFBhdGhJdGVtIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBvbkl0ZW1DbGljayhpdGVtS2V5KSB7XG4gICAgaWYgKHRoaXMucHJvcHMub25TZWxlY3QpIHtcbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3QoaXRlbUtleSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBldmVudEtleSwgdGl0bGUsIGNvbXBsZXRlZFRpdGxlLCB0eXBlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgcGF0aEl0ZW1DbGFzc05hbWUgPSBjbGFzc25hbWVzKFxuICAgICAgJ3NsZHMtdGFicy0tcGF0aF9faXRlbScsXG4gICAgICBgc2xkcy1pcy0ke3R5cGV9YCxcbiAgICAgIGNsYXNzTmFtZVxuICAgICk7XG5cbiAgICBjb25zdCB0YWJJbmRleCA9ICh0eXBlID09PSAnY3VycmVudCcpID8gMCA6IC0xO1xuICAgIGNvbnN0IGNvbXBsZXRlZFRleHQgPSBjb21wbGV0ZWRUaXRsZSB8fCAnU3RhZ2UgQ29tcGxldGUnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsaSBjbGFzc05hbWU9eyBwYXRoSXRlbUNsYXNzTmFtZSB9IHJvbGU9J3ByZXNlbnRhdGlvbic+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3NOYW1lPSdzbGRzLXRhYnMtLXBhdGhfX2xpbmsnXG4gICAgICAgICAgYXJpYS1zZWxlY3RlZD0nZmFsc2UnXG4gICAgICAgICAgdGFiSW5kZXg9eyB0YWJJbmRleCB9XG4gICAgICAgICAgcm9sZT0ndGFiJ1xuICAgICAgICAgIGFyaWEtbGl2ZT0nYXNzZXJ0aXZlJ1xuICAgICAgICAgIG9uQ2xpY2s9eyB0aGlzLm9uSXRlbUNsaWNrLmJpbmQodGhpcywgZXZlbnRLZXkpIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nc2xkcy10YWJzLS1wYXRoX19zdGFnZSc+XG4gICAgICAgICAgICA8SWNvbiBjYXRlZ29yeT0ndXRpbGl0eScgaWNvbj0nY2hlY2snIHNpemU9J3gtc21hbGwnIC8+XG4gICAgICAgICAgICB7ICh0eXBlID09PSAnY29tcGxldGUnKSA/IChcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdzbGRzLWFzc2lzdGl2ZS10ZXh0Jz57IGNvbXBsZXRlZFRleHQgfTwvc3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdzbGRzLXRhYnMtLXBhdGhfX3RpdGxlJz57IHRpdGxlIH08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4gICAgKTtcbiAgfVxufVxuXG5QYXRoSXRlbS5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZXZlbnRLZXk6IFByb3BUeXBlcy5hbnksXG4gIHR5cGU6IFByb3BUeXBlcy5vbmVPZihbJ2NvbXBsZXRlJywgJ2N1cnJlbnQnLCAnaW5jb21wbGV0ZSddKSxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbXBsZXRlZFRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvblNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5TYWxlc1BhdGguUGF0aEl0ZW0gPSBQYXRoSXRlbTtcblxuZXhwb3J0IGRlZmF1bHQgU2FsZXNQYXRoO1xuIl19