File
|
Public
Readonly
component
|
Default value : this.data.component
|
|
|
|
Public
Readonly
data
|
Default value : inject<ComponentDialogData>(MAT_DIALOG_DATA)
|
|
|
|
Public
Readonly
portal
|
Default value : new ComponentPortal(this.component)
|
|
|
|
Public
Readonly
title
|
Default value : this.data.title
|
|
|
import {
CdkPortalOutlet,
ComponentPortal,
} from '@angular/cdk/portal';
import {
Component,
inject,
} from '@angular/core';
import { MatButton } from '@angular/material/button';
import {
MAT_DIALOG_DATA,
MatDialogActions,
MatDialogClose,
MatDialogContent,
MatDialogTitle,
} from '@angular/material/dialog';
import { SantizationPipe } from '@rxap/pipes/santization';
import { ComponentDialogData } from './types';
@Component({
selector: 'rxap-component-dialog',
imports: [
MatButton,
MatDialogActions,
MatDialogContent,
MatDialogTitle,
SantizationPipe,
MatDialogClose,
CdkPortalOutlet,
],
templateUrl: './component-dialog.component.html',
styleUrl: './component-dialog.component.scss',
})
export class ComponentDialogComponent {
public readonly data = inject<ComponentDialogData>(MAT_DIALOG_DATA);
public readonly component = this.data.component;
public readonly portal = new ComponentPortal(this.component);
public readonly title = this.data.title;
}
@if (title) {
<h2 mat-dialog-title>{{ title }}</h2>
}
<mat-dialog-content>
<ng-template [cdkPortalOutlet]="portal"></ng-template>
</mat-dialog-content>
<mat-dialog-actions>
<button [mat-dialog-close]="true" mat-button>
<ng-container i18n>Close</ng-container>
</button>
</mat-dialog-actions>
Legend
Html element with directive