text: import Ember from 'ember';
  import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component';
  
  export default Ember.Component.extend({
      intl: Ember.inject.service(),
  
      service         : null,
      allCertificates : null,
  
      lbConfig: Ember.computed.alias('service.lbConfig'),
  
      alternates      : null,
  
      init() {
          this._super(...arguments);
  
          var alternates = (this.get('lbConfig.certificateIds')||[]).map((id) => {
              return {value: id};
          });
  
          this.set('alternates', alternates);
      },
  
      didReceiveAttrs() {
          if (!this.get('expandFn')) {
              this.set('expandFn', function(item) {
                  item.toggleProperty('expanded');
              });
          }
      },
  
      actions: {
          addAlternate() {
              this.get('alternates').pushObject({value: null});
          },
  
          removeAlternate(alt) {
              this.get('alternates').removeObject(alt);
          },
      },
  
      alternateCertificates: function() {
          var def = this.get('lbConfig.defaultCertificateId');
          return this.get('allCertificates').slice().filter((obj) => {
              return Ember.get(obj, 'id') !== def;
          });
      }.property('allCertificates.@each.id','lbConfig.defaultCertificateId'),
  
      defaultDidChange: function() {
          var def = this.get('lbConfig.defaultCertificateId');
          this.get('alternates').forEach((obj) => {
              if ( Ember.get(obj, 'value') === def )
              {
                  Ember.set(obj,'value',null);
              }
          });
      }.observes('lbConfig.defaultCertificateId'),
  
      alternatesDidChange: function() {
          this.set('lbConfig.certificateIds', this.get('alternates').map((obj) => {
              return Ember.get(obj, 'value');
          }).filter((id) => { return !!id; }).uniq());
      }.observes('alternates.@each.value'),
  
      updateLabels(labels) {
          this.sendAction('setLabels', labels);
      },
  
      statusClass: null,
      status: function() {
          let k = STATUS.NONE;
          let count = this.get('lbConfig.certificateIds.length')||0;
          if ( !!this.get('lbConfig.defaultCertificateId') ) {
              count++;
          }
  
          if ( this.get('lbConfig.needsCertificate') && !count ) {
              k = STATUS.INCOMPLETE;
          }
  
          if ( count ) {
              k = STATUS.COUNTCONFIGURED;
          }
  
          this.set('statusClass', classForStatus(k));
          return this.get('intl').t(`${STATUS_INTL_KEY}.${k}`, {count: count});
      }.property('lbConfig.certificateIds.[]','lbConfig.defaultCertificateId'),
  });
  