diff --git a/src/app/core/services/form-errors.service.ts b/src/app/core/services/form-errors.service.ts index a2f7997..621e70b 100644 --- a/src/app/core/services/form-errors.service.ts +++ b/src/app/core/services/form-errors.service.ts @@ -68,6 +68,13 @@ export class FormErrorsService { const info = errors['invalidUsername']; out.push({ key: 'invalidUsername', message: info.message ?? `${label} معتبر نیست.` }); } + if (errors['equalLength']) { + const info = errors['equalLength']; + out.push({ + key: 'equalLength', + message: `تعداد کاراکترهای ${label} باید برابر با ${info.length} باشد.`, + }); + } if (errors['invalidFiscalId']) { const info = errors['invalidFiscalId']; diff --git a/src/app/core/validators/equalLength.validator.ts b/src/app/core/validators/equalLength.validator.ts new file mode 100644 index 0000000..b22694b --- /dev/null +++ b/src/app/core/validators/equalLength.validator.ts @@ -0,0 +1,19 @@ +import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; + +export function equalLengthValidator(length: number): ValidatorFn { + return (control: AbstractControl): ValidationErrors | null => { + const v = control.value; + if (v === null || v === undefined || v === '') { + return null; + } + const normalized = String(v); + + return normalized.length !== length + ? { + equalLength: { + length, + }, + } + : null; + }; +} diff --git a/src/app/core/validators/index.ts b/src/app/core/validators/index.ts index a0cb048..dac72ae 100644 --- a/src/app/core/validators/index.ts +++ b/src/app/core/validators/index.ts @@ -1,3 +1,4 @@ +export * from './equalLength.validator'; export * from './fiscal-id.validator'; export * from './greater.validator'; export * from './iban.validator'; diff --git a/src/app/domains/consumer/modules/businessActivities/components/form.component.html b/src/app/domains/consumer/modules/businessActivities/components/form.component.html index 73dc803..084ae0c 100644 --- a/src/app/domains/consumer/modules/businessActivities/components/form.component.html +++ b/src/app/domains/consumer/modules/businessActivities/components/form.component.html @@ -4,11 +4,10 @@ [modal]="true" [style]="{ width: '500px' }" [closable]="true" - (onHide)="close()" -> + (onHide)="close()">