bootstrap_italia-8.x-0.x-dev/components/components-2/table/table.html.twig
components/components-2/table/table.html.twig
{# /** * @file * Default theme implementation to display a table. * Docs: https://italia.github.io/bootstrap-italia/docs/organizzare-i-contenuti/tabelle/ * Latest revision: v2.6.1 * * Available variables: * - attributes: HTML attributes to apply to the <table> tag. * - caption: A localized string for the <caption> tag. * - colgroups: Column groups. Each group contains the following properties: * - attributes: HTML attributes to apply to the <col> tag. * Note: Drupal currently supports only one table header row, see * https://www.drupal.org/node/893530 and * http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109. * - header: Table header cells. Each cell contains the following properties: * - tag: The HTML tag name to use; either 'th' or 'td'. * - attributes: HTML attributes to apply to the tag. * - content: A localized string for the title of the column. * - field: Field name (required for column sorting). * - sort: Default sort order for this column ("asc" or "desc"). * - sticky: A flag indicating whether to use a "sticky" table header. * - rows: Table rows. Each row contains the following properties: * - attributes: HTML attributes to apply to the <tr> tag. * - data: Table cells. * - no_striping: A flag indicating that the row should receive no * 'even / odd' styling. Defaults to FALSE. * - cells: Table cells of the row. Each cell contains the following keys: * - tag: The HTML tag name to use; either 'th' or 'td'. * - attributes: Any HTML attributes, such as "colspan", to apply to the * table cell. * - content: The string to display in the table cell. * - active_table_sort: A boolean indicating whether the cell is the active table sort. * - footer: Table footer rows, in the same format as the rows variable. * - empty: The message to display in an extra row if table does not have * any rows. * - no_striping: A boolean indicating that the row should receive no striping. * - header_columns: The number of columns in the header. * * @see template_preprocess_table() * * @ingroup themeable */ #} {% apply spaceless %} {# Set defaults #} {# Set options #} {% set _classes = [ 'table', table_striped ? 'table-striped', table_striped_columns ? 'table-striped-columns', table_bg and table_bg is not empty ? 'table-' ~ table_bg, table_hover ? 'table-hover', table_bordered ? 'table-bordered', table_border_color and table_border_color is not empty ? 'border-' ~ table_border_color, table_borderless ? 'table-borderless', table_sm ? 'table-sm', table_align_middle ? 'align-middle', table_caption_top ? 'caption-top' ] %} {% set attributes = attributes .addClass(_classes) %} {% set thead_classes = [ table_thead_variant and table_thead_variant is not empty ? 'table-' ~ table_thead_variant ] %} {# Component #} {% if table_responsive and table_responsive is not empty %} <div class="{{ table_responsive }}"> {% endif %} <table{{ attributes }}> {% if caption %} <caption>{{ caption }}</caption> {% endif %} {% for colgroup in colgroups %} {% if colgroup.cols %} <colgroup{{ colgroup.attributes }}> {% for col in colgroup.cols %} <col{{ col.attributes }} /> {% endfor %} </colgroup> {% else %} <colgroup{{ colgroup.attributes }} /> {% endif %} {% endfor %} {% if header %} <thead class="{{ thead_classes|join(' ') }}"> <tr> {% for cell in header %} <{{ cell.tag }}{{ cell.attributes }}> {{- cell.content -}} </{{ cell.tag }}> {% endfor %} </tr> </thead> {% endif %} {% if rows %} <tbody> {% for row in rows %} <tr{{ row.attributes }}> {% for cell in row.cells %} <{{ cell.tag }}{{ cell.attributes }}> {{- cell.content -}} </{{ cell.tag }}> {% endfor %} </tr> {% endfor %} </tbody> {% elseif empty %} <tbody> <tr> <td colspan="{{ header_columns }}">{{ empty }}</td> </tr> </tbody> {% endif %} {% if footer %} <tfoot> {% for row in footer %} <tr{{ row.attributes }}> {% for cell in row.cells %} <{{ cell.tag }}{{ cell.attributes }}> {{- cell.content -}} </{{ cell.tag }}> {% endfor %} </tr> {% endfor %} </tfoot> {% endif %} </table> {% if table_responsive and table_responsive is not empty %} </div> {% endif %} {% endapply %}