dist/snap.js
function Snap(parent, x, y, options) {
        _classCallCheck(this, Snap);

        var _this = _possibleConstructorReturn(this, (Snap.__proto__ || Object.getPrototypeOf(Snap)).call(this, parent));

        options = options || {};
        _this.friction = options.friction || 0.8;
        _this.time = options.time || 1000;
        _this.ease = utils.ease(options.ease, 'easeInOutSine');
        _this.x = x;
        _this.y = y;
        _this.topLeft = options.topLeft;
        _this.interrupt = utils.defaults(options.interrupt, true);
        _this.removeOnComplete = options.removeOnComplete;
        _this.removeOnInterrupt = options.removeOnInterrupt;
        if (options.forceStart) {
            _this.startEase();
        }
        return _this;
    }
function Snap(parent, x, y, options) {
        _classCallCheck(this, Snap);

        var _this = _possibleConstructorReturn(this, (Snap.__proto__ || Object.getPrototypeOf(Snap)).call(this, parent));

        options = options || {};
        _this.friction = options.friction || 0.8;
        _this.time = options.time || 1000;
        _this.ease = utils.ease(options.ease, 'easeInOutSine');
        _this.x = x;
        _this.y = y;
        _this.topLeft = options.topLeft;
        _this.interrupt = utils.defaults(options.interrupt, true);
        _this.removeOnComplete = options.removeOnComplete;
        _this.removeOnInterrupt = options.removeOnInterrupt;
        if (options.forceStart) {
            _this.startEase();
        }
        return _this;
    }
@private
@param {Viewport} parent
@param {number} x
@param {number} y
@param {object} [options]
@param {boolean} [options.topLeft] snap to the top-left of viewport instead of center
@param {number} [options.friction=0.8] friction/frame to apply if decelerate is active
@param {number} [options.time=1000]
@param {string|function} [options.ease=easeInOutSine] ease function or name (see http://easings.net/ for supported names)
@param {boolean} [options.interrupt=true] pause snapping with any user input on the viewport
@param {boolean} [options.removeOnComplete] removes this plugin after snapping is complete
@param {boolean} [options.removeOnInterrupt] removes this plugin if interrupted by any user input
@param {boolean} [options.forceStart] starts the snap immediately regardless of whether the viewport is at the desired location

@event snap-start(Viewport) emitted each time a snap animation starts
@event snap-restart(Viewport) emitted each time a snap resets because of a change in viewport size
@event snap-end(Viewport) emitted each time snap reaches its target
@event snap-remove(Viewport) emitted if snap plugin is removed