Skip to content

Commit 610f087

Browse files
anlibenalinelariguet
authored andcommitted
feat(menu): permite habilitar o automatic toggle
permite habilitar o automatic toggle no componente `po-menu` Fixes DTHFUI-8037
1 parent 6ca2dbd commit 610f087

File tree

5 files changed

+26
-10
lines changed

5 files changed

+26
-10
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,17 @@ export abstract class PoMenuBaseComponent {
6262
private _params: any;
6363
private _service: string | PoMenuFilter;
6464

65+
/**
66+
* @optional
67+
*
68+
* @description
69+
*
70+
* Expande e Colapsa (retrai) o menu automaticamente.
71+
*
72+
* @default `false`
73+
*/
74+
@Input({ alias: 'p-automatic-toggle', transform: convertToBoolean }) automaticToggle: boolean = false;
75+
6576
/**
6677
* @optional
6778
*

projects/ui/src/lib/components/po-menu/po-menu.component.spec.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,7 @@ describe('PoMenuComponent:', () => {
936936
it('should set "collapsed" to false and "allowCollapseHover" to true when onMouseEnter is called and the component is collapsed', () => {
937937
component.collapsed = true;
938938
component.allowCollapseHover = false;
939+
component.automaticToggle = true;
939940

940941
component.onMouseEnter();
941942

@@ -946,6 +947,7 @@ describe('PoMenuComponent:', () => {
946947
it('should not modify the "collapsed" or "allowCollapseHover" state when onMouseEnter is called and the component is not collapsed', () => {
947948
component.collapsed = false;
948949
component.allowCollapseHover = true;
950+
component.automaticToggle = true;
949951

950952
component.onMouseEnter();
951953

@@ -956,6 +958,7 @@ describe('PoMenuComponent:', () => {
956958
it('should set "collapsed" to true when onMouseLeave is called and the component is not collapsed and allowCollapseHover is true', () => {
957959
component.collapsed = false;
958960
component.allowCollapseHover = true;
961+
component.automaticToggle = true;
959962

960963
component.onMouseLeave();
961964

@@ -965,6 +968,7 @@ describe('PoMenuComponent:', () => {
965968
it('should not modify the "collapsed" state when onMouseLeave is called and the component is already collapsed', () => {
966969
component.collapsed = true;
967970
component.allowCollapseHover = true;
971+
component.automaticToggle = true;
968972

969973
component.onMouseLeave();
970974

@@ -974,6 +978,7 @@ describe('PoMenuComponent:', () => {
974978
it('should not modify the "collapsed" state when onMouseLeave is called and allowCollapseHover is false', () => {
975979
component.collapsed = false;
976980
component.allowCollapseHover = false;
981+
component.automaticToggle = true;
977982

978983
component.onMouseLeave();
979984

projects/ui/src/lib/components/po-menu/po-menu.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,14 +298,14 @@ export class PoMenuComponent extends PoMenuBaseComponent implements AfterViewIni
298298
}
299299

300300
onMouseEnter(): void {
301-
if (this.collapsed) {
301+
if (this.collapsed && this.automaticToggle) {
302302
this.collapsed = false;
303303
this.allowCollapseHover = true;
304304
}
305305
}
306306

307307
onMouseLeave(): void {
308-
if (!this.collapsed && this.allowCollapseHover) {
308+
if (!this.collapsed && this.allowCollapseHover && this.automaticToggle) {
309309
this.collapsed = true;
310310
}
311311
}

projects/ui/src/lib/components/po-menu/samples/sample-po-menu-human-resources/sample-po-menu-human-resources.component.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
<div class="po-wrapper">
2-
<po-menu p-collapsed p-filter [p-menus]="menus" [p-service]="samplePoMenuHumanResourcesService">
2+
<po-menu
3+
p-collapsed
4+
p-filter
5+
[p-menus]="menus"
6+
[p-service]="samplePoMenuHumanResourcesService"
7+
[p-automatic-toggle]="true"
8+
>
39
<div *p-menu-header-template class="po-p-2 po-font-title sample-menu-header-text-color">
410
<p>Welcome,</p>
511
<p>

projects/ui/src/lib/components/po-menu/samples/sample-po-menu-labs/sample-po-menu-labs.component.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
22

3-
import {
4-
PoButtonGroupItem,
5-
PoMenuComponent,
6-
PoMenuItem,
7-
PoRadioGroupOption,
8-
PoSelectOption
9-
} from '@po-ui/ng-components';
3+
import { PoButtonGroupItem, PoMenuComponent, PoMenuItem, PoSelectOption } from '@po-ui/ng-components';
104

115
@Component({
126
selector: 'sample-po-menu-labs',

0 commit comments

Comments
 (0)