projects/dvl-fw-nsf/src/lib/data-model/nsf-award.ts
constructor(data: any)
|
||||||
Parameters :
|
abstract |
Type : string
|
arraAmount |
Type : number
|
awardedAmountAreaSize |
Type : number
|
Decorators :
@Operand(undefined)
|
awardedAmountColor |
Type : string
|
Decorators :
@Operand(undefined)
|
awardedAmountFontSize |
Type : number
|
Decorators :
@Operand(undefined)
|
awardedAmountLabel |
Type : string
|
Decorators :
@Operand(undefined)
|
awardedAmountNorm |
Type : number
|
Decorators :
@Operand(undefined)
|
awardedAmountStrokeColor |
Type : string
|
Decorators :
@Operand(undefined)
|
awardedAmountStrokeWidth |
Type : number
|
Decorators :
@Operand(undefined)
|
awardedAmountToDate |
Type : number
|
awardedAmountTransparency |
Type : number
|
Decorators :
@Operand(undefined)
|
awardInstrument |
Type : string
|
awardInstrumentColor |
Type : string
|
Decorators :
@Operand(undefined)
|
awardInstrumentLabel |
Type : string
|
Decorators :
@Operand(undefined)
|
coPiNames |
Type : string[]
|
defaultStyles |
Default value : defaultStyles
|
endDate |
Type : Date
|
endYear |
Type : number
|
endYearAreaSize |
Type : number
|
Decorators :
@Operand(undefined)
|
endYearColor |
Type : string
|
Decorators :
@Operand(undefined)
|
endYearFontSize |
Type : number
|
Decorators :
@Operand(undefined)
|
endYearLabel |
Type : string
|
Decorators :
@Operand(undefined)
|
endYearNorm |
Type : number
|
Decorators :
@Operand(undefined)
|
endYearStrokeColor |
Type : string
|
Decorators :
@Operand(undefined)
|
globalStats |
Type : AwardStats
|
id |
Type : string
|
investigatorNames |
Type : string[]
|
Decorators :
@Operand(undefined)
|
Investigators |
Type : Investigator[]
|
Decorators :
@Transient()
|
lastAmendmentDate |
Type : Date
|
lastAmendmentYear |
Type : number
|
lastAmendmentYearAreaSize |
Type : number
|
Decorators :
@Operand(undefined)
|
lastAmendmentYearColor |
Type : string
|
Decorators :
@Operand(undefined)
|
lastAmendmentYearFontSize |
Type : number
|
Decorators :
@Operand(undefined)
|
lastAmendmentYearLabel |
Type : string
|
Decorators :
@Operand(undefined)
|
lastAmendmentYearNorm |
Type : number
|
Decorators :
@Operand(undefined)
|
lastAmendmentYearStrokeColor |
Type : string
|
Decorators :
@Operand(undefined)
|
latlng |
Type : [number, number]
|
Decorators :
@Operand(undefined)
|
location |
Type : Location
|
nsfDirectorate |
Type : string
|
nsfOrganization |
Type : string
|
nsfProgramManager |
Type : string
|
nsfPrograms |
Type : string[]
|
organization |
Type : literal type
|
piEmailAddress |
Type : string
|
piName |
Type : string
|
programElementCodes |
Type : string[]
|
programReferenceCodes |
Type : string[]
|
startDate |
Type : Date
|
startYear |
Type : number
|
startYearAreaSize |
Type : number
|
Decorators :
@Operand(undefined)
|
startYearColor |
Type : string
|
Decorators :
@Operand(undefined)
|
startYearFontSize |
Type : number
|
Decorators :
@Operand(undefined)
|
startYearLabel |
Type : string
|
Decorators :
@Operand(undefined)
|
startYearNorm |
Type : number
|
Decorators :
@Operand(undefined)
|
startYearStrokeColor |
Type : string
|
Decorators :
@Operand(undefined)
|
title |
Type : string
|
import {
areaSizeScaleNormQuantitative, colorScaleNormQuantitative, colorScaleNormQuantitativeStroke, defaultStyles, extractPoint,
fontSizeScaleNormQuantitative, formatNumber, formatYear, norm0to100, quantitativeTransparency,
strokeWidthScaleNormQuantitative, Transient,
} from '@dvl-fw/core';
import { access, chain, lookup, map, Operand } from '@ngx-dino/core';
import { startCase, uniq } from 'lodash';
import { Investigator } from './nsf-investigator';
const awardInstrumentColorLookup = lookup({
'Standard Grant': '#c51162', //
'Gaa': '#ffd54f',
'Continuing Grant': '#5335b1', //
'Continuing grant': '#5335b1', //
'Cooperative Agreement': '#004d40',
'Interagency Agreement': '#42a5f5', //
'Contract': '#2e7d32',
'Fixed Price Award': '#ce93d8',
'Fellowship': '#ffc400', //
'Boa/task Order': '#f0f4c3',
'Contract Interagency Agreement': '#e0f2f1'
}, '#3e2723');
export class AwardStats {
awardedAmountMax = 0;
yearMax = 0;
yearMin = 9999;
count(item: Award) {
this.awardedAmountMax = Math.max(this.awardedAmountMax, item.awardedAmountToDate, item.arraAmount);
this.yearMax = Math.max(this.yearMax, item.startYear, item.endYear, item.lastAmendmentYear);
if (item.startYear > 0) {
this.yearMin = Math.min(this.yearMin, item.startYear);
}
if (item.endYear > 0) {
this.yearMin = Math.min(this.yearMin, item.endYear);
}
if (item.lastAmendmentYear > 0) {
this.yearMin = Math.min(this.yearMin, item.lastAmendmentYear);
}
}
}
// @dynamic
export class Award {
id: string;
title: string;
piName: string;
piEmailAddress: string;
coPiNames: string[];
organization: {
name: string;
street: string;
city: string;
state: string;
zip: string;
zip5: string;
phone: string;
};
location: Location;
startDate: Date;
endDate: Date;
lastAmendmentDate: Date;
startYear: number;
endYear: number;
lastAmendmentYear: number;
awardInstrument: string;
awardedAmountToDate: number;
arraAmount: number;
nsfOrganization: string;
nsfPrograms: string[];
nsfProgramManager: string;
nsfDirectorate: string;
programElementCodes: string[];
programReferenceCodes: string[];
abstract: string;
globalStats: AwardStats;
defaultStyles = defaultStyles;
constructor(data: any) {
Object.assign(this, data);
}
@Transient
Investigators: Investigator[];
@Operand<string[]>(map(s => uniq([s.piName].concat(s.coPiNames))))
investigatorNames: string[];
@Operand<string>(chain(access('awardInstrument'), awardInstrumentColorLookup))
awardInstrumentColor: string;
@Operand(chain(access<string>('awardInstrument'), map(p => startCase(p))))
awardInstrumentLabel: string;
@Operand<number[]>(extractPoint('location.latitude', 'location.longitude'))
latlng: [number, number];
// Awarded Amount Encodings
@Operand<number>(norm0to100('awardedAmountToDate', 'globalStats.awardedAmountMax'))
awardedAmountNorm: number;
@Operand<string>(chain(access('awardedAmountToDate'), formatNumber))
awardedAmountLabel: string;
@Operand<number>(chain(access('awardedAmountNorm'), areaSizeScaleNormQuantitative))
awardedAmountAreaSize: number;
@Operand<number>(chain(access('awardedAmountNorm'), strokeWidthScaleNormQuantitative))
awardedAmountStrokeWidth: number;
@Operand<number>(chain(access('awardedAmountNorm'), fontSizeScaleNormQuantitative))
awardedAmountFontSize: number;
@Operand<string>(chain(access('awardedAmountNorm'), colorScaleNormQuantitative))
awardedAmountColor: string;
@Operand<string>(chain(access('awardedAmountNorm'), colorScaleNormQuantitativeStroke))
awardedAmountStrokeColor: string;
@Operand<number>(chain(access<number>('awardedAmountNorm'), quantitativeTransparency))
awardedAmountTransparency: number;
// Start Year Encodings
@Operand<number>(norm0to100('startYear', 'globalStats.yearMax', 'globalStats.yearMin'))
startYearNorm: number;
@Operand<string>(chain(access('startYear'), formatYear))
startYearLabel: string;
@Operand<number>(chain(access('startYearNorm'), areaSizeScaleNormQuantitative))
startYearAreaSize: number;
@Operand<number>(chain(access('startYearNorm'), fontSizeScaleNormQuantitative))
startYearFontSize: number;
@Operand<string>(chain(access('startYearNorm'), colorScaleNormQuantitative))
startYearColor: string;
@Operand<string>(chain(access('startYearNorm'), colorScaleNormQuantitativeStroke))
startYearStrokeColor: string;
// End Year Encodings
@Operand<number>(norm0to100('endYear', 'globalStats.yearMax', 'globalStats.yearMin'))
endYearNorm: number;
@Operand<string>(chain(access('endYear'), formatYear))
endYearLabel: string;
@Operand<number>(chain(access('endYearNorm'), areaSizeScaleNormQuantitative))
endYearAreaSize: number;
@Operand<number>(chain(access('endYearNorm'), fontSizeScaleNormQuantitative))
endYearFontSize: number;
@Operand<string>(chain(access('endYearNorm'), colorScaleNormQuantitative))
endYearColor: string;
@Operand<string>(chain(access('endYearNorm'), colorScaleNormQuantitativeStroke))
endYearStrokeColor: string;
// Last Amendment Year Encodings
@Operand<number>(norm0to100('lastAmendmentYear', 'globalStats.yearMax', 'globalStats.yearMin'))
lastAmendmentYearNorm: number;
@Operand<string>(chain(access('lastAmendmentYear'), formatYear))
lastAmendmentYearLabel: string;
@Operand<number>(chain(access('lastAmendmentYearNorm'), areaSizeScaleNormQuantitative))
lastAmendmentYearAreaSize: number;
@Operand<number>(chain(access('lastAmendmentYearNorm'), fontSizeScaleNormQuantitative))
lastAmendmentYearFontSize: number;
@Operand<string>(chain(access('lastAmendmentYearNorm'), colorScaleNormQuantitative))
lastAmendmentYearColor: string;
@Operand<string>(chain(access('lastAmendmentYearNorm'), colorScaleNormQuantitativeStroke))
lastAmendmentYearStrokeColor: string;
}