Skip to content

Commit 185cfeb

Browse files
pedrodominguespanabye
authored andcommitted
feat(fields): adiciona po-helper com ou sem label
Adiciona o suporte ao uso de po-helper em fields mesmo quando não há label definido, abrangendo os seguintes componentes: - po-checkbox - po-checkbox-group - po-combo - po-datepicker - po-datepicker-range - po-decimal - po-email - po-input - po-login - po-lookup - po-multiselect - po-number - po-password - po-radio-group - po-select - po-switch - po-textarea - po-upload - po-url - po-rich-text Além disso: - no po-popover foi tratado todo o fluxo de navegação via teclado quando o componente estiver configurado para trabalhar com append-in-body. - o dynamic form recebeu a propriedade p-helper em todos os fields. FIXES DTHFUI-11977
1 parent f3bcb0e commit 185cfeb

File tree

135 files changed

+3974
-1345
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+3974
-1345
lines changed

projects/templates/src/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ export class PoPageDynamicEditComponent implements OnInit, OnDestroy {
544544
}
545545

546546
/**
547-
* Método que exibe `additionalHelpTooltip` ou executa a ação definida em `additionalHelp`.
547+
* Método que exibe `p-helper` ou executa a ação definida em `p-helper{eventOnClick}` ou em `p-additionalHelp`.
548548
* Para isso, será necessário configurar uma tecla de atalho utilizando o evento `keydown`.
549549
*
550550
* ```
@@ -557,7 +557,7 @@ export class PoPageDynamicEditComponent implements OnInit, OnDestroy {
557557
* property: 'name',
558558
* ...
559559
* help: 'Mensagem de ajuda.',
560-
* additionalHelpTooltip: 'Mensagem de ajuda complementar.',
560+
* helper: 'Mensagem de ajuda complementar com o componente po-helper implementado.',
561561
* keydown: this.onKeyDown.bind(this, 'name')
562562
* },
563563
* ]

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { ForceBooleanComponentEnum, ForceOptionComponentEnum } from '../../enums
2525

2626
import { Observable } from 'rxjs';
2727
import { PoDynamicField } from '../../po-dynamic-field.interface';
28+
import { PoHelperOptions } from '../../../po-helper';
2829

2930
/**
3031
* @usedBy PoDynamicFormComponent, PoAdvancedFilterComponent, PoPageDynamicSearchComponent
@@ -38,23 +39,25 @@ import { PoDynamicField } from '../../po-dynamic-field.interface';
3839
export interface PoDynamicFormField extends PoDynamicField {
3940
/**
4041
* Evento disparado ao clicar no ícone de ajuda adicional.
41-
* Este evento ativa automaticamente a exibição do ícone de ajuda adicional ao `p-help`.
42+
*
43+
* > Essa propriedade está depreciada e será removida na versão 23.x.x. Recomendamos utilizar a propriedade p-helper que oferece mais recursos e flexibilidade.
4244
*/
4345
additionalHelp?: Function;
4446

4547
/**
46-
* Exibe um ícone de ajuda adicional ao `p-help`, com o texto desta propriedade no tooltip.
47-
* Se o evento `p-additional-help` estiver definido, o tooltip não será exibido.
48+
* Exibe um ícone de ajuda adicional, com o texto desta propriedade sendo passado para o popover do componente `po-helper`.
4849
* **Como boa prática, indica-se utilizar um texto com até 140 caracteres.**
50+
*
51+
* > Essa propriedade está depreciada e será removida na versão 23.x.x. Recomendamos utilizar a propriedade p-helper que oferece mais recursos e flexibilidade.
4952
*/
5053
additionalHelpTooltip?: string;
5154

5255
/**
53-
* Define que o `listbox` e/ou tooltip (`p-additional-help-tooltip` e/ou `p-error-limit`) serão incluídos no body da
56+
* Define que o `listbox` e/ou popover (`p-helper` e/ou `p-error-limit`) serão incluídos no body da
5457
* página e não dentro do componente. Essa opção é necessária para cenários com containers que possuem scroll ou
5558
* overflow escondido, garantindo o posicionamento correto de ambos próximo ao elemento.
5659
*
57-
* > Quando utilizado com `p-additional-help-tooltip`, leitores de tela como o NVDA podem não ler o conteúdo do tooltip.
60+
* > Quando utilizado com `p-helper`, leitores de tela como o NVDA podem não ler o conteúdo do popover.
5861
*/
5962
appendBox?: boolean;
6063

@@ -200,6 +203,9 @@ export interface PoDynamicFormField extends PoDynamicField {
200203
/** Texto de ajuda. */
201204
help?: string;
202205

206+
/** Texto simples que será apresentado como auxílio ao campo ou objeto com as definições do po-helper. */
207+
helper?: string | PoHelperOptions;
208+
203209
/** Texto exibido quando o valor do componente for *true*. */
204210
booleanTrue?: string;
205211

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
[p-auto-focus]="field.focus"
3131
[p-format]="field.format"
3232
[p-help]="field.help"
33+
[p-helper]="field.helper"
3334
[p-iso-format]="field.isoFormat"
3435
[p-label]="field.label"
3536
[p-locale]="field.locale"
@@ -61,6 +62,7 @@
6162
[p-disabled]="isDisabled(field)"
6263
[p-auto-focus]="field.focus"
6364
[p-help]="field.help"
65+
[p-helper]="field.helper"
6466
[p-label]="field.label"
6567
[p-literals]="field.literals"
6668
[p-max-date]="field.maxValue"
@@ -94,6 +96,7 @@
9496
[p-error-async-properties]="field.errorAsyncProperties"
9597
[p-auto-focus]="field.focus"
9698
[p-help]="field.help"
99+
[p-helper]="field.helper"
97100
[p-label]="field.label"
98101
[p-mask-format-model]="field.maskFormatModel"
99102
[p-mask]="field.mask"
@@ -131,6 +134,7 @@
131134
[p-error-async-properties]="field.errorAsyncProperties"
132135
[p-auto-focus]="field.focus"
133136
[p-help]="field.help"
137+
[p-helper]="field.helper"
134138
[p-label]="field.label"
135139
[p-min]="field.minValue"
136140
[p-max]="field.maxValue"
@@ -171,6 +175,7 @@
171175
[p-icon]="field.icon"
172176
[p-auto-focus]="field.focus"
173177
[p-help]="field.help"
178+
[p-helper]="field.helper"
174179
[p-label]="field.label"
175180
[p-locale]="field.locale"
176181
[p-min]="field.minValue"
@@ -204,6 +209,7 @@
204209
[p-field-value]="field.fieldValue"
205210
[p-disabled]="isDisabled(field)"
206211
[p-help]="field.help"
212+
[p-helper]="field.helper"
207213
[p-label]="field.label"
208214
[p-optional]="field.optional"
209215
[p-options]="field.options"
@@ -232,6 +238,7 @@
232238
[p-auto-focus]="field.focus"
233239
[p-disabled]="isDisabled(field)"
234240
[p-help]="field.help"
241+
[p-helper]="field.helper"
235242
[p-label]="field.label"
236243
[p-optional]="field.optional"
237244
[p-options]="field.options"
@@ -259,6 +266,7 @@
259266
[p-field-error-message]="field.errorMessage"
260267
[p-format-model]="field.formatModel"
261268
[p-help]="field.help"
269+
[p-helper]="field.helper"
262270
[p-label]="field.label"
263271
[p-label-off]="field.booleanFalse"
264272
[p-label-on]="field.booleanTrue"
@@ -283,6 +291,7 @@
283291
[p-auto-focus]="field.focus"
284292
[p-disabled]="isDisabled(field)"
285293
[p-help]="field.help"
294+
[p-helper]="field.helper"
286295
[p-label]="field.label"
287296
[p-size]="field.size || componentsSize"
288297
(p-additional-help)="field.additionalHelp?.($event)"
@@ -308,6 +317,7 @@
308317
[p-filter-params]="field.params"
309318
[p-filter-service]="field.optionsService"
310319
[p-help]="field.help"
320+
[p-helper]="field.helper"
311321
[p-infinite-scroll]="field.infiniteScroll"
312322
[p-infinite-scroll-distance]="field.infiniteScrollDistance || 100"
313323
[p-label]="field.label"
@@ -356,6 +366,7 @@
356366
[p-auto-focus]="field.focus"
357367
[p-auto-height]="field.autoHeight"
358368
[p-help]="field.help"
369+
[p-helper]="field.helper"
359370
[p-field-format]="field.format"
360371
[p-infinite-scroll]="field.infiniteScroll"
361372
[p-label]="field.label"
@@ -390,6 +401,7 @@
390401
[p-auto-focus]="field.focus"
391402
[p-disabled]="isDisabled(field)"
392403
[p-help]="field.help"
404+
[p-helper]="field.helper"
393405
[p-label]="field.label"
394406
[p-optional]="field.optional"
395407
[p-options]="field.options"
@@ -416,6 +428,7 @@
416428
[p-auto-focus]="field.focus"
417429
[p-auto-height]="field.autoHeight"
418430
[p-help]="field.help"
431+
[p-helper]="field.helper"
419432
[p-label]="field.label"
420433
[p-literals]="field.literals"
421434
[p-optional]="field.optional"
@@ -453,6 +466,7 @@
453466
[p-disabled]="isDisabled(field)"
454467
[p-auto-focus]="field.focus"
455468
[p-help]="field.help"
469+
[p-helper]="field.helper"
456470
[p-label]="field.label"
457471
[p-maxlength]="field.maxLength"
458472
[p-minlength]="field.minLength"
@@ -487,6 +501,7 @@
487501
[p-error-async-properties]="field.errorAsyncProperties"
488502
[p-auto-focus]="field.focus"
489503
[p-help]="field.help"
504+
[p-helper]="field.helper"
490505
[p-hide-password-peek]="field.hidePasswordPeek"
491506
[p-icon]="field.icon"
492507
[p-label]="field.label"
@@ -524,6 +539,7 @@
524539
[p-form-field]="field.formField"
525540
[p-headers]="field.headers"
526541
[p-help]="field.help"
542+
[p-helper]="field.helper"
527543
[p-hide-restrictions-info]="field.hideRestrictionsInfo"
528544
[p-hide-select-button]="field.hideSelectButton"
529545
[p-hide-send-button]="field.hideSendButton"

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ export class PoDynamicFormComponent extends PoDynamicFormBaseComponent implement
127127
}
128128

129129
/**
130-
* Método que exibe `additionalHelpTooltip` ou executa a ação definida em `additionalHelp`.
130+
* Método que exibe `p-helper` ou executa a ação definida em `p-helper{eventOnClick}` ou em `p-additionalHelp`.
131131
* Para isso, será necessário configurar uma tecla de atalho utilizando o evento `keydown`.
132132
*
133133
* ```
@@ -140,7 +140,7 @@ export class PoDynamicFormComponent extends PoDynamicFormBaseComponent implement
140140
* property: 'name',
141141
* ...
142142
* help: 'Mensagem de ajuda.',
143-
* additionalHelpTooltip: 'Mensagem de ajuda complementar.',
143+
* helper: 'Mensagem de ajuda complementar com o componente po-helper implementado.',
144144
* keydown: this.onKeyDown.bind(this, 'name')
145145
* },
146146
* ]

projects/ui/src/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ export class PoCheckboxGroupBaseComponent implements ControlValueAccessor, Valid
5353
* @optional
5454
*
5555
* @description
56-
* Exibe um ícone de ajuda adicional ao `p-help`, com o texto desta propriedade no tooltip.
57-
* Se o evento `p-additional-help` estiver definido, o tooltip não será exibido.
56+
* Exibe um ícone de ajuda adicional, com o texto desta propriedade sendo passado para o popover do componente `po-helper`.
5857
* **Como boa prática, indica-se utilizar um texto com até 140 caracteres.**
5958
* > Requer um recuo mínimo de 8px se o componente estiver próximo à lateral da tela.
6059
*
@@ -67,11 +66,11 @@ export class PoCheckboxGroupBaseComponent implements ControlValueAccessor, Valid
6766
*
6867
* @description
6968
*
70-
* Define que o tooltip (`p-additional-help-tooltip` e/ou `p-error-limit`) será incluído no body da página e não
69+
* Define que o popover (`p-helper` e/ou `p-error-limit`) será incluído no body da página e não
7170
* dentro do componente. Essa opção pode ser necessária em cenários com containers que possuem scroll ou overflow
7271
* escondido, garantindo o posicionamento correto do tooltip próximo ao elemento.
7372
*
74-
* > Quando utilizado com `p-additional-help-tooltip`, leitores de tela como o NVDA podem não ler o conteúdo do tooltip.
73+
* > Quando utilizado com `p-helper`, leitores de tela como o NVDA podem não ler o conteúdo do popover.
7574
*
7675
* @default `false`
7776
*/
@@ -147,10 +146,10 @@ export class PoCheckboxGroupBaseComponent implements ControlValueAccessor, Valid
147146
*
148147
* @description
149148
*
150-
* Define as opções do componente de ajuda (po-helper) que será exibido ao lado do label.
149+
* Define as opções do componente de ajuda (po-helper) que será exibido ao lado do label quando a propriedade `p-label` for definida, ou, ao lado do componente na ausência da propriedade `p-label`.
150+
* > Para mais informações acesse: https://po-ui.io/documentation/po-helper.
151151
*
152-
* > Caso o `p-label` não esteja definido, o componente po-helper não será exibido.
153-
* Ao configurar esta propriedade, o antigo ícone de ajuda adicional (`p-additional-help-tooltip` e `p-additional-help`) será ignorado.
152+
* > Ao configurar esta propriedade, o antigo ícone de ajuda adicional (`p-additional-help-tooltip` e `p-additional-help`) será ignorado.
154153
*/
155154
poHelperComponent = input<PoHelperOptions | string>(undefined, { alias: 'p-helper' });
156155

@@ -192,7 +191,6 @@ export class PoCheckboxGroupBaseComponent implements ControlValueAccessor, Valid
192191
*
193192
* @description
194193
* Evento disparado ao clicar no ícone de ajuda adicional.
195-
* Este evento ativa automaticamente a exibição do ícone de ajuda adicional ao `p-help`.
196194
*
197195
* > Essa propriedade está **depreciada** e será removida na versão `23.x.x`. Recomendamos utilizar a propriedade `p-helper` que oferece mais recursos e flexibilidade.
198196
*/

projects/ui/src/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.html

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
@let poHelper = setHelper(label, additionalHelpTooltip);
12
<po-field-container
23
[p-disabled]="disabled"
34
[p-label]="label"
45
[p-optional]="optional"
56
[p-required]="required"
67
[p-show-required]="showRequired"
7-
[p-helper]="setHelper(this.label, this.additionalHelpTooltip).helperSettings"
8-
[p-show-helper]="displayAdditionalHelp"
8+
[p-helper]="label ? poHelper.helperSettings : undefined"
9+
[p-show-helper]="label ? displayAdditionalHelp : undefined"
910
[p-text-wrap]="labelTextWrap()"
1011
>
1112
<div class="po-field-container-content" [attr.name]="name">
@@ -33,18 +34,29 @@
3334
}
3435
</ul>
3536
</div>
36-
37+
</div>
38+
<div class="po-row po-footer-group">
3739
<po-field-container-bottom
3840
[p-additional-help-tooltip]="getAdditionalHelpTooltip()"
3941
[p-append-in-body]="appendBox"
4042
[p-help]="help"
4143
[p-disabled]="disabled"
4244
[p-error-limit]="errorLimit"
4345
[p-error-pattern]="getErrorPattern()"
44-
[p-hide-additional-help-by-label]="setHelper(this.label, this.additionalHelpTooltip).hideAdditionalHelp"
46+
[p-hide-additional-help-by-label]="poHelper.hideAdditionalHelp"
4547
[p-show-additional-help]="displayAdditionalHelp"
4648
[p-show-additional-help-icon]="showAdditionalHelpIcon()"
4749
(p-additional-help)="emitAdditionalHelp()"
4850
></po-field-container-bottom>
51+
@if ((!label && poHelperComponent()) || (!label && poHelper.hideAdditionalHelp)) {
52+
<po-helper
53+
#helperEl
54+
[p-size]="size"
55+
[p-helper]="poHelper.helperSettings"
56+
[p-disabled]="disabled"
57+
[p-append-in-body]="appendBox"
58+
>
59+
</po-helper>
60+
}
4961
</div>
5062
</po-field-container>

0 commit comments

Comments
 (0)