<?php

namespace Drupal\paragraphs\Element;

use Drupal\Core\Render\Attribute\RenderElement;
use Drupal\Core\Render\Element\Operations;
use Drupal\Core\Render\Element\RenderElementBase;

/**
 * {@inheritdoc}
 *
 * @RenderElement("paragraph_operations")
 */
#[RenderElement('paragraph_operations')]
class ParagraphOperations extends Operations {

  /**
   * {@inheritdoc}
   */
  public function getInfo() {
    return ['#theme' => 'links__dropbutton__operations__paragraphs'] + parent::getInfo();
  }

  /**
   * {@inheritdoc}
   */
  public static function preRenderDropbutton($element) {
    $element = parent::preRenderDropbutton($element);

    // Attach #ajax events if title is a render array.
    foreach ($element['#links'] as &$link) {
      if (isset($link['title']['#ajax'])) {
        $link['title'] = RenderElementBase::preRenderAjaxForm($link['title']);
      }
    }

    return $element;
  }

}
