{% macro boolean(value) %}
    {% if value %}
        {% trans %}bool.true{% endtrans %}
    {% else %}
        {% trans %}bool.false{% endtrans %}
    {% endif %}
{% endmacro %}

{% macro file_extension_to_fa_icon(ext) %}
    {% if ext in ['jpeg', 'jpg', 'gif', 'png', 'tiff', 'tif', 'webp', 'bmp', 'svg'] %} {# Images #}
        fa-file-image
    {% elseif ext in ['pdf'] %} {# PDFs #}
        fa-file-pdf
    {% elseif ext in ['txt', 'md', 'rtf'] %} {# Text files #}
        fa-file-alt
    {% elseif ext in ['csv'] %} {# CSV files #}
        fa-file-csv
    {% elseif ext in ['doc', 'docx', 'odt'] %} {# Documents #}
        fa-file-word
    {% elseif ext in ['zip', 'rar', 'bz2', 'tar', '7z', 'gz'] %}
        fa-file-archive
    {% elseif ext in ['mp3', 'wav', 'aac', 'm4a', 'wma'] %}
        fa-file-audio
    {% elseif ext in ['ppt', 'pptx', 'odp'] %}
        fa-file-powerpoint
    {% elseif ext in ['xls', 'xlsx', 'ods'] %}
        fa-file-excel
    {% elseif ext in ['php', 'xml', 'html', 'js', 'ts', 'htm', 'c', 'cpp'] %}
        fa-file-code
    {% elseif ext in ['webm', 'avi', 'mp4', 'mkv', 'wmv'] %} {# Videos#}
        fa-file-video
    {% else %}
        fa-file
    {% endif %}
{% endmacro %}

{% macro attachment_icon(attachment, attachment_helper, class = "fa-fw fas fa-3x", link = true) %}
    {% if not attachment_helper or attachment_helper.fileExisting(attachment) %}
        <a target="_blank"  data-no-ajax href="{% if link %}{{ attachment|entityURL('file_view') }}{% endif %}">
            {% if attachment.picture %}
                <img class="hoverpic" src="{{ attachment|entityURL('file_view') }}">
            {% else %}
                <i class="text-dark {{ class }} {{ _self.file_extension_to_fa_icon(attachment.extension) }}"></i>
            {% endif %}
        </a>
    {% elseif not attachment_helper.fileExisting(attachment) %}
        <i class="{{ class }} fa-exclamation-triangle text-danger"></i>
    {% endif %}
{% endmacro %}

{% macro string_to_tags(string, class="badge badge-info") %}
    {% for tag in string|split(',') %}
        <a href="{{ url('part_list_tags', {'tag': tag | trim}) }}" class="{{ class }}" >{{ tag | trim }}</a>
    {% endfor %}
{% endmacro %}

{% macro m_status_to_badge(status, class="badge") %}
    {% if status is not empty %}
        {% set color = " badge-secondary" %}

        {% if status == "active" %}
            {% set color = " badge-success" %}
        {% elseif status == "nrfnd" %}
            {% set color = " badge-warning" %}
        {% elseif status == "eol" %}
            {% set color = " badge-warning" %}
        {% elseif status == "discontinued" %}
            {% set color = " badge-danger" %}
        {% endif %}

        <span class="{{ class ~ color}}" title="{{ ("m_status." ~ status ~ ".help") | trans }}">
            <i class="fa-fw fas fa-info-circle"></i>
            {{ ("m_status." ~ status) | trans }}
        </span>
    {% endif %}
{% endmacro %}

{% macro structural_entity_link(entity, link_type = "list_parts") %}
    {# @var entity \App\Entity\Base\StructuralDBElement #}
    {% if entity %}
        <ul class="structural_link d-inline">
            {% for e in entity.pathArray %}
                <li>
                    {% if link_type is not empty %}
                        <a href="{{ e | entityURL(link_type) }}">{{ e.name }}</a>
                    {% else %}
                        {{ e.name }}
                    {% endif %}
                </li>
            {% endfor %}
        </ul>
    {% else %}
        -
    {% endif %}
{% endmacro %}

{% macro breadcrumb_entity_link(entity, link_type = "list_parts") %}
    <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            {% for e in entity.pathArray %}
                <li class="breadcrumb-item {% if loop.last %}active{% endif %}">
                    {% if link_type is not empty and not loop.last %}
                        <a href="{{ e | entityURL(link_type) }}">{{ e.name }}</a>
                    {% else %}
                        {{ e.name }}
                    {% endif %}
                </li>
            {% endfor %}
        </ol>
    </nav>
{% endmacro %}