mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACS-7380][ADF] Break Context Menu dependency on Material Module (#9487)
* [ACS-7380] convert context menu to standalone * [ACS-7380] convert context menu to standalone * [ACS-7380] convert context menu to standalone
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
<div mat-menu class="mat-menu-panel" @panelAnimation>
|
||||||
|
<div id="adf-context-menu-content" class="mat-menu-content">
|
||||||
|
<ng-container *ngFor="let link of links">
|
||||||
|
<button *ngIf="link.model?.visible"
|
||||||
|
[attr.data-automation-id]="'context-' + (link.title || link.model?.title | translate)"
|
||||||
|
mat-menu-item
|
||||||
|
[disabled]="link.model?.disabled"
|
||||||
|
(click)="onMenuItemClick($event, link)">
|
||||||
|
<mat-icon *ngIf="link.model?.icon">{{ link.model.icon }}</mat-icon>
|
||||||
|
<span>{{ link.title || link.model?.title | translate }}</span>
|
||||||
|
</button>
|
||||||
|
</ng-container>
|
||||||
|
</div>
|
||||||
|
</div>
|
@@ -15,40 +15,28 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Component, ViewEncapsulation, HostListener, AfterViewInit, Optional, Inject, QueryList, ViewChildren } from '@angular/core';
|
|
||||||
import { trigger } from '@angular/animations';
|
import { trigger } from '@angular/animations';
|
||||||
import { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
|
|
||||||
import { FocusKeyManager } from '@angular/cdk/a11y';
|
import { FocusKeyManager } from '@angular/cdk/a11y';
|
||||||
import { MatMenuItem } from '@angular/material/menu';
|
import { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
|
||||||
import { ContextMenuOverlayRef } from './context-menu-overlay';
|
import { NgForOf, NgIf } from '@angular/common';
|
||||||
|
import { AfterViewInit, Component, HostListener, Inject, Optional, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';
|
||||||
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
|
import { MatMenuItem, MatMenuModule } from '@angular/material/menu';
|
||||||
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { contextMenuAnimation } from './animations';
|
import { contextMenuAnimation } from './animations';
|
||||||
|
import { ContextMenuOverlayRef } from './context-menu-overlay';
|
||||||
import { CONTEXT_MENU_DATA } from './context-menu.tokens';
|
import { CONTEXT_MENU_DATA } from './context-menu.tokens';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'adf-context-menu',
|
selector: 'adf-context-menu',
|
||||||
template: `
|
standalone: true,
|
||||||
<div mat-menu class="mat-menu-panel" @panelAnimation>
|
templateUrl: './context-menu-list.component.html',
|
||||||
<div id="adf-context-menu-content" class="mat-menu-content">
|
|
||||||
<ng-container *ngFor="let link of links">
|
|
||||||
<button
|
|
||||||
*ngIf="link.model?.visible"
|
|
||||||
[attr.data-automation-id]="'context-' + (link.title || link.model?.title | translate)"
|
|
||||||
mat-menu-item
|
|
||||||
[disabled]="link.model?.disabled"
|
|
||||||
(click)="onMenuItemClick($event, link)"
|
|
||||||
>
|
|
||||||
<mat-icon *ngIf="link.model?.icon">{{ link.model.icon }}</mat-icon>
|
|
||||||
<span>{{ link.title || link.model?.title | translate }}</span>
|
|
||||||
</button>
|
|
||||||
</ng-container>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
host: {
|
host: {
|
||||||
role: 'menu',
|
role: 'menu',
|
||||||
class: 'adf-context-menu'
|
class: 'adf-context-menu'
|
||||||
},
|
},
|
||||||
encapsulation: ViewEncapsulation.None,
|
encapsulation: ViewEncapsulation.None,
|
||||||
|
imports: [MatIconModule, MatMenuModule, NgForOf, NgIf, TranslateModule],
|
||||||
animations: [trigger('panelAnimation', contextMenuAnimation)]
|
animations: [trigger('panelAnimation', contextMenuAnimation)]
|
||||||
})
|
})
|
||||||
export class ContextMenuListComponent implements AfterViewInit {
|
export class ContextMenuListComponent implements AfterViewInit {
|
||||||
|
@@ -21,7 +21,8 @@ import { Directive, HostListener, Input } from '@angular/core';
|
|||||||
import { ContextMenuOverlayService } from './context-menu-overlay.service';
|
import { ContextMenuOverlayService } from './context-menu-overlay.service';
|
||||||
|
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: '[adf-context-menu]'
|
selector: '[adf-context-menu]',
|
||||||
|
standalone: true
|
||||||
})
|
})
|
||||||
export class ContextMenuDirective {
|
export class ContextMenuDirective {
|
||||||
/** Items for the menu. */
|
/** Items for the menu. */
|
||||||
|
@@ -15,26 +15,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { MaterialModule } from '../material.module';
|
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
|
||||||
|
|
||||||
import { ContextMenuDirective } from './context-menu.directive';
|
import { ContextMenuDirective } from './context-menu.directive';
|
||||||
import { ContextMenuListComponent } from './context-menu-list.component';
|
import { ContextMenuListComponent } from './context-menu-list.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [ContextMenuListComponent, ContextMenuDirective],
|
||||||
CommonModule,
|
exports: [ContextMenuListComponent, ContextMenuDirective]
|
||||||
MaterialModule,
|
|
||||||
TranslateModule
|
|
||||||
],
|
|
||||||
declarations: [
|
|
||||||
ContextMenuDirective,
|
|
||||||
ContextMenuListComponent
|
|
||||||
],
|
|
||||||
exports: [
|
|
||||||
ContextMenuDirective
|
|
||||||
]
|
|
||||||
})
|
})
|
||||||
export class ContextMenuModule {}
|
export class ContextMenuModule {}
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
export * from './context-menu-list.component';
|
||||||
export * from './context-menu.directive';
|
export * from './context-menu.directive';
|
||||||
export * from './context-menu-overlay.service';
|
export * from './context-menu-overlay.service';
|
||||||
|
|
||||||
export * from './context-menu.module';
|
export * from './context-menu.module';
|
||||||
|
Reference in New Issue
Block a user