normalizeValue(value, flags = {}, emptyValue = this.emptyValue) {
    const underlyingValueShouldBeArray = Utils.getModelType(this.component) === 'array' || this.component.storeas === 'array' || Array.isArray(emptyValue);
    if (this.component.multiple) {
      if (Array.isArray(value)) {
        if (underlyingValueShouldBeArray) {
          if (value.length === 0 || !Array.isArray(value[0])) {
            return [value];
          }
        }
        if (value.length === 0) {
          return [emptyValue];
        }

        return super.normalizeValue(value, flags);
      } else {
        return super.normalizeValue(value == null ? [emptyValue] : [value], flags);
      }
    } else {
      if (Array.isArray(value) && !underlyingValueShouldBeArray) {
        if (Utils.getModelType(this.component) === 'any') {
          return super.normalizeValue(value, flags);
        }
        if (this.component.storeas === 'string') {
          return super.normalizeValue(value.join(this.delimiter || ''), flags);
        }
        return super.normalizeValue(value[0] || emptyValue, flags);
      } else {
        return super.normalizeValue(value, flags);
      }
    }
  }
Normalize values coming into updateValue.
@param {*} value - The value to normalize before setting.
@param {object} flags - Flags to use when normalizing the value.
@param {*} emptyValue - The empty value for the field.
@returns {*} - The normalized value.