Files
TechRadarAJR/src/config.ts
2021-04-28 23:25:52 +12:00

107 lines
2.7 KiB
TypeScript

import {Item} from './model';
export const radarName = process.env.RADAR_NAME || 'AOE Technology Radar'
export const radarNameShort = radarName;
// Quadrants positions start from the top right and go clockwise
export const quadrantsMap = {
'methods-and-patterns': {
id: 'methods-and-patterns',
displayName: 'Methods & Patterns',
colour: '#248EA6',
txtColour: 'white',
position: 1,
description: 'Optional description goes here'
},
'platforms-and-aoe-services': {
id: 'platforms-and-aoe-services',
displayName: 'Platforms and Operations',
colour: '#F25244',
txtColour: '#444444',
position: 2,
description: 'Optional description goes here'
},
'tools': {
id: 'tools',
displayName: 'Tools',
colour: '#F2A25C',
txtColour: 'white',
position: 3,
description: 'Optional descrption goes here'
},
'languages-and-frameworks': {
id: 'languages-and-frameworks',
displayName: 'Languages & Frameworks',
colour: '#84BFA4',
txtColour: '#444444',
position: 4,
description: 'Optional description goes here'
},
};
export const chartConfig = {
size: 800, //in px
scale: [-16, 16],
blipSize: 12, // in px, be careful when increasing this value as it may cause a lot of calculations during placing the blips on the chart
ringsAttributes: [ // order from the centre outwards
{ radius: 8, arcWidth: 6 }, // radius values are based on the scale (not px!)
{ radius: 11, arcWidth: 4 },
{ radius: 14, arcWidth: 2 },
{ radius: 16, arcWidth: 2 }
]
};
export const rings = [
'all',
'adopt',
'trial',
'assess',
'hold'
] as const;
// rings positions start at the centre and go outwards
export const ringsMap = {
'adopt': {
displayName: 'ADOPT',
position: 1
},
'trial': {
displayName: 'EXPLORE',
position: 2
},
'assess': {
displayName: 'ENDURE',
position: 3
},
'hold': {
displayName: 'RETIRE',
position: 4
}
};
// TODO replace with TS enum
export const blipFlags = {
new: { name: 'new', short: 'N' },
changed: { name: 'changed', short: 'C' },
default: { name: 'default', short: '' }
}
export type Ring = typeof rings[number]
export const getItemPageNames = (items: Item[]) => items.map(item => `${item.quadrant}/${item.name}`);
export const showEmptyRings = false;
export function isMobileViewport() {
// return false for server side rendering
if (typeof window == 'undefined') return false;
const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
return width < 1200;
}
export function assetUrl(file: string) {
return process.env.PUBLIC_URL + '/' + file;
// return `/techradar/assets/${file}`
}