UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

101 lines (76 loc) 3.02 kB
"use strict"; 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 _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _getValidProps = _interopRequireDefault(require("@helpscout/react-utils/dist/getValidProps")); var _Tooltip = _interopRequireDefault(require("../Tooltip")); var _DotStepper = require("./DotStepper.css"); var _classnames = _interopRequireDefault(require("classnames")); var _jsxRuntime = require("react/jsx-runtime"); var DotStepper = /*#__PURE__*/function (_React$Component) { (0, _inheritsLoose2.default)(DotStepper, _React$Component); function DotStepper() { return _React$Component.apply(this, arguments) || this; } var _proto = DotStepper.prototype; _proto.getClassName = function getClassName() { var className = this.props.className; return (0, _classnames.default)('c-DotStepper', className); }; _proto.getTitle = function getTitle() { var _this$props = this.props, numSteps = _this$props.numSteps, step = _this$props.step; return "Step " + step + " of " + numSteps; }; _proto.renderSteps = function renderSteps() { var numSteps = this.props.numSteps; var markup = []; for (var i = 0; i < numSteps; i += 1) { markup.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_DotStepper.BulletUI, { children: "\u2022" }, i)); } return markup; }; _proto.render = function render() { var _this$props2 = this.props, className = _this$props2.className, step = _this$props2.step, rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["className", "step"]); var title = this.getTitle(); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, { title: title, placement: "bottom", trigger: "click", children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DotStepper.DotStepperUI, (0, _extends2.default)({ "aria-label": title, className: this.getClassName() }, (0, _getValidProps.default)(rest), { children: [this.renderSteps(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DotStepper.ProgressBulletUI, { step: step })] })) }); }; return DotStepper; }(_react.default.Component); DotStepper.defaultProps = { 'data-cy': 'DotStepper', numSteps: 1, step: 1 }; DotStepper.propTypes = { 'data-cy': _propTypes.default.string, /** The total number of steps. */ numSteps: _propTypes.default.number, /** The current step. */ step: _propTypes.default.number }; var _default = DotStepper; exports.default = _default;