@antv/f2
Version:
Charts for mobile visualization.
79 lines (78 loc) • 2.72 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var _component = _interopRequireDefault(require("./base/component"));
var _children = _interopRequireDefault(require("./children"));
var Timeline = /*#__PURE__*/function (_Component) {
(0, _inherits2.default)(Timeline, _Component);
var _super = (0, _createSuper2.default)(Timeline);
function Timeline(props) {
var _this;
(0, _classCallCheck2.default)(this, Timeline);
_this = _super.call(this, props);
_this.next = function () {
var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
state = _assertThisInitialize.state,
props = _assertThisInitialize.props;
var index = state.index,
count = state.count,
delay = state.delay;
var loop = props.loop;
var next = loop ? (index + 1) % count : index + 1;
if (next < count) {
setTimeout(function () {
_this.setState({
index: next
});
}, delay || 0);
}
};
var delay = props.delay,
_props$start = props.start,
start = _props$start === void 0 ? 0 : _props$start,
children = props.children;
var count = _children.default.toArray(children).length;
_this.state = {
delay: delay,
count: count,
index: start
};
return _this;
}
(0, _createClass2.default)(Timeline, [{
key: "didMount",
value: function didMount() {
var context = this.context;
var root = context.root;
root.on('animationEnd', this.next);
}
}, {
key: "didUnmount",
value: function didUnmount() {
var context = this.context;
var root = context.root;
root.off('animationEnd', this.next);
}
}, {
key: "render",
value: function render() {
var state = this.state,
props = this.props;
var children = props.children;
var index = state.index;
var childrenArray = _children.default.toArray(children);
return childrenArray[index];
}
}]);
return Timeline;
}(_component.default);
var _default = Timeline;
exports.default = _default;
;