107 lines
2.7 KiB
TypeScript
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}`
|
|
}
|