Files
sap-intercompany-viewer/src/app/log/json-dialog/json-dialog.ts
T
GeorgeandClaude Sonnet 5 cf793c88f2 Initial commit: sap-intercompany-viewer
Frontend Angular 22 (standalone, signals, Material 3) para
sap-intercompany-api. Pantallas: log de eventos/intentos, CRUD de
databases, listado/alta/detalle de scenarios.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 08:25:01 -05:00

31 lines
1.1 KiB
TypeScript

import { Component, inject } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatTooltipModule } from '@angular/material/tooltip';
export interface JsonDialogData {
title: string;
json: unknown;
}
@Component({
imports: [MatButtonModule, MatDialogModule, MatIconModule, MatTooltipModule],
selector: 'app-json-dialog',
styleUrl: './json-dialog.css',
templateUrl: './json-dialog.html',
})
export class JsonDialog {
private readonly snackBar = inject(MatSnackBar);
protected readonly data = inject<JsonDialogData>(MAT_DIALOG_DATA);
protected readonly formatted = JSON.stringify(this.data.json, null, 2);
copy() {
navigator.clipboard
.writeText(this.formatted)
.then(() => this.snackBar.open('JSON copiado al portapapeles', 'Cerrar', { duration: 2500 }))
.catch(() => this.snackBar.open('No se pudo copiar el JSON', 'Cerrar', { duration: 4000 }));
}
}