1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | var _typeof = require("@babel/runtime/helpers/typeof");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports["default"] = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15 |
|
16 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
17 |
|
18 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
19 |
|
20 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
21 |
|
22 | var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
23 |
|
24 | var React = _interopRequireWildcard(require("react"));
|
25 |
|
26 | var _classnames = _interopRequireDefault(require("classnames"));
|
27 |
|
28 | var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
|
29 |
|
30 | var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
31 |
|
32 | var _configProvider = require("../config-provider");
|
33 |
|
34 | var _type = require("../_util/type");
|
35 |
|
36 | var _reactNode = require("../_util/reactNode");
|
37 |
|
38 | function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
39 |
|
40 | function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
41 |
|
42 | var __rest = void 0 && (void 0).__rest || function (s, e) {
|
43 | var t = {};
|
44 |
|
45 | for (var p in s) {
|
46 | if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
47 | }
|
48 |
|
49 | if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
50 | if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
51 | }
|
52 | return t;
|
53 | };
|
54 |
|
55 | var SpinSizes = (0, _type.tuple)('small', 'default', 'large');
|
56 |
|
57 | var defaultIndicator = null;
|
58 |
|
59 | function renderIndicator(prefixCls, props) {
|
60 | var indicator = props.indicator;
|
61 | var dotClassName = "".concat(prefixCls, "-dot");
|
62 |
|
63 | if (indicator === null) {
|
64 | return null;
|
65 | }
|
66 |
|
67 | if ((0, _reactNode.isValidElement)(indicator)) {
|
68 | return (0, _reactNode.cloneElement)(indicator, {
|
69 | className: (0, _classnames["default"])(indicator.props.className, dotClassName)
|
70 | });
|
71 | }
|
72 |
|
73 | if ((0, _reactNode.isValidElement)(defaultIndicator)) {
|
74 | return (0, _reactNode.cloneElement)(defaultIndicator, {
|
75 | className: (0, _classnames["default"])(defaultIndicator.props.className, dotClassName)
|
76 | });
|
77 | }
|
78 |
|
79 | return React.createElement("span", {
|
80 | className: (0, _classnames["default"])(dotClassName, "".concat(prefixCls, "-dot-spin"))
|
81 | }, React.createElement("i", {
|
82 | className: "".concat(prefixCls, "-dot-item")
|
83 | }), React.createElement("i", {
|
84 | className: "".concat(prefixCls, "-dot-item")
|
85 | }), React.createElement("i", {
|
86 | className: "".concat(prefixCls, "-dot-item")
|
87 | }), React.createElement("i", {
|
88 | className: "".concat(prefixCls, "-dot-item")
|
89 | }));
|
90 | }
|
91 |
|
92 | function shouldDelay(spinning, delay) {
|
93 | return !!spinning && !!delay && !isNaN(Number(delay));
|
94 | }
|
95 |
|
96 | var Spin = function (_React$Component) {
|
97 | (0, _inherits2["default"])(Spin, _React$Component);
|
98 |
|
99 | var _super = (0, _createSuper2["default"])(Spin);
|
100 |
|
101 | function Spin(props) {
|
102 | var _this;
|
103 |
|
104 | (0, _classCallCheck2["default"])(this, Spin);
|
105 | _this = _super.call(this, props);
|
106 |
|
107 | _this.debouncifyUpdateSpinning = function (props) {
|
108 | var _ref = props || _this.props,
|
109 | delay = _ref.delay;
|
110 |
|
111 | if (delay) {
|
112 | _this.cancelExistingSpin();
|
113 |
|
114 | _this.updateSpinning = (0, _debounce["default"])(_this.originalUpdateSpinning, delay);
|
115 | }
|
116 | };
|
117 |
|
118 | _this.updateSpinning = function () {
|
119 | var spinning = _this.props.spinning;
|
120 | var currentSpinning = _this.state.spinning;
|
121 |
|
122 | if (currentSpinning !== spinning) {
|
123 | _this.setState({
|
124 | spinning: spinning
|
125 | });
|
126 | }
|
127 | };
|
128 |
|
129 | _this.renderSpin = function (_ref2) {
|
130 | var _classNames;
|
131 |
|
132 | var getPrefixCls = _ref2.getPrefixCls,
|
133 | direction = _ref2.direction;
|
134 |
|
135 | var _a = _this.props,
|
136 | customizePrefixCls = _a.prefixCls,
|
137 | className = _a.className,
|
138 | size = _a.size,
|
139 | tip = _a.tip,
|
140 | wrapperClassName = _a.wrapperClassName,
|
141 | style = _a.style,
|
142 | restProps = __rest(_a, ["prefixCls", "className", "size", "tip", "wrapperClassName", "style"]);
|
143 |
|
144 | var spinning = _this.state.spinning;
|
145 | var prefixCls = getPrefixCls('spin', customizePrefixCls);
|
146 | var spinClassName = (0, _classnames["default"])(prefixCls, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-sm"), size === 'small'), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-lg"), size === 'large'), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-spinning"), spinning), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-show-text"), !!tip), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-rtl"), direction === 'rtl'), _classNames), className);
|
147 |
|
148 | var divProps = (0, _omit["default"])(restProps, ['spinning', 'delay', 'indicator']);
|
149 | var spinElement = React.createElement("div", (0, _extends2["default"])({}, divProps, {
|
150 | style: style,
|
151 | className: spinClassName
|
152 | }), renderIndicator(prefixCls, _this.props), tip ? React.createElement("div", {
|
153 | className: "".concat(prefixCls, "-text")
|
154 | }, tip) : null);
|
155 |
|
156 | if (_this.isNestedPattern()) {
|
157 | var containerClassName = (0, _classnames["default"])("".concat(prefixCls, "-container"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-blur"), spinning));
|
158 | return React.createElement("div", (0, _extends2["default"])({}, divProps, {
|
159 | className: (0, _classnames["default"])("".concat(prefixCls, "-nested-loading"), wrapperClassName)
|
160 | }), spinning && React.createElement("div", {
|
161 | key: "loading"
|
162 | }, spinElement), React.createElement("div", {
|
163 | className: containerClassName,
|
164 | key: "container"
|
165 | }, _this.props.children));
|
166 | }
|
167 |
|
168 | return spinElement;
|
169 | };
|
170 |
|
171 | var spinning = props.spinning,
|
172 | delay = props.delay;
|
173 | var shouldBeDelayed = shouldDelay(spinning, delay);
|
174 | _this.state = {
|
175 | spinning: spinning && !shouldBeDelayed
|
176 | };
|
177 | _this.originalUpdateSpinning = _this.updateSpinning;
|
178 |
|
179 | _this.debouncifyUpdateSpinning(props);
|
180 |
|
181 | return _this;
|
182 | }
|
183 |
|
184 | (0, _createClass2["default"])(Spin, [{
|
185 | key: "componentDidMount",
|
186 | value: function componentDidMount() {
|
187 | this.updateSpinning();
|
188 | }
|
189 | }, {
|
190 | key: "componentDidUpdate",
|
191 | value: function componentDidUpdate() {
|
192 | this.debouncifyUpdateSpinning();
|
193 | this.updateSpinning();
|
194 | }
|
195 | }, {
|
196 | key: "componentWillUnmount",
|
197 | value: function componentWillUnmount() {
|
198 | this.cancelExistingSpin();
|
199 | }
|
200 | }, {
|
201 | key: "cancelExistingSpin",
|
202 | value: function cancelExistingSpin() {
|
203 | var updateSpinning = this.updateSpinning;
|
204 |
|
205 | if (updateSpinning && updateSpinning.cancel) {
|
206 | updateSpinning.cancel();
|
207 | }
|
208 | }
|
209 | }, {
|
210 | key: "isNestedPattern",
|
211 | value: function isNestedPattern() {
|
212 | return !!(this.props && typeof this.props.children !== 'undefined');
|
213 | }
|
214 | }, {
|
215 | key: "render",
|
216 | value: function render() {
|
217 | return React.createElement(_configProvider.ConfigConsumer, null, this.renderSpin);
|
218 | }
|
219 | }], [{
|
220 | key: "setDefaultIndicator",
|
221 | value: function setDefaultIndicator(indicator) {
|
222 | defaultIndicator = indicator;
|
223 | }
|
224 | }]);
|
225 | return Spin;
|
226 | }(React.Component);
|
227 |
|
228 | Spin.defaultProps = {
|
229 | spinning: true,
|
230 | size: 'default',
|
231 | wrapperClassName: ''
|
232 | };
|
233 | var _default = Spin;
|
234 | exports["default"] = _default; |
\ | No newline at end of file |