Skip to content

Commit 1467cae

Browse files
alinelariguetjhosefmarks
authored andcommitted
feat(dynamic-form): implementa a propriedade errorMessage
Criada nova propriedade `errorMessage` na interface `PoDynamicFormField` que permite customizar as mensagens exibidas na identificação de campos inválidos. Fixes DTHFUI-2598
1 parent f54cdc1 commit 1467cae

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class PoDynamicFormBaseComponent {
3939
* - Caso o *type* informado seja *boolean* o componente criado será o `po-switch`.
4040
* - Caso o *type* informado seja *currency* e não seja informado um *mask* ou *pattern* o componente criado será o `po-decimal`,
4141
* caso seja informado um *mask* ou *pattern* o componente criado será o `po-input`.
42-
* - Caso o *type* informado seja *number* e não seja informado um *mask* ou *pattern* o componente criado será o `po-decimal`, caso seja
42+
* - Caso o *type* informado seja *number* e não seja informado um *mask* ou *pattern* o componente criado será o `po-number`, caso seja
4343
* informado um *mask* ou *pattern* o componente criado será o `po-input`.
4444
* - Caso a lista possua a propriedade `options` e a mesma possua até 3 itens o componente criado será o `po-radio-group`
4545
* ou `po-checkbox-group` se informar a propriedade `optionsMulti`.

projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,4 +144,16 @@ export interface PoDynamicFormField extends PoDynamicField {
144144
*/
145145
params?: any;
146146

147+
/**
148+
* Mensagem que será apresentada quando o campo ficar inválido.
149+
*
150+
* O campo fica inválido quando as seguintes propriedades não forem respeitadas:
151+
* - pattern;
152+
* - minValue;
153+
* - maxValue;
154+
*
155+
* > Esta mensagem não é apresentada quando o campo estiver vazio, mesmo que ele seja requerido.
156+
*/
157+
errorMessage?: string;
158+
147159
}

projects/ui/src/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
[ngClass]="field.componentClass"
1111
p-clean
1212
[p-disabled]="isDisabled(field)"
13+
[p-error-pattern]="field.errorMessage"
1314
[p-focus]="field.focus"
1415
[p-help]="field.help"
1516
[p-label]="field.label"
@@ -26,6 +27,7 @@
2627
[ngClass]="field.componentClass"
2728
p-clean
2829
[p-disabled]="isDisabled(field)"
30+
[p-error-pattern]="field.errorMessage"
2931
[p-focus]="field.focus"
3032
[p-help]="field.help"
3133
[p-label]="field.label"
@@ -44,6 +46,7 @@
4446
[ngClass]="field.componentClass"
4547
p-clean
4648
[p-disabled]="isDisabled(field)"
49+
[p-error-pattern]="field.errorMessage"
4750
[p-focus]="field.focus"
4851
[p-help]="field.help"
4952
[p-label]="field.label"
@@ -196,12 +199,14 @@
196199
[ngClass]="field.componentClass"
197200
p-clean
198201
[p-disabled]="isDisabled(field)"
202+
[p-error-pattern]="field.errorMessage"
199203
[p-focus]="field.focus"
200204
[p-help]="field.help"
201205
[p-label]="field.label"
202206
[p-maxlength]="field.maxLength"
203207
[p-minlength]="field.minLength"
204208
[p-optional]="field.optional"
209+
[p-pattern]="field.pattern"
205210
[p-required]="field.required"
206211
(p-change)="onChangeField(field)">
207212
</po-password>

projects/ui/src/lib/components/po-dynamic/po-dynamic-form/samples/sample-po-dynamic-form-register/sample-po-dynamic-form-register.component.ts

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,35 @@ export class SamplePoDynamicFormRegisterComponent implements OnInit {
1414

1515
fields: Array<PoDynamicFormField> = [
1616
{ property: 'name', divider: 'PERSONAL DATA', required: true, minLength: 4, maxLength: 50, gridColumns: 6, gridSmColumns: 12 },
17-
{ property: 'birthday', type: 'date', gridColumns: 6, gridSmColumns: 12 },
17+
{ property: 'birthday',
18+
label: 'Date of birth',
19+
type: 'date',
20+
gridColumns: 6,
21+
gridSmColumns: 12,
22+
maxValue: '2010-01-01',
23+
errorMessage: 'The date must be before the year 2010.'
24+
},
1825
{ property: 'cpf', label: 'CPF', mask: '999.999.999-99', gridColumns: 6, gridSmColumns: 12, visible: false },
1926
{ property: 'cnpj', label: 'CNPJ', mask: '99.999.999/9999-99', gridColumns: 6, gridSmColumns: 12, visible: false },
2027
{ property: 'genre', gridColumns: 6, gridSmColumns: 12, options: ['Male', 'Female', 'Other'] },
2128
{ property: 'shortDescription', label: 'Short Description', gridColumns: 12, gridSmColumns: 12, rows: 5 },
22-
{ property: 'secretKey', label: 'Secret Key', gridColumns: 6, secret: true },
29+
{ property: 'secretKey',
30+
label: 'Secret Key',
31+
gridColumns: 6,
32+
secret: true,
33+
pattern: '[a-zA]{5}[Z0-9]{3}',
34+
errorMessage: 'At least 5 alphabetic and 3 numeric characters are required.'
35+
},
2336
{ property: 'email', divider: 'CONTACTS', gridColumns: 6 },
2437
{ property: 'phone', mask: '(99) 99999-9999', gridColumns: 6 },
2538
{ property: 'address', gridColumns: 6 },
26-
{ property: 'addressNumber', label: 'Address number', type: 'number', gridColumns: 6 },
39+
{ property: 'addressNumber',
40+
label: 'Address number',
41+
type: 'number',
42+
gridColumns: 6,
43+
maxValue: 10000,
44+
errorMessage: 'Invalid number.'
45+
},
2746
{ property: 'state', gridColumns: 6, options: [
2847
{ label: 'Santa Catarina', value: 1 },
2948
{ label: 'São Paulo', value: 2 },

0 commit comments

Comments
 (0)