anchor.diff:    @Input()
     bool closeOnSave = true;
   
  -  bool _isExpanded = false;
  -  bool get isExpanded => _isExpanded;
  +  ObservableReference<bool> _isExpanded = ObservableReference(false);
  +  bool get isExpanded => _isExpanded.value;
   
     /// If true, the panel is expanded by default, if false, the panel is closed.
     @Input('expanded')
     set isExpanded(bool value) {
  -    if (value == _isExpanded) return;
  +    if (value == isExpanded) return;
       if (value) {
         expand(byUserAction: false);
       } else {
  
positive.code:     _changeDetector.markForCheck();
      final stateWasInitialized = initialized;
      actionCtrl.execute(() {
        _isExpanded = false;
        _isExpandedChange.add(false);
        _isExpandedChangeByUserAction.add(false);
        _changeDetector.markForCheck();
        if (stateWasInitialized) _transitionHeightChange(false);
  
negative.code:   /// the user has cancelled the operation.
    Future<bool> changeState(
        bool expand, bool byUserAction, StreamController stream) {
      if (isExpanded == expand) {
        return Future.value(true);
      }
      var actionCtrl = AsyncActionController<bool>();
      stream.add(actionCtrl.action);
      var stateWasInitialized = initialized;
      actionCtrl.execute(() {
        _isExpanded.value = expand;
        if (byUserAction) _isExpandedChangeByUserAction.add(expand);
        _changeDetector.markForCheck();
        if (expand && autoFocusChild != null) {
  