setConfiguration($configuration); } /** * {@inheritdoc} */ public function build(array $regions) { // Ensure $build only contains defined regions and in the order defined. $build = []; foreach ($this->getPluginDefinition()->getRegionNames() as $region_name) { if (array_key_exists($region_name, $regions)) { $build[$region_name] = $regions[$region_name]; } } $build['#settings'] = $this->getConfiguration(); $build['#layout'] = $this->pluginDefinition; $build['#theme'] = $this->pluginDefinition->getThemeHook(); if ($library = $this->pluginDefinition->getLibrary()) { $build['#attached']['library'][] = $library; } return $build; } /** * {@inheritdoc} */ public function getConfiguration() { return $this->configuration; } /** * {@inheritdoc} */ public function setConfiguration(array $configuration) { $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $configuration); } /** * {@inheritdoc} */ public function defaultConfiguration() { return []; } /** * {@inheritdoc} */ public function calculateDependencies() { return []; } /** * {@inheritdoc} * * @return \Drupal\Core\Layout\LayoutDefinition */ public function getPluginDefinition() { return parent::getPluginDefinition(); } }