anchor.diff:      _setStyle(t.style, 'transition',
           'transform ${TRANSITION_DURATION.inMilliseconds}ms ease-in  0s, '
           'opacity   ${TRANSITION_DURATION.inMilliseconds}ms ease-out 0s');
  -    _startTransitionEndTimer();
  +
  +    _startTransitionEndTimer(delay, () {
  +      t.style.display = 'none';
  +    });
     }
   
  -  void _unfoldTarget() {
  +  void _unfoldTarget([Duration delay = TRANSITION_DURATION]) {
       final t = _targetElement;
       if (t == null) {
         window.console.warn('Target not found: $target');
  
positive.code:     }
    }
  
    void _foldTarget() {
      final t = _targetElement;
      if (t == null) {
        window.console.warn('Target not found: $target');
  
negative.code: 
      _restoreStyle(t.style, 'display');
  
      new Timer(DISPLAY_DELAY, () {
        _restoreStyle(t.style, 'transform', 'scale(1)');
        _restoreStyle(t.style, 'opacity', '1');
  
        _startTransitionEndTimer(delay, () {
          _restoreStyles(t.style);
        });
      });
    }
  
    void _startTransitionEndTimer(Duration delay, callback()) {
      if (_transitionEndTimer != null) {
        _transitionEndTimer.cancel();
      }
      _transitionEndTimer = new Timer(delay, () {
        callback();
        _transitionEndTimer = null;
      });
    }
  
    _setStyle(CssStyleDeclaration style, String propName, String value) =>
  