. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Utils; use Espo\Core\Utils\Theme\MetadataProvider; class ThemeManager { private string $defaultName = 'Espo'; private string $defaultLogoSrc = 'client/img/logo.svg'; public function __construct( private Config $config, private Metadata $metadata, private MetadataProvider $metadataProvider, ) {} public function getName(): string { return $this->config->get('theme') ?? $this->defaultName; } public function getStylesheet(): string { return $this->metadataProvider->getStylesheet($this->getName()); } public function getLogoSrc(): string { return $this->metadata->get(['themes', $this->getName(), 'logo']) ?? $this->defaultLogoSrc; } public function isDark(): bool { return $this->metadataProvider->isDark($this->getName()); } }