UNPKG

5.22 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12var _CheckOutlined = _interopRequireDefault(require("@ant-design/icons/CheckOutlined"));
13var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
14var _classnames = _interopRequireDefault(require("classnames"));
15var _rcSteps = _interopRequireDefault(require("rc-steps"));
16var React = _interopRequireWildcard(require("react"));
17var _tooltip = _interopRequireDefault(require("../tooltip"));
18var _configProvider = require("../config-provider");
19var _useBreakpoint2 = _interopRequireDefault(require("../grid/hooks/useBreakpoint"));
20var _progress = _interopRequireDefault(require("../progress"));
21var _useLegacyItems = _interopRequireDefault(require("./useLegacyItems"));
22var _style = _interopRequireDefault(require("./style"));
23var __rest = void 0 && (void 0).__rest || function (s, e) {
24 var t = {};
25 for (var p in s) {
26 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
27 }
28 if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
29 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
30 }
31 return t;
32};
33var Steps = function Steps(props) {
34 var _classNames;
35 var percent = props.percent,
36 size = props.size,
37 className = props.className,
38 direction = props.direction,
39 items = props.items,
40 _props$responsive = props.responsive,
41 responsive = _props$responsive === void 0 ? true : _props$responsive,
42 _props$current = props.current,
43 current = _props$current === void 0 ? 0 : _props$current,
44 children = props.children,
45 restProps = __rest(props, ["percent", "size", "className", "direction", "items", "responsive", "current", "children"]);
46 var _useBreakpoint = (0, _useBreakpoint2["default"])(responsive),
47 xs = _useBreakpoint.xs;
48 var _React$useContext = React.useContext(_configProvider.ConfigContext),
49 getPrefixCls = _React$useContext.getPrefixCls,
50 rtlDirection = _React$useContext.direction;
51 var realDirectionValue = React.useMemo(function () {
52 return responsive && xs ? 'vertical' : direction;
53 }, [xs, direction]);
54 var prefixCls = getPrefixCls('steps', props.prefixCls);
55 var _useStyle = (0, _style["default"])(prefixCls),
56 _useStyle2 = (0, _slicedToArray2["default"])(_useStyle, 2),
57 wrapSSR = _useStyle2[0],
58 hashId = _useStyle2[1];
59 var isInline = props.type === 'inline';
60 var iconPrefix = getPrefixCls('', props.iconPrefix);
61 var mergedItems = (0, _useLegacyItems["default"])(items, children);
62 var mergedPercent = isInline ? undefined : percent;
63 var stepsClassName = (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, prefixCls + "-rtl", rtlDirection === 'rtl'), (0, _defineProperty2["default"])(_classNames, prefixCls + "-with-progress", mergedPercent !== undefined), _classNames), className, hashId);
64 var icons = {
65 finish: /*#__PURE__*/React.createElement(_CheckOutlined["default"], {
66 className: prefixCls + "-finish-icon"
67 }),
68 error: /*#__PURE__*/React.createElement(_CloseOutlined["default"], {
69 className: prefixCls + "-error-icon"
70 })
71 };
72 var stepIconRender = function stepIconRender(_ref) {
73 var node = _ref.node,
74 status = _ref.status;
75 if (status === 'process' && mergedPercent !== undefined) {
76 // currently it's hard-coded, since we can't easily read the actually width of icon
77 var progressWidth = size === 'small' ? 32 : 40;
78 // iconWithProgress
79 return /*#__PURE__*/React.createElement("div", {
80 className: prefixCls + "-progress-icon"
81 }, /*#__PURE__*/React.createElement(_progress["default"], {
82 type: "circle",
83 percent: mergedPercent,
84 width: progressWidth,
85 strokeWidth: 4,
86 format: function format() {
87 return null;
88 }
89 }), node);
90 }
91 return node;
92 };
93 var itemRender = function itemRender(item, stepItem) {
94 return item.description ? /*#__PURE__*/React.createElement(_tooltip["default"], {
95 title: item.description
96 }, stepItem) : stepItem;
97 };
98 return wrapSSR( /*#__PURE__*/React.createElement(_rcSteps["default"], (0, _extends2["default"])({
99 icons: icons
100 }, restProps, {
101 current: current,
102 size: size,
103 items: mergedItems,
104 itemRender: isInline ? itemRender : undefined,
105 stepIcon: stepIconRender,
106 direction: realDirectionValue,
107 prefixCls: prefixCls,
108 iconPrefix: iconPrefix,
109 className: stepsClassName
110 })));
111};
112Steps.Step = _rcSteps["default"].Step;
113var _default = Steps;
114exports["default"] = _default;
\No newline at end of file