% Tabellen im passenden Layout
% ****************************************************************

\ExplSyntaxOn

\int_new:N \g_dlrgTabelle_int
\str_new:N \l_dlrgTablleMod_str

\keys_define:nn {dlrg/tabelle}{
    layout  .tl_set:N   = \l__dlrg_tabelle_layout_tl,
    layout  .initial:n  = grauSchwarz,
    long    .bool_set:N = \l__dlrg_tabelle_long_tl,
    long    .initial:n  = false,
    long    .default:n  = true,
    noVlines    .bool_set:N = \l__dlrg_tabelle_noVlines_tl,
    noVlines    .initial:n  = false,
    noVlines    .default:n  = true,
    noHlines    .bool_set:N = \l__dlrg_tabelle_noHlines_tl,
    noHlines    .initial:n  = false,
    noHlines    .default:n  = true,
    ueberschrift    .bool_set:N = \l__dlrg_tabelle_ueberschrift_tl,
    ueberschrift    .initial:n  = false,
    ueberschrift    .default:n  = true,
}

\tl_set:Nn \l__dlrg_tabelle_layout_grauSchwarz {grauSchwarz}
\tl_set:Nn \l__dlrg_tabelle_layout_rot {rot}

\NewDocumentEnvironment{dlrgTblr}{O{} m O{} +b}{
    \keys_set:nn {dlrg/tabelle} {#3}

    \str_set:Ne \l_dlrgTablleMod_str {dlrgTabellenMod\int_use:N \g_dlrgTabelle_int}
    \int_gincr:N \g_dlrgTabelle_int

    \NewTblrEnviron{\str_use:N \l_dlrgTablleMod_str}

    \bool_if:nT \l__dlrg_tabelle_long_tl {
        \SetTblrOuter[\str_use:N \l_dlrgTablleMod_str]{long}
    }

    % Vertikale Linien, je nach Farbe
    \bool_if:nF \l__dlrg_tabelle_noVlines_tl {
        \tl_case:Nn \l__dlrg_tabelle_layout_tl {
            \l__dlrg_tabelle_layout_grauSchwarz {\SetTblrInner[\str_use:N \l_dlrgTablleMod_str]{vlines}}
            \l__dlrg_tabelle_layout_rot {\SetTblrInner[\str_use:N \l_dlrgTablleMod_str]{vlines={dlrgRot}}}
        }
    }

    % Horizontale Linien, je nach Farbe
    \bool_if:nF \l__dlrg_tabelle_noHlines_tl {
        \tl_case:Nn \l__dlrg_tabelle_layout_tl {
            \l__dlrg_tabelle_layout_grauSchwarz {\SetTblrInner[\str_use:N \l_dlrgTablleMod_str]{hlines}}
            \l__dlrg_tabelle_layout_rot {\SetTblrInner[\str_use:N \l_dlrgTablleMod_str]{hlines={dlrgRot}}}
        }
    }

    %Ueberschrift
    \bool_if:nT \l__dlrg_tabelle_ueberschrift_tl {
        \tl_case:Nn \l__dlrg_tabelle_layout_tl {
            \l__dlrg_tabelle_layout_grauSchwarz {\SetTblrInner[\str_use:N \l_dlrgTablleMod_str]{row{1}={font=\bfseries,bg=gray!50}}}
            \l__dlrg_tabelle_layout_rot {\SetTblrInner[\str_use:N \l_dlrgTablleMod_str]{row{1}={font=\bfseries,bg=dlrgRot,fg=white}}}
        }
    }

    \begin{\str_use:N \l_dlrgTablleMod_str}[#1]{#2}#4\end{\str_use:N \l_dlrgTablleMod_str}
}{
}

% Zwischenüberschriften
% ********************************************************************
\NewTableCommand{\tabellenZwischenueberschrift}[1]{\SetCell[c=#1]{font=\bfseries}}

\ExplSyntaxOff

% Angepasste Aufzählung für Tabellen
% ********************************************************************
\newlist{dlrgTabellenItemize}{itemize}{1}
\setlist[dlrgTabellenItemize]{
    label = $\bullet$,
    topsep=0.2em,
    itemsep=-0.3em,
    leftmargin=1.3em,
}

\newenvironment{tabellenItemize}{%
\begin{varwidth}[t]{\linewidth}\begin{dlrgTabellenItemize}%
}{%
\end{dlrgTabellenItemize}\end{varwidth}\\%
}
