+++ /dev/null
-<?php
-
-namespace Drupal\paragraphs\Element;
-
-use Drupal\Core\Render\Element;
-use Drupal\Core\Render\Element\RenderElement;
-
-/**
- * Provides a render element for a paragraphs actions.
- *
- * Paragraphs actions can have two type of actions
- * - actions - this are default actions that are always visible.
- * - dropdown_actions - actions that are in dropdown sub component.
- *
- * Usage example:
- *
- * @code
- * $form['actions'] = [
- * '#type' => 'paragraphs_actions',
- * 'actions' => $actions,
- * 'dropdown_actions' => $dropdown_actions,
- * ];
- * $dropdown_actions['button'] = array(
- * '#type' => 'submit',
- * );
- * @endcode
- *
- * @FormElement("paragraphs_actions")
- */
-class ParagraphsActions extends RenderElement {
-
- /**
- * {@inheritdoc}
- */
- public function getInfo() {
- $class = get_class($this);
-
- return [
- '#pre_render' => [
- [$class, 'preRenderParagraphsActions'],
- ],
- '#theme' => 'paragraphs_actions',
- ];
- }
-
- /**
- * Pre render callback for #type 'paragraphs_actions'.
- *
- * @param array $element
- * Element arrar of a #type 'paragraphs_actions'.
- *
- * @return array
- * The processed element.
- */
- public static function preRenderParagraphsActions(array $element) {
- $element['#attached']['library'][] = 'paragraphs/drupal.paragraphs.actions';
-
- if (!empty($element['dropdown_actions'])) {
- foreach (Element::children($element['dropdown_actions']) as $key) {
- $dropdown_action = &$element['dropdown_actions'][$key];
- if (isset($dropdown_action['#ajax'])) {
- $dropdown_action = RenderElement::preRenderAjaxForm($dropdown_action);
- }
- if (empty($dropdown_action['#attributes'])) {
- $dropdown_action['#attributes'] = ['class' => ['paragraphs-dropdown-action']];
- }
- else {
- $dropdown_action['#attributes']['class'][] = 'paragraphs-dropdown-action';
- }
- }
- }
-
- return $element;
- }
-
-}