UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

58 lines (57 loc) 1.56 kB
/** * DevExtreme (esm/ui/scroll_view/animator.js) * Version: 21.1.4 * Build date: Mon Jun 21 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { noop } from "../../core/utils/common"; import Class from "../../core/class"; var abstract = Class.abstract; import { requestAnimationFrame, cancelAnimationFrame } from "../../animation/frame"; var Animator = Class.inherit({ ctor: function() { this._finished = true; this._stopped = false; this._proxiedStepCore = this._stepCore.bind(this) }, start: function() { this._stopped = false; this._finished = false; this._stepCore() }, stop: function() { this._stopped = true; cancelAnimationFrame(this._stepAnimationFrame) }, _stepCore: function() { if (this._isStopped()) { this._stop(); return } if (this._isFinished()) { this._finished = true; this._complete(); return } this._step(); this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore) }, _step: abstract, _isFinished: noop, _stop: noop, _complete: noop, _isStopped: function() { return this._stopped }, inProgress: function() { return !(this._stopped || this._finished) } }); export default Animator;