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) {