updateSelectedTab() {
    let selectedTab = this.childComponents.findBy('isSelected');
    let previousSelectedTab = this._selectedTab;

    if (selectedTab === previousSelectedTab) {
      return;
    }

    this.set(
      'movingRight',
      !selectedTab ||
        !previousSelectedTab ||
        previousSelectedTab.get('left') < selectedTab.get('left')
    );
    this.set('_selectedTab', selectedTab);

    scheduleOnce('afterRender', this, this.fixOffsetIfNeeded);
  }
Updates the currently selected tab only once all the <paper-tab> has rendered.

If we were to use a computed property the observer would get triggered once per
nested <paper-tab> because we pass the 'selected' property to them that will
invalidate their 'isSelected' property.