2020-03-16 14:09:46 +01:00
import { Component , Input } from "@angular/core" ;
import { EnvProperties } from "../../../utils/properties/env-properties" ;
import { Author } from "../../../utils/result-preview/result-preview" ;
import { AlertModal } from "../../../utils/modal/alert" ;
@Component ( {
selector : 'landing-header' ,
template : `
2020-05-20 22:34:29 +02:00
< div class = "title-section uk-margin-bottom" [ ngClass ] = " titleClass " >
2020-05-26 16:42:47 +02:00
< div >
2020-03-16 14:09:46 +01:00
< span * ngIf = "entityType" class = "uk-text-capitalize" >
{ { entityType } }
< / span >
2020-05-05 16:09:18 +02:00
< span * ngIf = "types && removeUnknown(types, true).length > 0" >
2020-07-21 11:17:50 +02:00
{ { ( entityType ? ' . ' : '' ) + removeUnknown ( types , true ) . join ( ' . ' ) } }
2020-03-16 14:09:46 +01:00
< / span >
< span >
< span * ngIf = "startDate || endDate" >
{ { ' . ' } }
< / span >
< span * ngIf = "startDate && !endDate" >
{ { 'from ' } }
< / span >
< span * ngIf = "!startDate && endDate" >
{ { 'until ' } }
< / span >
< span * ngIf = "startDate" >
{ { startDate | date : 'yyyy' } }
< / span >
< span * ngIf = "startDate && endDate" >
{ { ' - ' } }
< / span >
< span * ngIf = "endDate" >
{ { endDate | date : 'yyyy' } }
< / span >
< / span >
< span * ngIf = "status && status != ''" >
{ { ' . ' + status } }
< / span >
< span * ngIf = "year && year != ''" >
{ { ' . ' + year } }
< / span >
< span * ngIf = "embargoEndDate" >
. Embargo end date : { { embargoEndDate | date : 'dd MMM yyyy' } }
< / span >
2020-05-19 17:33:47 +02:00
< span * ngIf = "underCuration" >
. < span title = "{{buildCurationTooltip()}}"
uk - tooltip = "pos:bottom-right; delay:10; cls: under-curation-tooltip"
class = "under-curation" > Under curation < / span >
< / span >
2020-03-16 14:09:46 +01:00
< / div >
2020-11-12 10:51:34 +01:00
< showTitle [ titleName ] = " title " classNames = "uk-margin-remove-bottom" [ isH1 ] = " isTitleH1 " > < / showTitle >
2020-03-16 14:09:46 +01:00
< div * ngIf = "subTitle" >
2020-05-19 17:33:47 +02:00
< span class = "uk-text-muted" [ innerHTML ] = " subTitle " > < / span >
2020-03-16 14:09:46 +01:00
< / div >
2020-05-19 17:33:47 +02:00
< div * ngIf = "authors" class = "uk-margin-top" >
2020-03-16 14:09:46 +01:00
< showAuthors [ authorsLimit ] = " authorLimit " [ modal ] = " modal " [ showAll ] = " showAllAuthors " [ authors ] = " authors " [ small ] = " false " > < / showAuthors >
< / div >
< / div > `
} )
export class LandingHeaderComponent {
@Input ( ) entityType : string ;
@Input ( ) properties : EnvProperties ;
@Input ( ) types : string [ ] ;
@Input ( ) startDate : number ; // project landing
@Input ( ) endDate : number ; // project landing
@Input ( ) status : string ; // project landing
@Input ( ) year : string ;
@Input ( ) embargoEndDate : Date ;
@Input ( ) title : string ;
@Input ( ) subTitle : string ;
@Input ( ) authors : Author [ ] ;
@Input ( ) authorLimit : number = 30 ;
@Input ( ) showAllAuthors : boolean = true ;
@Input ( ) underCuration : boolean = false ;
@Input ( ) modal : AlertModal ;
2020-05-20 22:34:29 +02:00
@Input ( ) titleClass : string = null ;
2020-11-12 10:51:34 +01:00
@Input ( ) isTitleH1 :boolean = true ;
2020-03-16 14:09:46 +01:00
public removeUnknown ( array : string [ ] , type : boolean = false ) : string [ ] {
if ( type ) {
return this . removeDuplicates ( array ) . filter ( value = > value . toLowerCase ( ) !== 'unknown' ) ;
} else {
return array . filter ( value = > value . toLowerCase ( ) !== 'unknown' ) ;
}
}
public removeDuplicates ( array : string [ ] ) : string [ ] {
return array . filter ( value = > value . toLowerCase ( ) !== this . entityType ) ;
}
public buildCurationTooltip ( ) : string {
let tooltipContent : string = "<div class='uk-margin'>" ;
tooltipContent += "<h4>Record in preview</h4>" ;
tooltipContent += "<p>Bibliographic record accepted by the system, but not yet processed by <br> OpenAIRE tools for information quality improvement and de-duplication</p>" ;
tooltipContent += "</div>" ;
return tooltipContent ;
}
}