|
2 | 2 | {% from "components/button/_macro.njk" import onsButton %} |
3 | 3 | {% from "components/icon/_macro.njk" import onsIcon %} |
4 | 4 | {% set variants = params.variants if params.variants %} |
5 | | - {% set hasRowSpan = false %} |
6 | | - {% for row in params.thList %} |
7 | | - {% for th in row.ths %} |
8 | | - {% if th.rowspan %} |
9 | | - {% set hasRowSpan = true %} |
10 | | - {% endif %} |
11 | | - {% endfor %} |
12 | | - {% endfor %} |
13 | | - |
14 | | - {% for row in params.trs %} |
15 | | - {% for td in row.tds %} |
16 | | - {% if td.rowspan %} |
17 | | - {% set hasRowSpan = true %} |
18 | | - {% endif %} |
19 | | - {% endfor %} |
20 | | - {% endfor %} |
21 | 5 |
|
22 | 6 | <div class="ons-table-scrollable ons-table-scrollable--on"> |
23 | 7 | <div |
|
26 | 10 | role="region" |
27 | 11 | aria-label="{{ params.caption }}. {{ params.ariaLabel | default('Scrollable table') }}" |
28 | 12 | > |
| 13 | + {# Uses multiple loops to set the rowspan class so that it can work in both nunjucks and jinja2 environments due to the scoping rules of each language #} |
29 | 14 | <table |
30 | 15 | {% if params.id %}id="{{ params.id }}"{% endif %} |
31 | | - class="ons-table{{ ' ' + params.tableClasses if params.tableClasses else '' }}{% if hasRowSpan %}{{ ' ' }}ons-table--has-rowspan{% endif %}{% if variants %}{% if variants is not string %}{% for variant in variants %}{{ ' ' }}ons-table--{{ variant }}{% endfor %}{% else %}{{ ' ' }}ons-table--{{ variants }}{% endif %}{% endif %}" |
| 16 | + class="ons-table{{ ' ' + params.tableClasses if params.tableClasses else '' }}{% for row in params.thList %}{% for th in row.ths %}{% if th.rowspan %}{{ ' ' }}ons-table--has-rowspan{% endif %}{% endfor %}{% endfor %}{% for row in params.trs %}{% for td in row.tds %}{% if td.rowspan %}{{ ' ' }}ons-table--has-rowspan{% endif %}{% endfor %}{% endfor %}{% if variants %}{% if variants is not string %}{% for variant in variants %}{{ ' ' }}ons-table--{{ variant }}{% endfor %}{% else %}{{ ' ' }}ons-table--{{ variants }}{% endif %}{% endif %}" |
32 | 17 | {% if params.sortBy and 'sortable' in variants %} |
33 | 18 | data-aria-sort="{{ params.sortBy }}" data-aria-asc="{{ params.ariaAsc }}" data-aria-desc="{{ params.ariaDesc }}" |
34 | 19 | {% endif %} |
35 | 20 | > |
36 | 21 | {% if params.caption %} |
37 | | - <caption class="ons-table__caption{{ " ons-u-vh" if params.hideCaption }}"> |
| 22 | + <caption class="ons-table__caption{{ ' ons-u-vh' if params.hideCaption }}"> |
38 | 23 | {{ params.caption }} |
39 | 24 | </caption> |
40 | 25 | {% endif %} |
|
43 | 28 | {% if params.thList %} |
44 | 29 | {% set thGroups = params.thList %} |
45 | 30 | {% else %} |
46 | | - {% set thGroups = [ { ths: params.ths } ] %} |
| 31 | + {% set thGroups = [ { "ths": params.ths } ] %} |
47 | 32 | {% endif %} |
48 | 33 | {% for headerCols in thGroups %} |
49 | 34 | <tr class="ons-table__row"> |
|
0 commit comments