anchor.diff:      scheduleMicrotask(() {
         _changeDetector.markForCheck(); // call early so we can return early.
         // Look for the previously active tab.
  -      if (previousActiveTab != null) {
  -        _activeTabIndex = _tabs.indexOf(previousActiveTab);
  +      if (_previousActiveTab != null) {
  +        _activeTabIndex = _tabs.indexOf(_previousActiveTab);
  +        _previousActiveTab = null;
           if (_activeTabIndex == -1) {
             // Couldn't find previous tab. Just activate the first tab.
             _activeTabIndex = 0;
  
positive.code:   // TODO(google): Change to `Visibility.local` to reduce code size.
    visibility: Visibility.all,
  )
  class MaterialTabPanelComponent {
    final ChangeDetectorRef _changeDetector;
  
    /// Stream of [TabChangeEvent] instances, published before the tab has
    /// changed.
  
negative.code: 
    MaterialTabPanelComponent(this._changeDetector);
  
    @override
    void ngAfterContentInit() {
      _initialzed = true;
      _initTabs();
    }
  
    @ContentChildren(Tab)
    set tabs(List<Tab> tabs) {
      _previousActiveTab = (_tabs != null) ? _activeTab : null;
      _tabs = tabs;
      // TODO(google): Remove if setting of content children occur after
      // child is initialized.
      if (_initialzed) _initTabs();
    }
  
    void _initTabs() {
      _tabLabels = _tabs.map((t) => t.label).toList();
      _tabIds = _tabs.map((t) => t.tabId).toList();
  
  