anchor.diff:  import 'dart:html';
   
   import 'package:angular/angular.dart';
  +import 'package:angular/meta.dart';
  +import 'package:meta/meta.dart';
   import 'package:angular_components/utils/browser/dom_service/dom_service.dart';
   
   /// [KeyboardOnlyFocusIndicatorDirective] is a decorator that hides the outline
  
positive.code:     }
    }
  }
  
negative.code: class KeyboardOnlyFocusIndicatorDirective {
    final HtmlElement _element;
    final DomService _domService;
    _InteractionType _lastInteraction = _InteractionType.none;
  
    KeyboardOnlyFocusIndicatorDirective(this._element, this._domService);
  
    @visibleForTemplate
    @HostListener('keydown')
    void keydown(KeyboardEvent e) {
      _lastInteraction = _InteractionType.keyboard;
      resetOutline();
    }
  
    @visibleForTemplate
    @HostListener('blur')
    void resetOutline() {
      if (_element.style.outline != '') {
        _domService.scheduleWrite(() {
          _element.style.outline = '';
        });
      }
    }
  
    @visibleForTemplate
    @HostListener('mousedown')
    @HostListener('click')
    void onMouseInteraction() {
      _lastInteraction = _InteractionType.mouse;
      hideOutline();
    }
  
    @protected
    void hideOutline() {
      if (_element.style.outline != 'none') {
        _domService.scheduleWrite(() {
          _element.style.outline = 'none';
        });
      }
    }
  
    @visibleForTemplate
    @HostListener('focus')
    void onFocus(Event event) {
      // Use the focus event to style the element so that when the element is
      // styled programmatically it will obey the last known state of the
      // directive.
      if (_lastInteraction == _InteractionType.mouse) {
        hideOutline();
      } else {
        resetOutline();
      }
    }
  
    /// Programmatically set focus on the underlying element, managing outline
  