Adresse
Le composant adresse se compose d'un nom, d'un champ adresse (numero, nom de rue, code postale et ville), ainsi que d'un numéro de téléphone et un email
Accessibilité
Le composant kuik:address génère un tag <address>.
Exemple
<kuik:address address="${addressObject}" size="xl" />
addressObject étant du type fr.kosmos.web.kore.attributes.interfaces.Address
Size
sm
Kosmos
md
Kosmos
lg
Kosmos
xl
Kosmos
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="kuik" uri="kuik" %>
<%--@elvariable id="addressViewModel" type="fr.kosmos.web.kore.attributes.DefaultAddress"--%>
<kuik:heading size="lg" skin="a" title="Size" level="3"/>
<kuik:heading size="lg" title="sm" level="4"/>
<kuik:address address="${addressViewModel}" size="sm"/>
<kuik:heading size="lg" title="md" level="4"/>
<kuik:address address="${addressViewModel}" size="md"/>
<kuik:heading size="lg" title="lg" level="4"/>
<kuik:address address="${addressViewModel}" size="lg"/>
<kuik:heading size="lg" title="xl" level="4"/>
<kuik:address address="${addressViewModel}" size="xl"/>
| Name | Type | Required | Description |
|---|---|---|---|
| address | fr.kosmos.web.kore.attributes.interfaces.Address | true | Information de l'adresse |
| size | java.lang.String | false | Taille (défaut : sm) |
<%@ tag pageEncoding="UTF-8" trimDirectiveWhitespaces="true" dynamic-attributes="dynattrs" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="address" required="true" type="fr.kosmos.web.kore.attributes.interfaces.Address" description="Information de l'adresse" %>
<%@ attribute name="size" required="false" type="java.lang.String" description="Taille (défaut : sm)" %>
<c:if test="${not empty pageScope.address}">
<c:if test="${empty pageScope.size}">
<c:set var="size" value="sm"/>
</c:if>
<c:set var="classesSize" value="address--${pageScope.size}"/>
<c:set value="address ${pageScope.classesSize}" var="classes"/>
<c:set var="attributes">
<c:forEach items="${dynattrs}" var="a">
<c:choose>
<c:when test="${a.key == 'class'}">
<c:set value="${classes} ${a.value}" var="classes"/>
</c:when>
<c:otherwise>${a.key}="${a.value}" </c:otherwise>
</c:choose>
</c:forEach>
</c:set>
<address class="${pageScope.classes}" ${pageScope.attributes}>
<c:if test="${not empty pageScope.address.title}">
<div class="address__title"><b><c:out value="${pageScope.address.title}"/></b></div>
</c:if>
<div class="address__content">
<c:forEach var="line" items="${pageScope.address.lines}">
<span>${line}</span>
</c:forEach>
<c:if test="${not empty pageScope.address.email}">
<a href="mailto:<c:out value="${pageScope.address.email}" />"><c:out value="${pageScope.address.email}"/></a>
</c:if>
</div>
</address>
</c:if>
@use 'mixins/mixins-customizables' as custom;
$prefix: 'address';
$prefix-title: 'address__title';
$prefix-content: 'address__content';
.address {
@include custom.component($prefix, true);
font-style: normal;
}
.address__title {
@include custom.component($prefix-title, true);
line-height: 130%; // FIXME : c'est une variable
margin-bottom: var(--space-2);
}
.address__content {
@include custom.component($prefix-content, true);
display: inline-flex;
flex-direction: column;
flex-wrap: wrap;
}
// Sizes
.address--sm, .address--md, .address--lg, .address--xl {
@include custom.component($prefix);
.address__title {
@include custom.component($prefix-title);
}
.address__content {
@include custom.component($prefix-content);
}
}
package fr.kosmos.web.kore.attributes.interfaces;
import java.util.List;
/**
* Modèle de l'adresse (address)
*/
public interface Address {
String getTitle();
void setTitle(String title);
String getEmail();
void setEmail(String email);
List getLines();
void setLines(List lines);
}