1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports.default = void 0;
|
9 |
|
10 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
11 |
|
12 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
13 |
|
14 | var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
15 |
|
16 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
17 |
|
18 | var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
19 |
|
20 | var _component = _interopRequireDefault(require("./base/component"));
|
21 |
|
22 | var _children = _interopRequireDefault(require("./children"));
|
23 |
|
24 | var Timeline = function (_Component) {
|
25 | (0, _inherits2.default)(Timeline, _Component);
|
26 |
|
27 | var _super = (0, _createSuper2.default)(Timeline);
|
28 |
|
29 | function Timeline(props) {
|
30 | var _this;
|
31 |
|
32 | (0, _classCallCheck2.default)(this, Timeline);
|
33 | _this = _super.call(this, props);
|
34 |
|
35 | _this.next = function () {
|
36 | var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
|
37 | state = _assertThisInitialize.state,
|
38 | props = _assertThisInitialize.props;
|
39 |
|
40 | var index = state.index,
|
41 | count = state.count,
|
42 | delay = state.delay;
|
43 | var loop = props.loop;
|
44 | var next = loop ? (index + 1) % count : index + 1;
|
45 |
|
46 | if (next < count) {
|
47 | setTimeout(function () {
|
48 | _this.setState({
|
49 | index: next
|
50 | });
|
51 | }, delay || 0);
|
52 | }
|
53 | };
|
54 |
|
55 | var delay = props.delay,
|
56 | _props$start = props.start,
|
57 | start = _props$start === void 0 ? 0 : _props$start,
|
58 | children = props.children;
|
59 |
|
60 | var count = _children.default.toArray(children).length;
|
61 |
|
62 | _this.state = {
|
63 | delay: delay,
|
64 | count: count,
|
65 | index: start
|
66 | };
|
67 | return _this;
|
68 | }
|
69 |
|
70 | (0, _createClass2.default)(Timeline, [{
|
71 | key: "didMount",
|
72 | value: function didMount() {
|
73 | var context = this.context;
|
74 | var root = context.root;
|
75 | root.on('animationEnd', this.next);
|
76 | }
|
77 | }, {
|
78 | key: "didUnmount",
|
79 | value: function didUnmount() {
|
80 | var context = this.context;
|
81 | var root = context.root;
|
82 | root.off('animationEnd', this.next);
|
83 | }
|
84 | }, {
|
85 | key: "render",
|
86 | value: function render() {
|
87 | var state = this.state,
|
88 | props = this.props;
|
89 | var children = props.children;
|
90 | var index = state.index;
|
91 |
|
92 | var childrenArray = _children.default.toArray(children);
|
93 |
|
94 | return childrenArray[index];
|
95 | }
|
96 | }]);
|
97 | return Timeline;
|
98 | }(_component.default);
|
99 |
|
100 | var _default = Timeline;
|
101 | exports.default = _default; |
\ | No newline at end of file |