blazy-8.x-2.x-dev/modules/blazy_layout/src/BlazyLayoutDefault.php
modules/blazy_layout/src/BlazyLayoutDefault.php
<?php namespace Drupal\blazy_layout; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\blazy\BlazyDefault; /** * Defines shared plugin default settings for field formatter and Views style. */ class BlazyLayoutDefault { /** * Defines region count. */ const REGION_COUNT = 9; /** * Returns display style options, different from core Blazy for layouts. */ public static function displayStyle() { return [ 'column' => 'CSS3 Columns', 'grid' => 'Grid Foundation', 'flexbox' => 'Flexbox', 'nativegrid' => 'Native Grid', ]; } /** * Returns sensible default options common for entities lacking of UI. */ public static function entitySettings() { return BlazyDefault::entitySettings(); } /** * Returns the layout settings. */ public static function layoutSettings() { return [ 'id' => '', 'regions' => [], 'count' => static::REGION_COUNT, 'style' => 'nativegrid', 'grid' => '4x4 4x3 2x2 2x4 2x2 2x3 2x3 4x2 4x2', 'grid_medium' => '3', 'grid_small' => '1', 'grid_auto_rows' => '', 'align_items' => '', ] + self::sharedSettings(); } /** * Returns the sub-layout settings. */ public static function sublayoutSettings() { return [ 'ete' => FALSE, 'gapless' => FALSE, 'padding' => '', 'max_width' => '', ]; } /** * Returns the media settings. */ public static function layoutMediaSettings() { return [ 'id' => '', 'background' => TRUE, 'media_switch' => '', 'image_style' => '', 'responsive_image_style' => '', 'box_caption' => '', 'box_style' => '', 'box_media_style' => '', 'ratio' => 'fluid', 'link' => '', // @todo remove after an update. 'use_player' => FALSE, ]; } /** * Returns the region layout settings. */ public static function regionSettings() { return [ 'label' => '', 'settings' => self::sharedSettings(), ]; } /** * Returns the region layout settings. */ public static function styleSettings() { return [ 'background_color' => '', 'background_opacity' => '1', 'overlay_color' => '', 'overlay_opacity' => '1', 'heading_color' => '', 'heading_opacity' => '1', 'text_color' => '', 'text_opacity' => '1', 'link_color' => '', 'link_hover_color' => '', ]; } /** * Returns align items options. */ public static function aligItems() { return [ 'normal' => 'normal', 'stretch' => 'stretch', 'center' => 'center', 'start' => 'start', 'end' => 'end', 'flex-start' => 'flex-start', 'flex-end' => 'flex-end', 'self-start' => 'self-start', 'self-end' => 'self-end', 'baseline' => 'baseline', 'first baseline' => 'first baseline', 'last baseline' => 'last baseline', 'safe center' => 'safe center', 'unsafe center' => 'unsafe center', 'inherit' => 'inherit', 'initial' => 'initial', 'revert' => 'revert', 'revert-layer' => 'revert-layer', 'unset' => 'unset', ]; } /** * Returns the main wrapper Layout Builder select options. */ public static function mainWrapperOptions() { return [ 'div' => 'Div', 'article' => 'Article', 'aside' => 'Aside', 'main' => 'Main', 'footer' => 'Footer', 'section' => 'Section', ]; } /** * Returns wrapper Layout Builder select options. */ public static function regionWrapperOptions() { return self::mainWrapperOptions() + [ 'figure' => 'Figure', 'header' => 'Header', ]; } /** * Returns layout id. */ public static function layoutId($id) { return "b-layout--{$id}"; } /** * Returns layout id. */ public static function layoutLabel($label) { return "Blazy: {$label}"; } /** * Returns region ID. */ public static function regionId($id): string { return "blzyr_{$id}"; } /** * Returns region label. */ public static function regionLabel($id): string { return "Region {$id}"; } /** * Returns region label. */ public static function regionTranslatableLabel($label): TranslatableMarkup { return new TranslatableMarkup('@label', ['@label' => $label], [ 'context' => 'layout_region', ]); } /** * Returns the shared settings. */ public static function sharedSettings() { return [ 'wrapper' => 'div', 'attributes' => '', 'classes' => '', 'row_classes' => '', 'styles' => [ 'colors' => self::styleSettings(), 'layouts' => self::sublayoutSettings(), 'media' => self::layoutMediaSettings(), ], ]; } }