anchor.diff:  
     /// Event fired when the panel is either collapsed or expanded.
     @Output('expandedChange')
  -  Stream<bool> get isExpandedChange => _isExpandedChange.stream;
  -  final _isExpandedChange = StreamController<bool>.broadcast(sync: true);
  +  Stream<bool> get isExpandedChange => _isExpanded.stream;
   
     /// Event fired when the panel is collapsed or expanded by the user.
     @Output('expandedChangeByUser')
  
positive.code:   @Input()
    bool closeOnSave = true;
  
    bool _isExpanded = false;
    bool get isExpanded => _isExpanded;
  
    /// 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) {
        expand(byUserAction: false);
      } else {
  
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) {
  