{#
/**
 * @file
 * Figure with Twicpics component.
 *
 * @param string $twic_domain
 *   The Twicpics domain to use.
 * @param string $twic_path
 *   The Twicpics path to use.
 * @param object $twic_transform
 *   Custom transforms for Twicpics.
 * @param string $twic_placeholder
 *   Define how the placeholder should be treated. Possible values: meancolor, maincolor, preview.
 */
#}

{% extends '@ui-pkg/Figure/Figure.twig' %}

{% set twic_param = 'v1' %}
{% if twic_transform is defined %}
  {% set formatted_transform = [] %}
  {% for key, value in twic_transform %}
    {% set formatted_transform = formatted_transform|merge(['%s=%s'|format(key, value)]) %}
  {% endfor %}
  {% set formatted_transform = formatted_transform|join('/') %}

  {% set twic_param = 'v1/%s'|format(formatted_transform) %}
  {% set attr = (attr ?? {})|merge({ data_option_transform: formatted_transform }) %}
{% endif %}

{% set src = twig_toolkit_url(src).withQueryParameter('twic', twic_param).withScheme('https') %}

{% if twic_domain is defined %}
  {% set src = src.withHost(twic_domain) %}
  {% set attr = (attr ?? {})|merge({ data_option_domain: twic_domain }) %}
{% endif %}

{% if twic_path is defined %}
  {% set src = src.withPath(twic_path ~ src.getPath()) %}
  {% set attr = (attr ?? {})|merge({ data_option_path: twic_path }) %}
{% endif %}

{% if twic_placeholder is defined %}
  {% if twic_placeholder in ['preview', 'meancolor', 'maincolor', 'blurhash', 'blank'] %}
    {% set placeholder = src.withQueryParameter('twic', '%s/output=%s'|format(twic_param, twic_placeholder)) %}
  {% else %}
    {% set formatted_placeholder_transform = [] %}
    {% for key, value in twic_placeholder %}
      {% set key = key|replace({ _: '-' }) %}
      {% set formatted_placeholder_transform = formatted_placeholder_transform|merge(['%s=%s'|format(key, value)]) %}
    {% endfor %}
    {% set formatted_placeholder_transform = formatted_placeholder_transform|join('/') %}

    {% set placeholder = src.withQueryParameter('twic', '%s/%s'|format(twic_param, formatted_placeholder_transform)) %}
  {% endif %}
{% endif %}

