| RelationGroup | RelationManagerConfiguration> */ public function getRelationManagers(): array { $managers = $this->getResource()::getRelations(); return array_filter( $managers, function (string | RelationGroup | RelationManagerConfiguration $manager): bool { if ($manager instanceof RelationGroup) { return (bool) count($manager->ownerRecord($this->getRecord())->pageClass(static::class)->getManagers()); } return $this->normalizeRelationManagerClass($manager)::canViewForRecord($this->getRecord(), static::class); }, ); } /** * @param class-string | RelationManagerConfiguration $manager * @return class-string */ protected function normalizeRelationManagerClass(string | RelationManagerConfiguration $manager): string { if ($manager instanceof RelationManagerConfiguration) { return $manager->relationManager; } return $manager; } public function mountHasRelationManagers(): void { $managers = $this->getRelationManagers(); if (array_key_exists($this->activeRelationManager, $managers) || $this->hasCombinedRelationManagerTabsWithContent()) { return; } $this->activeRelationManager = array_key_first($this->getRelationManagers()) ?? null; } public function hasCombinedRelationManagerTabsWithContent(): bool { return false; } public function getContentTabLabel(): ?string { return null; } }