code: function DualViewer(el, opts) {
        classCallCheck(this, DualViewer);
  
        var _this = possibleConstructorReturn(this, _TinyEmitter.call(this));
  
        _this.element = el;
  
        _this.options = Object.assign({}, DualViewer.Defaults, opts);
  
        _this._isVertical = _this.options.isVertical;
  
        /** @private {Element} */
        _this._scrubberEl = null;
  
        /** @private {Element} */
        _this._overlayEl = null;
  
        /** @private {Element} */
        _this._underlayEl = null;
  
        /** @private {Element} */
        _this._overlayObjectEl = null;
  
        /**
         * Dragger component
         * @type {OdoDraggable}
         * @private
         */
        _this._draggable = null;
  
        /**
         * Boundary for the scrubber.
         * @type {Rect}
         * @private
         */
        _this._scrubberLimits = null;
  
        /**
         * The axis to drag depends on the carousel direction.
         * @type {OdoPointer.Axis}
         * @private
         */
        _this._dragAxis = _this._isVertical ? 'y' : 'x';
  
        /**
         * Height or width.
         * @type {string}
         * @private
         */
        _this._dimensionAttr = _this._isVertical ? 'height' : 'width';
  
        /**
         * Previous percentage revealed. Needed for window resizes to reset back to
         * correct position.
         * @type {number}
         * @private
         */
        _this._previousPercent = _this.options.startPosition;
  
        /**
         * Current position of the dual viewer.
         * @type {number}
         * @private
         */
        _this._position = DualViewer.Position.CENTER;
  
        /** @private {boolean} */
        _this._isResting = true;
  
        _this.decorate();
        return _this;
      }
docs: Component which has a draggable element in the middle which reveals one or
  the other sides as the user drags.
  
  @constructor