diff --git a/src/app/editor/editor.component.html b/src/app/editor/editor.component.html index d6d7512..ba96165 100644 --- a/src/app/editor/editor.component.html +++ b/src/app/editor/editor.component.html @@ -10,8 +10,10 @@ } } +@if(showRaw()) {

Preview

-
+
+} diff --git a/src/app/editor/editor.component.scss b/src/app/editor/editor.component.scss index 84a27a3..f3b6191 100644 --- a/src/app/editor/editor.component.scss +++ b/src/app/editor/editor.component.scss @@ -11,7 +11,7 @@ div { } div { - padding: 10px; + padding: 16px; } .actions { diff --git a/src/app/model/proto-message.model.ts b/src/app/model/proto-message.model.ts index 5939ac4..ea71afd 100644 --- a/src/app/model/proto-message.model.ts +++ b/src/app/model/proto-message.model.ts @@ -93,9 +93,12 @@ export interface ProtoMessageField { export interface ProtoBase { name: string; + fullName?: string; + packageName?: string; } export interface ProtoMessage extends ProtoBase { + fileName?: string; values: ProtoMessageField[]; } @@ -103,7 +106,11 @@ export interface ProtoEnum extends ProtoBase { options: string[]; } -export const UnknownProto = (name: string): ProtoMessage => ({ +export const UnknownProto = ( + name: string, + fullName?: string +): ProtoMessage => ({ name, + fullName, values: [{ name: 'Raw JSON', configuration: RawMessage() }], }); diff --git a/src/app/proto-definition-selector/proto-definition-selector.component.scss b/src/app/proto-definition-selector/proto-definition-selector.component.scss index 6ead0bc..091f781 100644 --- a/src/app/proto-definition-selector/proto-definition-selector.component.scss +++ b/src/app/proto-definition-selector/proto-definition-selector.component.scss @@ -14,3 +14,6 @@ input { display: none; } +a { + display: none; +} diff --git a/src/app/proto-definition-selector/proto-definition-selector.component.ts b/src/app/proto-definition-selector/proto-definition-selector.component.ts index c66c169..9168803 100644 --- a/src/app/proto-definition-selector/proto-definition-selector.component.ts +++ b/src/app/proto-definition-selector/proto-definition-selector.component.ts @@ -5,6 +5,7 @@ import { ElementRef, HostBinding, HostListener, + computed, output, signal, viewChild, @@ -13,25 +14,37 @@ import { MatButtonModule } from '@angular/material/button'; import { MatListModule } from '@angular/material/list'; import { ProtoMessage } from '../model/proto-message.model'; import { ProtoDefinitionService } from './proto-definition.service'; +import { MatTreeModule } from '@angular/material/tree'; +import { MatSnackBar } from '@angular/material/snack-bar'; @Component({ selector: 'app-proto-definition-selector', standalone: true, - imports: [CommonModule, MatButtonModule, MatListModule], + imports: [CommonModule, MatButtonModule, MatListModule, MatTreeModule], template: `

Protobuf Definitions

+ @if(currentFiles().length > 0) { + + } + + - @for (item of definitionFiles(); track $index) { + @for (item of currentFiles(); track $index) { } - @if(selectedProtoFile()) { -

Messages in {{ selectedProtoFile()?.name }}

+ @if(selectedDefinition().length > 0) { +

+ @if(selectedProtoFile()) { Messages in {{ selectedProtoFile() }} } @else + {Showing all messages} +

@for (item of selectedDefinition(); track $index) {