_initViewport()

in js/index.js [78:102]


  _initViewport() {
    const viewport = this._props.viewport;

    if (_.isString(viewport)) {
      return new ElementViewport(this.$(viewport));
    } else if (viewport instanceof $) {
      if (viewport.get(0) === window) {
        return new WindowViewport();
      }
      return new ElementViewport(viewport);
    } else if (viewport instanceof HTMLElement) {
      return new ElementViewport(viewport);
    } else if (viewport === window) {
      return new WindowViewport();
    }

    let $el = this.$el;
    while ($el.length > 0 && !$el.is(document)) {
      if (_.contains(['auto', 'scroll'], $el.css('overflowY'))) {
        return new ElementViewport($el);
      }
      $el = $el.parent();
    }
    return new WindowViewport();
  }