anchor.diff:      templateUrl: 'packages/hgprofiler/component/group/list.html',
       useShadowDom: false
   )
  -class GroupListComponent extends Object with CurrentPageMixin
  +class GroupListComponent extends Object
                       implements ShadowRootAware {
   
       List<Breadcrumb> crumbs = [
  
positive.code: 
      }
  
      /// Fetch a page of profiler sites. 
      void _fetchSites() {
          this.error = null;
          this.loading++;
          String pageUrl = '/api/site/';
          Map urlArgs = {
              'page': this.currentPage,
              'rpp': this._resultsPerPage,
          };
  
          this._api
              .get(pageUrl, urlArgs: urlArgs, needsAuth: true)
              .then((response) {
                  this.sites = new List<Site>();
                  response.data['sites'].forEach((site) {
                      this.sites.add(site);
                  });
              })
              .catchError((response) {
                  this.error = response.data['message'];
              })
              .whenComplete(() {this.loading--;});
      }
  
      /// Trigger add group when the user presses enter in the group input.
  
negative.code:     GroupListComponent(this._auth, this._api, this._element, 
                         this._router, this._rp, this._sse, this._ts) {
  
          this._ts.title = 'Groups';
  
          // Add event listeners...
          RouteHandle rh = this._rp.route.newHandle();
          this._queryWatcher = new QueryWatcher(
              rh,
              ['page', 'rpp'],
              this._fetchCurrentPage
          );
  
          List<StreamSubscription> listeners = [
              this._sse.onGroup.listen(this._groupListener),
          ];
  
          // ...and remove event listeners when we leave this route.
          UnsubOnRouteLeave(rh, [
              this._sse.onGroup.listen(this._groupListener),
          ]);
  
          this._fetchCurrentPage();
          this._fetchSites();
  