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