@if (!string.IsNullOrEmpty(Name))
{
<li>
<div class="node" style="--level: @(Path.Count); content-visibility: auto; contain-intrinsic-size: auto 2rem;@(_activePath == Path ? Active : "")">
<div style="grid-area: spacer / spacer / spacer / spacer; display: flex;">
<div style="width: 100%; display: flex;">
@for (var i = 0; i < Path.Count - 1; i++)
{
<div class="level-line"></div>
}
</div>
</div>
@if (IsFolder)
{
<div class="expand" @onclick="ExpandNodeAsync">
<Expand IsDown="_expand"></Expand>
</div>
}
<div class="item" @onclick="ExpandNodeAsync">
<div class="visual-hidden"></div>
<div class="item-visual">
<div class="item-icon">
<ShowIcon IsFolder="@IsFolder" Filename="@Name"></ShowIcon>
</div>
</div>
<span class="item-content">
@{
var (first,keyword,end) = MatchKeyword(Name);
}
@if (keyword == null || end == null)
{
<MudTooltip Text="@string.Join("/", Path)">
<span>@Name</span>
</MudTooltip>
}
else
{
<MudTooltip Text="@string.Join("/", Path)">
<span class="show-name">
<span>@first</span>
<mark>@keyword</mark>
<span>@end</span>
</span>
</MudTooltip>
}
</span>
</div>
</div>
@if (_childrenNode != null && _expand)
{
<Tree OnSelectedFile="OnSelectedFile" Node="_childrenNode" OnExpandFolder="OnExpandFolder"></Tree>
}
</li>
}