Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
IslandType
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 2
156
0.00% covered (danger)
0.00%
0 / 1
 description
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
72
 regions
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3declare(strict_types=1);
4
5namespace Drupal\display_builder\Island;
6
7use Drupal\Core\StringTranslation\TranslatableMarkup;
8
9/**
10 * List the island types for display builder.
11 */
12enum IslandType: string {
13
14  // Islands acting as part of view island.
15  case Library = 'library';
16  case Contextual = 'contextual';
17  case View = 'view';
18  case Button = 'button';
19  case Menu = 'menu';
20  case Floating = 'floating';
21
22  /**
23   * Get the string description for this enum.
24   *
25   * @param string $type
26   *   The enum string name.
27   *
28   * @return \Drupal\Core\StringTranslation\TranslatableMarkup
29   *   The enum string description.
30   */
31  public static function description(string $type): TranslatableMarkup {
32    return match ($type) {
33      self::View->value => new TranslatableMarkup('Panels shown as a main area tab or as a sidebar.'),
34      self::Library->value => new TranslatableMarkup('Panels available as tab in the Library panel.'),
35      self::Button->value => new TranslatableMarkup('Toolbar buttons allowing direct actions in the builder.'),
36      self::Contextual->value => new TranslatableMarkup('Panels visible only when the a source is selected.'),
37      self::Menu->value => new TranslatableMarkup('Items available in the contextual menu.'),
38      self::Floating->value => new TranslatableMarkup('Floating controls, attached to one or more View panels, only visible while an attached panel is the active main tab.'),
39      default => new TranslatableMarkup('Unknown island type.'),
40    };
41  }
42
43  /**
44   * Get the available regions by type.
45   *
46   * @return array
47   *   The type regions as key => description.
48   */
49  public static function regions(string $type): array {
50    return match ($type) {
51      self::View->value => [
52        'sidebar' => new TranslatableMarkup('Sidebar'),
53        'main' => new TranslatableMarkup('Main area (Tabs)'),
54      ],
55      self::Button->value => [
56        'start' => new TranslatableMarkup('Start'),
57        'end' => new TranslatableMarkup('End'),
58      ],
59      default => [],
60    };
61  }
62
63}