{% from '@bonniernews/dn-design-system-web/components/teaser-card/teaser-card.njk' import TeaserCard %}
{% from '@bonniernews/dn-design-system-web/components/teaser-dot/teaser-dot.njk' import TeaserDot %}
{% from '@bonniernews/dn-design-system-web/components/teaser-footer/teaser-footer.njk' import TeaserFooter %}
{% from '@bonniernews/dn-design-system-web/components/icon-sprite/icon-sprite.njk' import IconUse %}

{% macro TeaserLarge(params) %}
  {% set componentClassName = "ds-teaser" %}
  {% set classNamePrefix = componentClassName + "--" %}

  {% if params.isItalicHeadline %}
    {% set italicsClass = "ds-teaser--large-big-italic" if params.isLargeHeadline and params.areaType !== "right" else "ds-teaser--large-italic" %}
  {% endif %}

  {% set extraClasses = [
    "ds-teaser--large",
    classNamePrefix + params.variant if params.variant,
    classNamePrefix + 'hide-top-border' if params.mediaHtml,
    italicsClass if italicsClass,
    params.classNames if params.classNames
  ] | join(" ") %}

  {% call TeaserCard({
    targetLink: params.targetLink,
    areaType: params.areaType,
    theme: params.theme,
    attributes: params.attributes,
    classNames: extraClasses
  }) %}
    {% if params.mediaHtml %}
      {% set mediaClass = [
        componentClassName + '__media'
      ] | join(" ") %}
      <div class="{{ mediaClass }}">
        {{ params.mediaHtml | safe }}
      </div>
    {% endif %}

    <div class="{{ componentClassName + '__content'}}">
      <div class="ds-teaser__content-inner">
        {% if params.vignette %}
          <div class="ds-teaser__vignette">
            {% if params.variant === "podcast" %}
              {{ IconUse({ icon: "headphones" }) }}
            {% endif %}
            {{ params.vignette }}
          </div>
        {% endif %}
        <h2 class="ds-teaser__title">
          {% if params.highlight %}
            <span class="{{ componentClassName + '__highlight'}}">{{ params.highlight }}</span>
          {% endif %}
          {{ params.title }}
        </h2>

        {% if params.text and params.areaType !== "right" %}
          <p class="{{ componentClassName + '__text' }}">
            {% if params.sticker %}
              {{ TeaserDot({ flashing: params.isFlashingDot }) }}
              <span class="ds-teaser__sticker">
                {{ params.sticker }}
              </span>
            {% endif %}
            {{ params.text }}
          </p>
        {% endif %}
        {% if params.variant === "podcast" %}
          {{ TeaserFooter({
            variant: 'podcast',
            publicationTime: params.publicationTime,
            duration: params.duration
          }) }}
        {% elif params.publicationTime %}
          {{ TeaserFooter({
            variant: 'informationText',
            publicationTime: params.publicationTime,
            sectionName: params.sectionName
          }) }}
        {% endif %}
      </div>

      {% if params.bylineHtml %}
        <div class="{{ componentClassName + '__byline'}}">
          {{ params.bylineHtml | safe }}
        </div>
      {% endif %}
    </div>
  {% endcall %}
{% endmacro %}
