File indexing completed on 2026-10-27 08:41:16
0001 <div class="model-tree">
0002 @if (selection.selection(); as selected) {
0003 <div class="selection-bar">
0004 <span class="selection-label">Selected: {{ selected.pieceName }} #{{ selected.entityIndex }}</span>
0005 <button class="clear-selection" title="Clear the selection" aria-label="Clear the selection"
0006 (click)="clearSelection()">
0007 <mat-icon>close</mat-icon>
0008 </button>
0009 </div>
0010 }
0011 @if (pieces().length === 0) {
0012 <div class="empty-note">No event loaded</div>
0013 }
0014 @for (piece of pieces(); track piece.name) {
0015 <div class="piece-row"
0016 [class.selected]="selection.selectedPiece() === piece.name"
0017 (click)="togglePiece(piece.name); selection.selectPiece(piece.name)">
0018 <mat-icon class="expand-icon">{{ isExpanded(piece.name) ? 'expand_more' : 'chevron_right' }}</mat-icon>
0019 <span class="piece-name">{{ piece.name }}</span>
0020 <span class="piece-meta">{{ piece.type }} · {{ piece.entityCount }}</span>
0021 <button class="visibility-toggle"
0022 [class.hidden-piece]="!isPieceVisible(piece.name)"
0023 title="{{ isPieceVisible(piece.name) ? 'Hide' : 'Show' }} {{ piece.name }}"
0024 (click)="togglePieceVisibility(piece.name); $event.stopPropagation()">
0025 <mat-icon>{{ isPieceVisible(piece.name) ? 'visibility' : 'visibility_off' }}</mat-icon>
0026 </button>
0027 </div>
0028 @if (isExpanded(piece.name)) {
0029 @for (node of entityNodes(piece); track node.index) {
0030 <div class="entity-row"
0031 [id]="rowId(piece.name, node.index)"
0032 [class.selected]="selection.isSelected(piece.name, node.index)"
0033 (click)="selectEntity(piece.name, node.index)">
0034 <span class="entity-label">{{ node.label }}</span>
0035 @for (ref of node.refs; track ref.column) {
0036 <button class="ref-link"
0037 title="Go to {{ ref.targetPiece }} #{{ ref.targetIndex }}"
0038 (click)="followRef(ref); $event.stopPropagation()">
0039 {{ ref.column }} → #{{ ref.targetIndex }}
0040 </button>
0041 }
0042 </div>
0043 }
0044 @if (piece.entityCount > limitFor(piece.name)) {
0045 <button class="more-button" (click)="showMore(piece.name)">
0046 … {{ piece.entityCount - limitFor(piece.name) }} more
0047 </button>
0048 }
0049 }
0050 }
0051 </div>