whole_func_string: function _getVisibleItem(first) {
          var result = {};
          var diff;
          var prevDiff = 10000000;
          var diffDelta = (first && this.options.alignment) ? -this._contextSizeCache[this._direction] : ((!first && !this.options.alignment) ? this._contextSizeCache[this._direction] : 0);
          var scrollOffset = this._scroll.unnormalizedScrollOffset;
          var node = this._nodes.getStartEnumNode(true);
          while (node) {
              if (!node._invalidated || (node.scrollLength === undefined)) {
                  break;
              }
              if (node._viewSequence) {
                  diff = Math.abs(diffDelta - (scrollOffset + (!first ? node.scrollLength : 0)));
                  if (diff >= prevDiff) {
                      break;
                  }
                  prevDiff = diff;
                  result.scrollOffset = scrollOffset;
                  result._node = node;
                  scrollOffset += node.scrollLength;
              }
              node = node._next;
          }
          scrollOffset = this._scroll.unnormalizedScrollOffset;
          node = this._nodes.getStartEnumNode(false);
          while (node) {
              if (!node._invalidated || (node.scrollLength === undefined)) {
                  break;
              }
              if (node._viewSequence) {
                  scrollOffset -= node.scrollLength;
                  diff = Math.abs(diffDelta - (scrollOffset + (!first ? node.scrollLength : 0)));
                  if (diff >= prevDiff) {
                      break;
                  }
                  prevDiff = diff;
                  result.scrollOffset = scrollOffset;
                  result._node = node;
              }
              node = node._prev;
          }
          if (!result._node) {
              return undefined;
          }
          result.scrollLength = result._node.scrollLength;
          if (this.options.alignment) {
              result.visiblePerc = (Math.min(result.scrollOffset + result.scrollLength, 0) - Math.max(result.scrollOffset, -this._contextSizeCache[this._direction])) / result.scrollLength;
          }
          else {
              result.visiblePerc = (Math.min(result.scrollOffset + result.scrollLength, this._contextSizeCache[this._direction]) - Math.max(result.scrollOffset, 0)) / result.scrollLength;
          }
          result.index = result._node._viewSequence.getIndex();
          result.viewSequence = result._node._viewSequence;
          result.renderNode = result._node.renderNode;
          return result;
      }
func_code_string: function _getVisibleItem(first) {
          var result = {};
          var diff;
          var prevDiff = 10000000;
          var diffDelta = (first && this.options.alignment) ? -this._contextSizeCache[this._direction] : ((!first && !this.options.alignment) ? this._contextSizeCache[this._direction] : 0);
          var scrollOffset = this._scroll.unnormalizedScrollOffset;
          var node = this._nodes.getStartEnumNode(true);
          while (node) {
              if (!node._invalidated || (node.scrollLength === undefined)) {
                  break;
              }
              if (node._viewSequence) {
                  diff = Math.abs(diffDelta - (scrollOffset + (!first ? node.scrollLength : 0)));
                  if (diff >= prevDiff) {
                      break;
                  }
                  prevDiff = diff;
                  result.scrollOffset = scrollOffset;
                  result._node = node;
                  scrollOffset += node.scrollLength;
              }
              node = node._next;
          }
          scrollOffset = this._scroll.unnormalizedScrollOffset;
          node = this._nodes.getStartEnumNode(false);
          while (node) {
              if (!node._invalidated || (node.scrollLength === undefined)) {
                  break;
              }
              if (node._viewSequence) {
                  scrollOffset -= node.scrollLength;
                  diff = Math.abs(diffDelta - (scrollOffset + (!first ? node.scrollLength : 0)));
                  if (diff >= prevDiff) {
                      break;
                  }
                  prevDiff = diff;
                  result.scrollOffset = scrollOffset;
                  result._node = node;
              }
              node = node._prev;
          }
          if (!result._node) {
              return undefined;
          }
          result.scrollLength = result._node.scrollLength;
          if (this.options.alignment) {
              result.visiblePerc = (Math.min(result.scrollOffset + result.scrollLength, 0) - Math.max(result.scrollOffset, -this._contextSizeCache[this._direction])) / result.scrollLength;
          }
          else {
              result.visiblePerc = (Math.min(result.scrollOffset + result.scrollLength, this._contextSizeCache[this._direction]) - Math.max(result.scrollOffset, 0)) / result.scrollLength;
          }
          result.index = result._node._viewSequence.getIndex();
          result.viewSequence = result._node._viewSequence;
          result.renderNode = result._node.renderNode;
          return result;
      }
func_documentation_string: Get the first or last visible item in the view.