3 namespace Drupal\entity_browser;
5 use Drupal\Component\Utility\NestedArray;
6 use Drupal\Core\Plugin\PluginBase;
7 use Drupal\Core\Form\FormStateInterface;
10 * Base class for widget selector plugins.
12 abstract class WidgetSelectorBase extends PluginBase implements WidgetSelectorInterface {
14 use PluginConfigurationFormTrait;
28 protected $widgets_ids;
31 * ID of the default widget.
35 protected $defaultWidget;
40 public function __construct($configuration, $plugin_id, $plugin_definition) {
41 parent::__construct($configuration, $plugin_id, $plugin_definition);
42 $this->setConfiguration($configuration);
43 $this->widget_ids = isset($this->configuration['widget_ids']) ? $this->configuration['widget_ids'] : [];
49 public function defaultConfiguration() {
56 public function getConfiguration() {
57 return array_diff_key(
66 public function setConfiguration(array $configuration) {
67 $this->configuration = NestedArray::mergeDeep(
68 $this->defaultConfiguration(),
76 public function calculateDependencies() {
83 public function label() {
90 protected function getDefaultWidget() {
91 return $this->defaultWidget;
97 public function setDefaultWidget($widget) {
98 $this->defaultWidget = $widget;
104 public function validate(array &$form, FormStateInterface $form_state) {}
109 public function submit(array &$form, FormStateInterface $form_state) {}