<%#
# paramètres button

* label (string, required) : label du bouton

* secondary (boolean, optionnal) : si valeur true, bouton secondaire

* type (string, optionnal) type du bouton

* disabled (boolean, optionnal) : si valeur true, bouton désactivé

* size (string, optionnal) : modificateur de taille
  valeurs :
  * sm : bouton petit
  * lg : bouton large

* icon (string, optionnal) : nom de l'icone dans le bouton

* iconPlace (string, optionnal) : emplacement de l'icone
  si non défini alors que le paramètre icon est défini, bouton avec icone seule, sans label
  valeurs :
  * left : icone à gauche du label
  * right : icone à droite du label

%>

<%
 let btnClasses = locals.classes || [];
 let btnAttrs = locals.attributes || {};

 btnClasses.push(prefix + '-btn');

 switch(locals.size) {
     case 'sm':
         btnClasses.push(prefix + '-btn--sm');
         break;

     case 'lg':
         btnClasses.push(prefix + '-btn--lg');
         break;
 }

 let span = locals.span;
 let spanClasses = locals.spanClasses || [];

 if (locals.icon !== undefined)
 {
     btnClasses.push(prefix + '-fi-' + locals.icon);

     switch(locals.iconPlace) {
         case 'left':
             btnClasses.push(prefix + '-btn--icon-left');
             break;

         case 'right':
             btnClasses.push(prefix + '-btn--icon-right');
             break;

         default:
             btnClasses.push(prefix + '-btn--icon');
             span = true;
             spanClasses.push('sr-only');
     }
 }

 if (locals.secondary === true) btnClasses.push(prefix +'-btn--secondary');

 if (locals.disabled === true) btnAttrs['disabled'] = '';

 if (locals.type !== undefined) btnAttrs['type'] = type;
 %>

<button <%- includeClasses(btnClasses) %> title="<%= label %>" <%- includeAttrs(btnAttrs); %> >
    <% if (span) { %><span <%- includeClasses(spanClasses) %>><% } %>
    <%= label %>
    <% if (span) { %></span><% } %>
</button>