anchor.diff:  
     List _selectedIndices(items) => enumerate(items).where((e) => e.value[SELECTED]).map((e) => e.index).toList();
   
  -  adjustIndexes(items) {
  +  adjustIndexes(maxIndex) {
       if (_firstIndex < 0) {
         _firstIndex = 0;
  -    }
  -    if (_lastIndex > items.length) _lastIndex = items.length;
  +      if (_lastIndex < _firstIndex + 2*_shownItemCount) _lastIndex = min(_firstIndex + 2*_shownItemCount, maxIndex);
  +    }
  +    if (_lastIndex > maxIndex) {
  +      _lastIndex = maxIndex;
  +      if (_firstIndex > _lastIndex - 2*_shownItemCount) _firstIndex = max(_lastIndex - 2*_shownItemCount, 0);
  +    }
  +    if ((_lastIndex - _firstIndex < 2*_shownItemCount) && (_lastIndex - _firstIndex < maxIndex)) {
  +      _firstIndex = _lastIndex - 2*_shownItemCount;
  +      adjustIndexes(maxIndex);
  +    }
  +
     }
   
     _moveScrollDivToFirstShown() {
  
positive.code:   get lastIndex => _lastIndex;
    set lastIndex(val) {
      _lastIndex = val;
      adjustIndexes(items);
    }
  
    get firstIndex => _firstIndex;
    set firstIndex(val) {
      _firstIndex = val;
      adjustIndexes(items);
    }
  
    DivElement _scrollListDiv;
  
negative.code:       div({'className' : _getArrowClass(false), 'onMouseDown' : (ev) => showLast()},'>>');
  
    render() {
      print("First: $firstIndex, Last: $lastIndex");
      return div({'className': selectorClass}, [
          span({"className": "round-selector-text"}, selectorText),
          showFirstLast ? _renderFastLeftArrow() : div({}),
  