\NeedsTeXFormat{LaTeX2e}
% extensions

\RequirePackage{colorscheme}
\RequirePackage{base}
\RequirePackage{myhdr}
\RequirePackage{notbeamer}

\RequirePackage{xsim}

\DeclareExerciseTagging{step}
\DeclareExerciseTagging{type}
\DeclareExerciseTagging{tribe}
\DeclareExerciseTagging{difficulty}
\DeclareExerciseTagging{origin}

\DeclareExerciseTranslations{total}{
    French = total ,
}

\DeclareExerciseEnvironmentTemplate{exo}{%
    \subsection*
    {%
        \color{exercise}{\XSIMmixedcase{\GetExerciseName}}\nobreakspace
        \GetExerciseProperty{counter}%
        \hspace{0.5cm} \color{line}\hrulefill \hspace{0.5cm}
        \color{exercise}
        \IfInsideSolutionF
        {%
            \GetExercisePropertyT{subtitle}
            {{\PropertyValue}}%
            \GetExercisePropertyT{points}
            {{(/\PropertyValue})}%
        }%
        \noindent
    }
}{}
\xsimsetup{exercise/template=exo}

\DeclareExerciseEnvironmentTemplate{sol}{%
    \subsection*
    {%
        \color{exercise}{\XSIMmixedcase{\GetExerciseName}}\nobreakspace
        : Exercice \GetExerciseProperty{counter}%
        \hspace{0.5cm} \color{line}\hrulefill \hspace{0.5cm}
        \color{exercise}
        \IfInsideSolutionF
        {%
        }%
        \noindent
    }
}{}
\xsimsetup{solution/template=sol}


\DeclareExerciseTableTemplate{DNB}{%
    \XSIMputright\ExerciseTableCode{%
        \hline
        \XSIMifblankTF{\ExerciseType}
        {}
        {\XSIMmixedcase{\GetExerciseParameter{exercise-name}}}
        &
        \XSIMmixedcase{\XSIMtranslate{points}} \\
        \hline
    }%
    \ForEachUsedExerciseByType{%
        \XSIMifeqTF{#1}{\ExerciseTableType{#1}}
        {%
            \XSIMifblankTF{\ExerciseType}
            {%
                \XSIMputright\ExerciseTableCode{%
                    \XSIMmixedcase{\ExerciseParameterGet{#1}{exercise-name} }%
                }%
            }
            {}%
            \XSIMputright\ExerciseTableCode
            {#3 & \XSIMifblankTF{#5}{\printgoal{0}}{\printgoal{#5}}\\ }%
        }
        {}%
    }
    \XSIMputright\ExerciseTableCode{%
        \hline
        \XSIMmixedcase{\XSIMtranslate{total}} &
        \XSIMifblankTF{\ExerciseType}
        {\TotalExerciseGoal{points}{}{}}
        {\TotalExerciseTypeGoal{\ExerciseType}{points}{}{}} \\
        \hline
    }%
    \XSIMexpandcode{%
        \noexpand\begin{tabular}{|\XSIMifblankTF{\ExerciseType}{l}{c}|c|}
            \noexpand\ExerciseTableCode
        \noexpand\end{tabular}%
    }%
}