\ProvidesPackage{di/table}

\RequirePackage{booktabs}
\RequirePackage{caption}
\RequirePackage{etoolbox}
\RequirePackage{longtable}
\RequirePackage{xparse}

% define pdtable environment
\ExplSyntaxOn
\NewDocumentEnvironment{pdtable}{O{!ht} O{raggedright}mm}
{
	\table[#1]
	\captionsetup{format=plain, font=it, justification=#2, singlelinecheck=off, skip=6pt}
	\ifstrequal{#2}{centering}{\centering}{}
	\caption{#4}
	\label{#3}
}
{
	\endtable
}
\ExplSyntaxOff

\renewcommand{\thetable}{\arabic{chapter}.\arabic{table}}

% Thick vrule macro
\newcommand{\pdoutline}{\vrule width 1.5pt}

% Rule macros
\newcommand{\pdtoprule}{\specialrule{1.5pt}{0pt}{0pt}}
\newcommand{\pdmidrule}{\specialrule{0.4pt}{0pt}{0pt}}
\newcommand{\pdbottomrule}{\specialrule{1.1pt}{0pt}{0pt}} %1.5pt - 0.4pt (\pdtablerow) = 1.1pt

% Table header macro
\newcommand{\pdtablehead}[1]
{%
	#1\\%
	\pdtoprule%
}

% Table row macro
\newcommand{\pdtablerow}[1]
{%
	#1 \\%
	\pdmidrule%
}

% Table row macro that spans all columns in the table.
\newcommand{\pdtablerowspan}[3]
{
	\multicolumn{#1}{!{\pdoutline}#2!{\pdoutline}}{#3} \\
	\pdmidrule
}

% Table row macro that spans selected columns in the table.
\newcommand{\pdmulticolumn}[3]
{
	\multicolumn{#1}{#2|}{#3}
}

% Table row macro that spans selected columns in the table.
\newcommand{\pdmulticolumnright}[3]
{
	\multicolumn{#1}{#2!{\pdoutline}}{#3}
}

% Table row macro that spans selected columns in the table.
\newcommand{\pdmulticolumnleft}[3]
{
	\multicolumn{#1}{!{\pdoutline}#2|}{#3}
}
