{% block block_flink_cms_grid %}
{% set breakpoints = {
"xs": theme_config('breakpoint.xs') | default(0),
"sm": theme_config('breakpoint.sm') | default(576),
"md": theme_config('breakpoint.md') | default(768),
"lg": theme_config('breakpoint.lg') | default(992),
"xl": theme_config('breakpoint.xl') | default(1200),
"xxl": theme_config('breakpoint.xxl') | default(1400)
} %}
{% set gridSettings = block.customFields.flinkCmsGrid.gridSettings %}
{% set gridElements = block.customFields.flinkCmsGrid.elements %}
{% set style %}
{% set prevBreakpoint = "" %}
{% for breakpoint, minWidth in breakpoints %}
{% if gridSettings[breakpoint] and gridElements[breakpoint] %}
{% set breakpointStyle %}
{% set addColPx = gridSettings[breakpoint].columngap matches '/^\\d+$/' %}
{% set addRowPx = gridSettings[breakpoint].rowgap matches '/^\\d+$/' %}
{% set gridStyle %}
{% if not prevBreakpoint or gridSettings[breakpoint].columns != gridSettings[prevBreakpoint].columns %}
grid-template-columns: repeat({{ gridSettings[breakpoint].columns }}, minmax(0,1fr));
{% endif %}
{% if not prevBreakpoint or gridSettings[breakpoint].columngap != gridSettings[prevBreakpoint].columngap %}
grid-column-gap: {{ gridSettings[breakpoint].columngap }}{% if addColPx %}px{% endif %};
{% endif %}
{% if not prevBreakpoint or gridSettings[breakpoint].rowgap != gridSettings[prevBreakpoint].rowgap %}
grid-row-gap: {{ gridSettings[breakpoint].rowgap }}{% if addRowPx %}px{% endif %};
{% endif %}
{% endset %}
{% if gridStyle | trim %}
.flink-cms-grid--{{ block.id }} {
{{ gridStyle }}
}
{% endif %}
{% for slot, gridArea in gridElements[breakpoint] %}
{% if not prevBreakpoint or gridArea != gridElements[prevBreakpoint][slot] %}
.flink-cms-grid--{{ block.id }} .flink-cms-grid-slot--slot_{{ slot }} {
grid-area: {{ gridArea }};
}
{% endif %}
{% endfor %}
{% endset %}
{% if breakpointStyle | trim %}
{% if minWidth %}@media (min-width: {{ minWidth }}px) { {% endif %}
{{ breakpointStyle }}
{% if minWidth %} } {% endif %}
{% endif %}
{% set prevBreakpoint = breakpoint %}
{% endif %}
{% endfor %}
{% endset %}
{% set style = style | trim | split(' ') | filter(v => v | trim is not empty) | join('') %}
<style>{{ "\n" }}{{ style }}{{ "\n" }}</style>
<div class="col-12">
<div class="flink-cms-grid flink-cms-grid--{{ block.id }}">
{% for element in block.slots.getElements() %}
{% block block_flink_cms_grid_slot %}
<div class="flink-cms-grid-slot flink-cms-grid-slot--{{ element.slot }}">
{% sw_include "@Storefront/storefront/element/cms-element-" ~ element.type ~ ".html.twig" ignore missing %}
</div>
{% endblock %}
{% endfor %}
</div>
</div>
{% endblock %}