checkComponentValidity(data = null, dirty = false, row = null, flags = {}, allErrors = []) {
    data = data || this.rootValue;
    row = row || this.data;
    flags.dirty = dirty || false;
    if (flags.async) {
      return this.validateComponent(data, row, flags).then((errors) => {
        allErrors.push(...errors);
        if (this.parent && this.parent.childErrors) {
          if (errors.length) {
            this.parent.childErrors.push(...errors);
          }
          else {
            _.remove(this.parent.childErrors, (err) => (err?.component?.key || err?.context?.key) === this.component.key);
          }
        }
        this.showValidationErrors(errors, data, row, flags);
        return errors.length === 0;
      });
    }
    else {
      const errors = this.validateComponent(data, row, flags);
      this.showValidationErrors(errors, data, row, flags);
      allErrors.push(...errors);
      if (this.parent && this.parent.childErrors) {
        if (errors.length) {
          this.parent.childErrors.push(...errors);
        }
        else {
          _.remove(this.parent.childErrors, (err) => (err?.component?.key || err?.context?.key) === this.component.key);
        }
      }
      return errors.length === 0;
    }
  }
Checks the validity of this component and sets the error message if it is invalid.
@param {*} data - The data to check if the component is valid.
@param {boolean} dirty - If the component is dirty.
@param {*} row - The contextual row data for this component.
@param {*} flags - The flags to use when checking the validity.
@param {Array<any>} allErrors - An array of all errors that have occured so that it can be appended when another one occurs here.
@returns {boolean} - TRUE if the component is valid.