Вы можете добавить себе функцию, в которой будете сопоставлять тип и компонент, а так же сразу же провайдить его как entry component:
{ provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: component, multi: true },
{ provide: MY_TOKEN, useValue: { type, component }, multi: true }
После чего в любом сервисе подтякивать весь слинкованный список по этому токену, и уже затем как угодно доставать их:
constructor(
@Inject(MY_TOKEN) links)
Если используете ngxd, то есть уже готовый pipe и resolver, которые смогут помочь, и спрятать все вот в такую конструкцию:
*ngxComponentOutlet=“resolver | resolve: entity”