Skip to content

Commit 4b87e04

Browse files
fix(header): implementa correção para posicionamento do popover
Implementa correção para posicionamento do popover no header; Nova propriedade 'width' na interface PoHeaderActionPopoverAction; Fixes: DTHFUI-12554
1 parent 736f78f commit 4b87e04

File tree

9 files changed

+336
-13
lines changed

9 files changed

+336
-13
lines changed

projects/ui/src/lib/components/po-header/interfaces/po-header-action-tool.interface.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,21 @@ export interface PoHeaderActionTool {
111111
*/
112112
export interface PoHeaderActionPopoverAction {
113113
/**
114-
*
115114
* @description
116115
*
117-
* Template que será renderizado dentro do popover
116+
* Template que será renderizado dentro do popover.
118117
*/
119118
content: TemplateRef<any>;
119+
120+
/**
121+
* @description
122+
*
123+
* Largura, em pixels, do template renderizado dentro do popover.
124+
*
125+
* Valores permitidos: de 240 a 800.
126+
*
127+
*/
128+
width?: number;
120129
}
121130

122131
/**

projects/ui/src/lib/components/po-header/po-header-customer/po-header-customer.component.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,14 @@
4646
}
4747

4848
@if (headerUser?.popover) {
49-
<po-popover #poPopoverAction [p-target]="targetRef" p-position="bottom-left" [p-hide-arrow]="true">
49+
<po-popover
50+
#poPopoverAction
51+
p-position="bottom-right"
52+
[p-width]="headerUser.popover.width"
53+
[p-target]="targetRef"
54+
[p-hide-arrow]="true"
55+
[p-corner-aligned]="true"
56+
>
5057
<ng-container *ngTemplateOutlet="headerUser.popover.content"></ng-container>
5158
</po-popover>
5259
}

projects/ui/src/lib/components/po-header/po-header-tools/po-header-tools.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@
3636
@if (action?.popover) {
3737
<po-popover
3838
#poPopoverAction
39+
p-position="bottom-right"
40+
[p-width]="action.popover.width"
3941
[p-target]="buttonActionElements?.get(i)"
40-
p-position="bottom-left"
4142
[p-hide-arrow]="true"
43+
[p-corner-aligned]="true"
4244
>
4345
<ng-container *ngTemplateOutlet="action.popover?.content"></ng-container>
4446
</po-popover>

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ export class PoPopoverBaseComponent {
4545
*/
4646

4747
@Input({ alias: 'p-append-in-body', transform: convertToBoolean }) appendBox: boolean = false;
48+
49+
// Indica se o elemento filho será alinhado nos cantos do elemento pai.
50+
@Input('p-corner-aligned') cornerAligned = false;
51+
4852
/**
4953
* @description
5054
*
@@ -93,6 +97,9 @@ export class PoPopoverBaseComponent {
9397
/** Título do popover. */
9498
@Input('p-title') title?: string;
9599

100+
// Define o width do popover.
101+
@Input('p-width') width?: number;
102+
96103
/** Evento disparado ao fechar o popover. */
97104
@Output('p-close') closePopover = new EventEmitter<any>();
98105

projects/ui/src/lib/components/po-popover/po-popover.component.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@
1212
}
1313

1414
<ng-template #sharedPopoverContent>
15-
<div #popoverElement [hidden]="isHidden" class="po-popover" [ngClass]="customClasses()">
15+
<div
16+
#popoverElement
17+
[hidden]="isHidden"
18+
class="po-popover"
19+
[style.width.px]="width ?? widthPopover"
20+
[ngClass]="customClasses()"
21+
>
1622
@if (!hideArrow) {
1723
<div class="po-popover-arrow po-arrow-{{ arrowDirection }}"></div>
1824
}

0 commit comments

Comments
 (0)