{% import 'admin-bar/_plugin-widgets-macros' as pluginWidgets %}

{% if entry ?? false %}
  {% set seomaticMetaGql = gql('{
    entry(id: "' ~ entry.id ~ '", siteId: "' ~ entry.siteId ~ '") {
      seomatic(asArray: true) {
        metaTitleContainer
        metaTagContainer
        metaLinkContainer
        metaScriptContainer
        metaJsonLdContainer
        metaSiteVarsContainer
      }
    }
  }').data.entry.seomatic %}

  {% set metaTitleContainer = seomaticMetaGql.metaTitleContainer|json_decode %}
  {% set metaTagContainer = seomaticMetaGql.metaTagContainer|json_decode %}
  {% set metaLinkContainer = seomaticMetaGql.metaLinkContainer|json_decode %}
  {% set metaJsonLdContainer = seomaticMetaGql.metaJsonLdContainer|json_decode %}

  {% set extrasList = [] %}

  {% set mainEntity = metaJsonLdContainer.mainEntityOfPage['@type'] ?? null %}
  {% if mainEntity ?? false %}
    {% set extrasList = extrasList|merge([['widget-seomatic-main-entity'|t('admin-bar', language = userLanguage), mainEntity]]) %}
  {% endif %}

  {% set meta = {
    canonical: metaLinkContainer.canonical.href ?? null,
    description: metaTagContainer.description.content ?? null,
    extrasList,
    imageAlt: metaTagContainer['og:image:alt'].content ?? null,
    imageUrl: metaTagContainer['og:image'].content ?? null,
    mainEntity: metaJsonLdContainer.mainEntityOfPage['@type'] ?? null,
    title: metaTitleContainer.title.title ?? null,
  } %}

  <admin-bar-button class="admin-bar-widget" style="--admin-bar-icon-width: 1.5rem">
    {{ svg('@nystudio107/seomatic/icon-mask.svg')|attr({ class: 'icon', slot: 'before-label' }) }}
    {{ pluginWidgets.widgetBadgeAndLabel(null, widgets[pluginHandle].name, displayWidgetLabels) }}
    <div slot="popover">
      {{ pluginWidgets.seoMeta(meta) }}
    </div>
  </admin-bar-button>
{% endif %}
