anchor.diff:      rate(value + sign);
     }
   
  +  @HostListener('change', const ['\$event.target.value'])
     @HostListener('input', const ['\$event'])
     bool onInput($event) => true;
   }
positive.code:   }
  
    /// change the value of the model
    rate(num value) {
      if (!readonly && value >= 0 && value <= range.length) {
        writeValue(value);
      }
    }
  
    /// fired when a mouse enters to the icon, and it change the [value] of the rating
    enter(num _value) {
      if (!readonly) {
        value = _value;
        _onHoverCtrl.add(_value);
  
negative.code: @Component (selector: "bs-rating",
      templateUrl: 'rating.html',
      directives: const [coreDirectives, formDirectives],
      providers: const [RATING_VALUE_ACCESSOR])
  class BsRatingComponent extends NumberValueAccessor implements OnInit {
    final HtmlElement element;
    BsRatingComponent(this.element) : super(null);
  
    /// maximum number of icons
    @Input() num max;
  