Flatten critical tables into a shared grid
This commit is contained in:
@@ -103,37 +103,31 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
<div class="table-scroll">
|
<div class="table-scroll">
|
||||||
<div class="critical-table-grid" role="table" aria-label="@detail.DisplayName">
|
<div class="critical-table-grid" role="group" aria-label="@detail.DisplayName" style="@gridTemplateStyle">
|
||||||
@if (detail.Groups.Count > 0)
|
@if (detail.Groups.Count > 0)
|
||||||
{
|
{
|
||||||
<div class="critical-table-grid-row critical-table-grid-group-row" role="row" style="@gridTemplateStyle">
|
|
||||||
<div class="critical-table-grid-header-cell critical-table-grid-corner" aria-hidden="true"></div>
|
<div class="critical-table-grid-header-cell critical-table-grid-corner" aria-hidden="true"></div>
|
||||||
@foreach (var group in detail.Groups)
|
@foreach (var group in detail.Groups)
|
||||||
{
|
{
|
||||||
<div
|
<div
|
||||||
class="critical-table-grid-header-cell critical-table-grid-group-header"
|
class="critical-table-grid-header-cell critical-table-grid-group-header"
|
||||||
role="columnheader"
|
|
||||||
style="@BuildColumnSpanStyle(detail.Columns.Count)">
|
style="@BuildColumnSpanStyle(detail.Columns.Count)">
|
||||||
<span>@group.Label</span>
|
<span>@group.Label</span>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="critical-table-grid-row critical-table-grid-column-row" role="row" style="@gridTemplateStyle">
|
|
||||||
<div class="critical-table-grid-header-cell critical-table-grid-roll-band-header" aria-hidden="true"></div>
|
<div class="critical-table-grid-header-cell critical-table-grid-roll-band-header" aria-hidden="true"></div>
|
||||||
@foreach (var displayColumn in displayColumns)
|
@foreach (var displayColumn in displayColumns)
|
||||||
{
|
{
|
||||||
<div class="critical-table-grid-header-cell critical-table-grid-column-header" role="columnheader">
|
<div class="critical-table-grid-header-cell critical-table-grid-column-header">
|
||||||
<span>@displayColumn.ColumnLabel</span>
|
<span>@displayColumn.ColumnLabel</span>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
|
||||||
|
|
||||||
@foreach (var rollBand in detail.RollBands)
|
@foreach (var rollBand in detail.RollBands)
|
||||||
{
|
{
|
||||||
<div class="critical-table-grid-row critical-table-grid-body-row" role="row" style="@gridTemplateStyle">
|
<div class="critical-table-grid-header-cell critical-table-grid-roll-band">@rollBand.Label</div>
|
||||||
<div class="critical-table-grid-header-cell critical-table-grid-roll-band" role="rowheader">@rollBand.Label</div>
|
|
||||||
@foreach (var displayColumn in displayColumns)
|
@foreach (var displayColumn in displayColumns)
|
||||||
{
|
{
|
||||||
@if (TryGetCell(rollBand.Label, displayColumn.GroupKey, displayColumn.ColumnKey, out var cell))
|
@if (TryGetCell(rollBand.Label, displayColumn.GroupKey, displayColumn.ColumnKey, out var cell))
|
||||||
@@ -145,7 +139,6 @@
|
|||||||
@RenderEmptyCriticalTableCell()
|
@RenderEmptyCriticalTableCell()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</div>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -789,7 +782,7 @@
|
|||||||
return string.Join(' ', classes);
|
return string.Join(' ', classes);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RenderFragment RenderCriticalTableCell(CriticalTableCellDetail cell) => @<div class="@GetCellCssClass(cell)" role="cell">
|
private RenderFragment RenderCriticalTableCell(CriticalTableCellDetail cell) => @<div class="@GetCellCssClass(cell)">
|
||||||
<div class="critical-table-cell-shell">
|
<div class="critical-table-cell-shell">
|
||||||
<div class="critical-table-cell-actions">
|
<div class="critical-table-cell-actions">
|
||||||
@if (cell.IsCurated)
|
@if (cell.IsCurated)
|
||||||
@@ -823,7 +816,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>;
|
</div>;
|
||||||
|
|
||||||
private static RenderFragment RenderEmptyCriticalTableCell() => @<div class="critical-table-cell critical-table-cell-empty" role="cell">
|
private static RenderFragment RenderEmptyCriticalTableCell() => @<div class="critical-table-cell critical-table-cell-empty">
|
||||||
<span class="empty-cell">—</span>
|
<span class="empty-cell">—</span>
|
||||||
</div>;
|
</div>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -738,6 +738,8 @@ textarea {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.critical-table-grid {
|
.critical-table-grid {
|
||||||
|
display: grid;
|
||||||
|
align-items: stretch;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-width: max-content;
|
min-width: max-content;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
@@ -745,11 +747,6 @@ textarea {
|
|||||||
border-left: 1px solid rgba(127, 96, 55, 0.2);
|
border-left: 1px solid rgba(127, 96, 55, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.critical-table-grid-row {
|
|
||||||
display: grid;
|
|
||||||
align-items: stretch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.critical-table-grid-header-cell {
|
.critical-table-grid-header-cell {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -765,8 +762,8 @@ textarea {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.critical-table-grid-column-row .critical-table-grid-header-cell,
|
.critical-table-grid-group-header,
|
||||||
.critical-table-grid-group-row .critical-table-grid-header-cell {
|
.critical-table-grid-column-header {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1 @@
|
|||||||
window.rolemasterTables = window.rolemasterTables || {
|
// Intentionally empty: the tables layout is fully CSS-driven.
|
||||||
alignCriticalCells() {}
|
|
||||||
};
|
|
||||||
|
|||||||
Reference in New Issue
Block a user