public function process(BaseField $field, mixed $rules): ?array
{
if (!is_iterable($rules)) {
return null;
}
if ($field instanceof DateTimeInputField) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Email) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processLengthToMinMaxLength($rule, $enrichment);
$this->processRegexToPattern($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof File) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Number) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processAbstractNumberToMinMax($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Password) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processLengthToMinMaxLength($rule, $enrichment);
$this->processRegexToPattern($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Range) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processAbstractNumberToMinMax($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Select) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Telephone) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processLengthToMinMaxLength($rule, $enrichment);
$this->processRegexToPattern($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Text) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processLengthToMinMaxLength($rule, $enrichment);
$this->processRegexToPattern($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Textarea) {
$enrichment = [];
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processLengthToMinMaxLength($rule, $enrichment);
}
return $enrichment;
}
if ($field instanceof Url) {
$enrichment = [];
$processedUrl = false;
foreach ($rules as $rule) {
if ($this->hasWhen($rule)) {
continue;
}
$this->processRequiredToRequired($rule, $enrichment);
$this->processLengthToMinMaxLength($rule, $enrichment);
$processedUrl = $processedUrl || $this->processUrlToPattern($rule, $enrichment);
if (!$processedUrl) {
$this->processRegexToPattern($rule, $enrichment);
}
}
return $enrichment;
}
return null;
}
Signup or Login in order to comment.