Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -20,4 +20,5 @@ export const ENUMS_API_ROUTES = {
|
||||
goodPricingModel: `${baseUrl}/good_pricing_model`,
|
||||
consumerRole: `${baseUrl}/consumer_role`,
|
||||
fiscalResponseStatus: `${baseUrl}/tsp_provider_response_status`,
|
||||
invoice_template_type: `${baseUrl}/invoice_templates`,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import { Component, Input } from '@angular/core';
|
||||
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
||||
|
||||
@Component({
|
||||
selector: 'abstract-field',
|
||||
template: '',
|
||||
imports: [ReactiveFormsModule],
|
||||
})
|
||||
export abstract class AbstractFieldComponent<T = string> {
|
||||
@Input({ required: true }) control!: FormControl<T>;
|
||||
@Input({ required: true }) name!: string;
|
||||
@Input({ required: true }) label!: string;
|
||||
}
|
||||
@@ -10,6 +10,7 @@ export * from './email.component';
|
||||
export * from './first_name.component';
|
||||
export * from './fiscal_id.component';
|
||||
export * from './guild_id.component';
|
||||
export * from './invoice_templates.component';
|
||||
export * from './last_name.component';
|
||||
export * from './legal_name.component';
|
||||
export * from './license_starts_at.component';
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import { EnumSelectComponent } from '@/shared/apiEnum/select.component';
|
||||
import { Component, Input } from '@angular/core';
|
||||
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
||||
|
||||
@Component({
|
||||
selector: 'field-invoice-templates',
|
||||
template: `<app-enum-select
|
||||
type="invoice_template_type"
|
||||
[customLabel]="label"
|
||||
[control]="control"
|
||||
[name]="name"
|
||||
/>`,
|
||||
imports: [ReactiveFormsModule, EnumSelectComponent],
|
||||
})
|
||||
export class FieldInvoiceTemplatesComponent {
|
||||
@Input({ required: true }) control = new FormControl<string>('');
|
||||
@Input() name = 'invoice-template';
|
||||
@Input() label = 'قالب فاکتور';
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
import { fiscalCodeValidator, mobileValidator, postalCodeValidator } from '@/core/validators';
|
||||
import {
|
||||
fiscalCodeValidator,
|
||||
mobileValidator,
|
||||
password,
|
||||
postalCodeValidator,
|
||||
usernameValidator,
|
||||
} from '@/core/validators';
|
||||
import { nationalIdValidator } from '@/core/validators/national-id.validator';
|
||||
import { ValidatorFn, Validators } from '@angular/forms';
|
||||
|
||||
@@ -7,6 +13,10 @@ type ControlConfig = [any, ValidatorFn[]];
|
||||
|
||||
export const fieldControl = {
|
||||
name: (value = '', isRequired = true): ControlConfig => [value, isRequired ? required() : []],
|
||||
invoice_template: (value = '', isRequired = true): ControlConfig => [
|
||||
value,
|
||||
isRequired ? required() : [],
|
||||
],
|
||||
code: (value = '', isRequired = true): ControlConfig => [value, isRequired ? required() : []],
|
||||
description: (value = '', isRequired = false): ControlConfig => [
|
||||
value,
|
||||
@@ -61,11 +71,14 @@ export const fieldControl = {
|
||||
value,
|
||||
isRequired ? [Validators.required, nationalIdValidator()] : [nationalIdValidator()],
|
||||
],
|
||||
postal_code: (value = '', isRequired = true): ControlConfig => [
|
||||
postal_code: (value = '', isRequired = false): ControlConfig => [
|
||||
value,
|
||||
isRequired ? [Validators.required, postalCodeValidator()] : [postalCodeValidator()],
|
||||
],
|
||||
username: (value = '', isRequired = true): ControlConfig => [value, isRequired ? required() : []],
|
||||
username: (value = '', isRequired = true): ControlConfig => [
|
||||
value,
|
||||
isRequired ? [...required(), usernameValidator()] : [usernameValidator()],
|
||||
],
|
||||
economic_code: (value = '', isRequired = true): ControlConfig => [
|
||||
value,
|
||||
isRequired ? required() : [],
|
||||
@@ -174,4 +187,13 @@ export const fieldControl = {
|
||||
value,
|
||||
isRequired ? required() : [],
|
||||
],
|
||||
|
||||
password: (value = '', isRequired = true): ControlConfig => [
|
||||
value,
|
||||
isRequired ? [...required(), password()] : [password()],
|
||||
],
|
||||
confirmPassword: (value = '', isRequired = true): ControlConfig => [
|
||||
value,
|
||||
isRequired ? required() : [],
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user