text: import Mixin from '@ember/object/mixin';
  import {A as emberA} from '@ember/array';
  import {isEmpty} from '@ember/utils';
  import {observer} from '@ember/object';
  import {run} from '@ember/runloop';
  
  export default Mixin.create({
  
      errors: null,
      property: '',
      hasValidated: emberA(),
  
      hasError: false,
  
      setHasError() {
          let property = this.get('property');
          let errors = this.get('errors');
          let hasValidated = this.get('hasValidated');
  
          // if we aren't looking at a specific property we always want an error class
          if (!property && errors && !errors.get('isEmpty')) {
              this.set('hasError', true);
              return;
          }
  
          // If we haven't yet validated this field, there is no validation class needed
          if (!hasValidated || !hasValidated.includes(property)) {
              this.set('hasError', false);
              return;
          }
  
          if (errors && !isEmpty(errors.errorsFor(property))) {
              this.set('hasError', true);
              return;
          }
  
          this.set('hasError', false);
      },
  
      // eslint-disable-next-line ghost/ember/no-observers
      hasErrorObserver: observer('errors.[]', 'property', 'hasValidated.[]', function () {
          run.once(this, 'setHasError');
          // this.setHasError();
      }).on('init')
  
  });
  