You are here

class Extras in GridStack 8.2

Provides the extras styles.

Plugin annotation


@GridStackStylizer(
  id = "extras",
  label = @Translation("Extras")
)

Hierarchy

Expanded class hierarchy of Extras

File

src/Plugin/gridstack/stylizer/Extras.php, line 17

Namespace

Drupal\gridstack\Plugin\gridstack\stylizer
View source
class Extras extends Wrapper {

  /**
   * Returns utilities settings.
   */
  public static function options() {
    return [
      'background' => 'BG (image as background)',
      'contentless' => 'BG/ Image only mode (contentless)',
      'ete' => 'BG/ Image spans edge to egde (EtE)',
      'overlay' => 'BG color overlays BG/ Image',
      'shrink' => 'BG/ Image shrink (not for EtE)',
      'parallax' => 'BG/ Image simple parallax',
      'parallax-fs' => 'Make the above parallax full screen',
    ];
  }

  /**
   * {@inheritdoc}
   *
   * @todo implements when having enough consistency.
   */
  public function defaultConfiguration() {
    $config = [];
    foreach (array_keys(static::options()) as $key) {
      $config[$key] = '';
    }
    return $config;
  }

  /**
   * Provides gridstack skins and libraries.
   */
  public function attach(array &$load, array $attach = []) {
    parent::attach($load, $attach);
    if ($this
      ->getStyle('parallax', $attach) && empty($attach['_ipe'])) {
      $load['library'][] = 'gridstack/parallax';
    }
  }

  /**
   * Provides extras form elements.
   */
  protected function extrasElement($optionset, FormStateInterface $form_state, array $settings, array $extras = []) {
    $context = $settings['_scope'];
    $options = [];
    foreach (static::options() as $key => $title) {
      if ($this
        ->isWideRegionOption($key) && empty($settings['_fullwidth'])) {
        continue;
      }
      if (in_array($key, [
        'shrink',
      ]) && !$optionset
        ->isFramework()) {
        continue;
      }
      $options[$key] = $this
        ->t('@title', [
        '@title' => $title,
      ]);
    }
    if ($context != GridStackDefault::ROOT) {
      unset($options['parallax'], $options['parallax-fs']);
    }
    $css_classes = [
      'form-wrapper--extras',
      'is-collapsible',
      'is-collapsed',
      'is-gs-fieldset',
    ];
    $values = $settings['extras'];
    return [
      '#type' => 'checkboxes',
      '#options' => $options,
      '#title' => $this
        ->t('Applicable for image above, not blocks'),
      '#default_value' => empty($values) ? [] : array_values($values),
      '#attributes' => [
        'class' => $css_classes,
      ],
      '#after_build' => [
        [
          $this,
          'afterBuildExtras',
        ],
      ],
      '#region' => $context,
      '#settings' => $settings,
    ];
  }

  /**
   * Checks if an option should be for 12 column wide.
   */
  protected function isWideRegionOption($key) {
    return in_array($key, [
      'ete',
      'contentless',
      'parallax',
      'parallax-fs',
    ]);
  }

  /**
   * Provides preview classes.
   */
  public function afterBuildExtras(array $element) {
    $settings = $element['#settings'];
    $use_background = $this
      ->getStyle('background', $settings);
    $removed = [
      'form-wrapper--extras',
      'is-collapsible',
      'is-collapsed',
      'is-gs-fieldset',
    ];
    foreach (Element::children($element) as $key) {
      $element[$key]['#attributes']['data-gs-extras-region'] = $element['#region'];
      $element[$key]['#attributes']['data-gs-extras-region-class'] = 'is-gs-' . str_replace('_', '-', $key);
      $element[$key]['#attributes']['data-gs-bg-selector'] = $use_background ? '.b-gs .media__element' : '.b-gs';
      if ($key == 'parallax') {
        $element[$key]['#description'] = $this
          ->t('Recipes: BG, Min height, EtE at odd rows, non-EtE even, or vice versa, for simple parallax. Use non-BG for regular transitions. Plus few more adjustments.');
      }

      // Unfortunately container classes are also inherited by each item.
      if (isset($element[$key]['#attributes']['class'])) {
        $classes = $element[$key]['#attributes']['class'];
        $classes = array_diff($classes, $removed);
        $element[$key]['#attributes']['class'] = $classes;
      }
    }
    return $element;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Animation::animationElement protected function Provides animation form elements.
Animation::animations public static function Returns utilities settings.
Background::getBackgroundColor protected function Returns the background colors grouped by the given key, w/o text colors.
Classes::$opacity protected property The black opacity for backgrounds or colors.
Classes::afterBuildPreset public function Provides preview classes.
Classes::classElement protected function Returns common class element.
Classes::classesElement protected function
Classes::getBasePresetOptions protected function
Classes::getInternalClasses public function Returns the module feature CSS classes, not available at CSS frameworks.
Classes::getPresetOptions protected function
Classes::getPresetRowOptions protected function
Classes::rowClassesElement protected function
Color::colorElement protected function Provides extras form elements.
Color::getTextColor protected function Returns the text colors grouped by the given key.
Color::paletteElement protected function Return the color palette element.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
Extras::afterBuildExtras public function Provides preview classes.
Extras::attach public function Provides gridstack skins and libraries. Overrides GridStackStylizerPluginBase::attach 1
Extras::defaultConfiguration public function @todo implements when having enough consistency. Overrides GridStackPluginBase::defaultConfiguration
Extras::extrasElement protected function Provides extras form elements.
Extras::isWideRegionOption protected function Checks if an option should be for 12 column wide.
Extras::options public static function Returns utilities settings.
GridStackPluginBase::$breakpoints protected property The layout breakpoints.
GridStackPluginBase::$cellHeight protected property The optionset cell height.
GridStackPluginBase::$columns protected property The breakpoint columns.
GridStackPluginBase::$currentUser protected property The current user.
GridStackPluginBase::$manager protected property The gridstack manager service.
GridStackPluginBase::$minWidth protected property The optionset min-width.
GridStackPluginBase::$optionset protected property The gridstack optionset.
GridStackPluginBase::$verticalMargin protected property The optionset vertical margin.
GridStackPluginBase::config protected function Returns gridstack config shortcut.
GridStackPluginBase::get public function
GridStackPluginBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
GridStackPluginBase::getOptionset public function
GridStackPluginBase::getSetting public function
GridStackPluginBase::label public function Returns the plugin label. Overrides GridStackPluginInterface::label
GridStackPluginBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
GridStackPluginBase::setOptionset public function Sets the optionset.
GridStackPluginBase::setSetting public function
GridStackStylizerPluginBase::$blazyEntity protected property The blazy entity service to support Media Library at Layout Builder pages.
GridStackStylizerPluginBase::getVariantUniqueId protected function Returns unique variant ID.
GridStackStylizerPluginBase::validateConfigurationForm public function 1
Media::$fieldName protected property The field name to store media.
Media::buildMedia public function Returns the formatted media as Blazy CSS background.
Media::create public static function Creates an instance of the plugin. Overrides GridStackStylizerPluginBase::create
Media::getFieldName public function Returns the selected field name.
Media::mediaSettings protected function Returns the data understood by Blazy for CSS background.
Media::prepareMedia protected function Returns the formatted media as Blazy output.
Media::prepareOverlay protected function Returns the media overlay.
Media::setFieldName public function Sets the field name.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
Range::rangeElement protected function Returns the range element.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
StyleBase::attributes public function Provides both CSS grid and js-driven attributes configurable via UI.
StyleBase::cssRule protected function Returns the CSS rule with a selector and sub selector if available.
StyleBase::extraAttributes protected function Modifies any attributes relevant to use backgrounds.
StyleBase::getAnimation public function Returns an animation.
StyleBase::getColor protected function Checks for valid color excluding black (#000000) by design.
StyleBase::getColors protected function Returns available colors.
StyleBase::getSelector public function Returns selectors and sub-selectors with context related to box levels.
StyleBase::getStyle public function Returns a style.
StyleBase::getVariantClass public function Returns the variant class.
StyleBase::hasColors protected function Checks if it has colors.
StyleBase::inlineStyle public function Modifies inline style to not nullify others.
StyleBase::parseAttributes protected function Parses the string attribute: role|navigation,data-something|some value.
StyleBase::parseClasses protected function Parses the given string classes.
StyleBase::parseStyles public function Builds inline styles if so required with multiple instances on a page.
StyleBase::styleElement protected function Return the style element.
Wrapper::wrapperElement protected function