mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
fix submenu
This commit is contained in:
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
<ng-container *ngFor="let link of links">
|
<ng-container *ngFor="let link of links">
|
||||||
<a appNestedMenuPosition mat-list-item #appMenuTrigger *ngIf="link.children" [attr.data-automation-id]="link.title | translate"
|
<a appNestedMenuPosition mat-list-item #appMenuTrigger *ngIf="link.children" [attr.data-automation-id]="link.title | translate"
|
||||||
class="adf-sidenav-link" [matMenuTriggerFor]="nestedMenu" menuMinimized="{{ isMenuMinimized() }}"
|
class="adf-sidenav-link" [matMenuTriggerFor]="nestedMenu"
|
||||||
[matMenuTriggerData]="{links: link.children}">
|
[matMenuTriggerData]="{links: link.children}">
|
||||||
|
|
||||||
<mat-icon matListIcon class="adf-sidenav-menu-icon">{{link.icon}}</mat-icon>
|
<mat-icon matListIcon class="adf-sidenav-menu-icon">{{link.icon}}</mat-icon>
|
||||||
|
@@ -15,43 +15,24 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Directive, HostListener, Input } from '@angular/core';
|
import { Directive, HostListener } from '@angular/core';
|
||||||
|
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: '[appNestedMenuPosition]'
|
selector: '[appNestedMenuPosition]'
|
||||||
})
|
})
|
||||||
export class NestedMenuPositionDirective {
|
export class NestedMenuPositionDirective {
|
||||||
|
|
||||||
@Input()
|
|
||||||
menuMinimized: string;
|
|
||||||
|
|
||||||
nestedMenuLeftPadding: string = '220px';
|
nestedMenuLeftPadding: string = '220px';
|
||||||
|
|
||||||
@HostListener('click', ['$event'])
|
@HostListener('click', ['$event'])
|
||||||
onClick(event: any) {
|
onClick() {
|
||||||
|
|
||||||
const bodyRect = document.body.getBoundingClientRect();
|
|
||||||
let overlayContainer = (document.querySelector('.cdk-overlay-connected-position-bounding-box') as HTMLElement);
|
let overlayContainer = (document.querySelector('.cdk-overlay-connected-position-bounding-box') as HTMLElement);
|
||||||
(document.querySelector('.cdk-overlay-pane') as HTMLElement).style.width = '100%';
|
(document.querySelector('.cdk-overlay-pane') as HTMLElement).style.width = '100%';
|
||||||
|
|
||||||
if (this.menuMinimized === 'false') {
|
setTimeout(() => {
|
||||||
setTimeout( () => {
|
overlayContainer.style.left = this.nestedMenuLeftPadding;
|
||||||
const elementPosition = this.getElementOffset(event);
|
});
|
||||||
overlayContainer.style.top = elementPosition.top - bodyRect.top + 'px';
|
}
|
||||||
overlayContainer.style.left = this.nestedMenuLeftPadding;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
isMenuClicked(item: string) {
|
|
||||||
return item.includes('adf-sidenav-menu-label');
|
|
||||||
}
|
|
||||||
|
|
||||||
getElementOffset(event) {
|
|
||||||
if (this.isMenuClicked(event.target.className)) {
|
|
||||||
return event.target.offsetParent.getBoundingClientRect();
|
|
||||||
} else {
|
|
||||||
return event.target.getBoundingClientRect();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -56,6 +56,7 @@ export class NavigationBarPage {
|
|||||||
navigateToDatatable() {
|
navigateToDatatable() {
|
||||||
Util.waitUntilElementIsVisible(this.dataTableButton);
|
Util.waitUntilElementIsVisible(this.dataTableButton);
|
||||||
this.dataTableButton.click();
|
this.dataTableButton.click();
|
||||||
|
Util.waitUntilElementIsVisible(this.dataTableNestedButton);
|
||||||
this.dataTableNestedButton.click();
|
this.dataTableNestedButton.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user