import { Component } from '@angular/core'; import { focusShadow } from '../../../../animations/focus'; import { ViewMode } from '../../../../../core/shared/view-mode.model'; import { listableObjectComponent } from '../../../../object-collection/shared/listable-object/listable-object.decorator'; import { SearchResultGridElementComponent } from '../../search-result-grid-element.component'; import { Item } from '../../../../../core/shared/item.model'; import { ItemSearchResult } from '../../../../object-collection/shared/item-search-result.model'; import { getItemPageRoute } from '../../../../../item-page/item-page-routing-paths'; import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; import { TruncatableService } from '../../../../truncatable/truncatable.service'; import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; @listableObjectComponent('PublicationSearchResult', ViewMode.GridElement) @listableObjectComponent(ItemSearchResult, ViewMode.GridElement) @Component({ selector: 'ds-item-search-result-grid-element', styleUrls: ['./item-search-result-grid-element.component.scss'], templateUrl: './item-search-result-grid-element.component.html', animations: [focusShadow] }) /** * The component for displaying a grid element for an item search result of the type Publication */ export class ItemSearchResultGridElementComponent extends SearchResultGridElementComponent { /** * Route to the item's page */ itemPageRoute: string; dsoTitle: string; constructor( protected truncatableService: TruncatableService, protected bitstreamDataService: BitstreamDataService, private dsoNameService: DSONameService, ) { super(truncatableService, bitstreamDataService); } ngOnInit(): void { super.ngOnInit(); this.itemPageRoute = getItemPageRoute(this.dso); this.dsoTitle = this.dsoNameService.getHitHighlights(this.object, this.dso); } }