UNPKG

@atlaskit/progress-tracker

Version:

A progress tracker displays the steps and progress through a journey.

147 lines (145 loc) 7.92 kB
/* stage.tsx generated by @compiled/babel-plugin v3.0.2 */ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("./stage.compiled.css"); var _react = _interopRequireWildcard(require("react")); var React = _react; var _runtime = require("@compiled/react/runtime"); var _readOnlyError2 = _interopRequireDefault(require("@babel/runtime/helpers/readOnlyError")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _compiled = require("@atlaskit/primitives/compiled"); var _bar = _interopRequireDefault(require("./bar")); var _marker = _interopRequireDefault(require("./marker")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var styles = { listItemContent: "_1bsb1osq _kqswh2mm" }; var textColor = { unvisited: "_syaz1rpy", current: "_syaz1oa5", visited: "_syazi7uo", disabled: "_syaz1gmx" }; var fontWeight = { unvisited: "_k48pi7a9", current: "_k48pwu06", visited: "_k48pwu06", disabled: "_k48pwu06" }; var listItemStyles = null; var fadeAnimationBase = null; var fadeIn = null; var fadeAnimationActive = null; var titleStyles = null; // eslint-disable-next-line @repo/internal/react/no-class-components var ProgressTrackerStage = exports.default = /*#__PURE__*/function (_PureComponent) { function ProgressTrackerStage(props) { var _this; (0, _classCallCheck2.default)(this, ProgressTrackerStage); _this = _callSuper(this, ProgressTrackerStage, [props]); (0, _defineProperty2.default)(_this, "onEntered", function () { _this.setState({ transitioning: false, oldPercentageComplete: _this.props.item.percentageComplete }); }); _this.state = { transitioning: false, oldPercentageComplete: 0 }; return _this; } (0, _inherits2.default)(ProgressTrackerStage, _PureComponent); return (0, _createClass2.default)(ProgressTrackerStage, [{ key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { if (prevProps.item.status !== this.props.item.status || prevProps.item.percentageComplete !== this.props.item.percentageComplete) { this.startTransition(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { if (this.animationTimeoutId) { clearTimeout(this.animationTimeoutId); } } }, { key: "startTransition", value: function startTransition() { var _this2 = this; if (this.animationTimeoutId) { clearTimeout(this.animationTimeoutId); } this.setState(_objectSpread(_objectSpread({}, this.state), {}, { transitioning: true })); var timeout = this.props.transitionDelay + this.props.transitionSpeed; this.animationTimeoutId = setTimeout(function () { _this2.onEntered(); }, timeout); } }, { key: "shouldShowLink", value: function shouldShowLink() { return this.props.item.status === 'visited' && // TODO: `noLink` is unnecessary as we should just be detecting if the `href` is set... !this.props.item.noLink; } }, { key: "render", value: function render() { var _this$props = this.props, item = _this$props.item, render = _this$props.render, transitionDelay = _this$props.transitionDelay, transitionSpeed = _this$props.transitionSpeed, transitionEasing = _this$props.transitionEasing, testId = _this$props.testId; var ariaCurrent = item.status === 'current' ? 'step' : 'false'; var listInlineStyles = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, '--ds--pt--ts', "".concat(transitionSpeed, "ms")), '--ds--pt--td', "".concat(transitionDelay, "ms")), '--ds--pt--te', transitionEasing); return /*#__PURE__*/React.createElement("li", { "data-testid": testId // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766 , style: listInlineStyles, "aria-current": ariaCurrent, className: (0, _runtime.ax)(["_2mzuglyw _6rthze3t _1pfhze3t _12l2ze3t _ahbqze3t _1i4q1hna"]) }, /*#__PURE__*/React.createElement(_compiled.Box, { xcss: styles.listItemContent }, /*#__PURE__*/React.createElement(_marker.default, { testId: testId && "".concat(testId, "-marker"), status: item.percentageComplete > 0 ? 'visited' : item.status }), /*#__PURE__*/React.createElement("div", { className: (0, _runtime.ax)(["_tzy4kb7n", "_y44vp021 _ju251oqq _1y0ctrqk"]), style: { animationPlayState: this.state.transitioning ? 'running' : 'paused', animationDuration: ['visited', 'disabled'].includes(this.props.item.status) ? '0ms' : undefined, "--_1j189zp": (0, _runtime.ix)("".concat(fadeIn, " var(--ds--pt--ts) var(--ds--pt--te) forwards")) } }, /*#__PURE__*/React.createElement(_bar.default, { testId: testId && "".concat(testId, "-bar"), percentageComplete: item.percentageComplete })), /*#__PURE__*/React.createElement("div", { "data-testid": testId && "".concat(testId, "-title"), className: (0, _runtime.ax)(["_tzy4kb7n", "_11c8fhey _1pfhv47k _y3gn1h6o", textColor[item.status], fontWeight[item.status]]) }, this.shouldShowLink() ? render.link({ item: item }) : item.label))); } }]); }(_react.PureComponent);