Fixed a few skills
This commit is contained in:
@@ -736,7 +736,9 @@ export function ChatWidget({ onAction }: ChatWidgetProps) {
|
|||||||
className="md:hidden px-3 py-2 rounded-xl text-xs font-medium max-w-[200px]"
|
className="md:hidden px-3 py-2 rounded-xl text-xs font-medium max-w-[200px]"
|
||||||
style={{
|
style={{
|
||||||
position: 'fixed',
|
position: 'fixed',
|
||||||
bottom: isMobileNav ? undefined : 'calc(16px + 48px + 10px)',
|
bottom: isMobileNav
|
||||||
|
? 'calc(56px + env(safe-area-inset-bottom) + 16px + 48px + 10px)'
|
||||||
|
: 'calc(16px + 48px + 10px)',
|
||||||
right: '16px',
|
right: '16px',
|
||||||
background: 'var(--surface)',
|
background: 'var(--surface)',
|
||||||
color: 'var(--text-primary)',
|
color: 'var(--text-primary)',
|
||||||
|
|||||||
@@ -45,9 +45,10 @@ export const SKILL_GLOW_STD_DEVIATION = 2.5
|
|||||||
export const SKILL_ACTIVE_STROKE_OPACITY = 0.1
|
export const SKILL_ACTIVE_STROKE_OPACITY = 0.1
|
||||||
|
|
||||||
// Skill overlap offsets
|
// Skill overlap offsets
|
||||||
export const SKILL_Y_OFFSET_STEP = 25
|
export const SKILL_Y_OFFSET_STEP = 35
|
||||||
export const SKILL_Y_OFFSET_STEP_MOBILE = 20
|
export const SKILL_Y_OFFSET_STEP_MOBILE = 26
|
||||||
export const SKILL_Y_GLOBAL_OFFSET_RATIO = -0.05
|
export const SKILL_Y_GLOBAL_OFFSET_RATIO = -0.05
|
||||||
|
export const SKILL_Y_CENTER_BLEND = 0.55
|
||||||
export const SKILL_X_OVERLAP_MAX_RATIO = 1
|
export const SKILL_X_OVERLAP_MAX_RATIO = 1
|
||||||
// Entry animation
|
// Entry animation
|
||||||
export const ENTRY_GUIDE_FADE_MS = 200
|
export const ENTRY_GUIDE_FADE_MS = 200
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ Mathematics A*, Chemistry B, Politics C.
|
|||||||
Professional registration required to practise as a pharmacist in Great Britain.
|
Professional registration required to practise as a pharmacist in Great Britain.
|
||||||
|
|
||||||
## Skills
|
## Skills
|
||||||
Technical: [skill-data-analysis] Data Analysis (10yr, 4x daily), [skill-python] Python (8yr, 3x daily), [skill-sql] SQL (3yr, 3x daily), [skill-dashboard-dev] Dashboard Development (3yr, weekly), [skill-ai-prompt-engineering] AI & Prompt Engineering (2yr, 4x daily), [skill-javascript-typescript] JavaScript/TypeScript (6yr, as needed)
|
Technical: [skill-data-analysis] Data Analysis (10yr, 4x daily), [skill-python] Python (8yr, 3x daily), [skill-sql] SQL (3yr, 3x daily), [skill-dashboard-dev] Dashboard Development (3yr, weekly), [skill-ai-prompt-engineering] AI Integration & Automation (2yr, 4x daily), [skill-javascript-typescript] JavaScript/TypeScript (4yr, as needed), [skill-algorithm-design] Algorithm Design (8yr, weekly), [skill-data-pipelines] Data Pipelines (3yr, weekly)
|
||||||
Clinical: [skill-medicines-optimisation] Medicines Optimisation (10yr, 3–4x daily), [skill-population-health] Population Health (2yr, daily), [skill-nice-ta] NICE TA Implementation (4yr, 1–2x weekly), [skill-health-system-prescribing] Health System Prescribing Mgmt (2yr, daily), [skill-health-economics] Health Economics (4yr, 1–2x daily), [skill-clinical-pathways] Clinical Pathways (4yr, daily), [skill-formulary-commissioning] Formulary & Commissioning (4yr, weekly), [skill-community-pharmacy] Community Pharmacy Practice (11yr, as needed)
|
Clinical: [skill-medicines-optimisation] Medicines Optimisation (10yr, 3–4x daily), [skill-population-health] Population Health (2yr, daily), [skill-nice-ta] NICE TA Implementation (4yr, 1–2x weekly), [skill-health-system-prescribing] Health System Prescribing Mgmt (2yr, daily), [skill-health-economics] Health Economics (4yr, 1–2x daily), [skill-clinical-pathways] Clinical Pathways (4yr, daily), [skill-formulary-commissioning] Formulary & Commissioning (4yr, weekly), [skill-community-pharmacy] Community Pharmacy Practice (11yr, as needed)
|
||||||
Strategic: [skill-executive-comms] Executive Communication (2yr, bi-monthly), [skill-financial-modelling] Financial Scenario Modelling (4yr, weekly), [skill-budget-management] Budget Management (2yr, 2x weekly), [skill-stakeholder-engagement] Stakeholder Engagement (4yr, daily), [skill-change-management] Change Management (10yr, as needed), [skill-healthcare-leadership] Healthcare Leadership (8yr, daily)
|
Strategic: [skill-executive-comms] Executive Communication (2yr, bi-monthly), [skill-financial-modelling] Financial Scenario Modelling (4yr, weekly), [skill-budget-management] Budget Management (2yr, 2x weekly), [skill-stakeholder-engagement] Stakeholder Engagement (4yr, daily), [skill-change-management] Change Management (10yr, as needed), [skill-healthcare-leadership] Healthcare Leadership (8yr, daily)
|
||||||
|
|
||||||
|
|||||||
+54
-2
@@ -5,6 +5,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'data-analysis',
|
id: 'data-analysis',
|
||||||
name: 'Data Analysis',
|
name: 'Data Analysis',
|
||||||
|
shortName: 'Data Analysis',
|
||||||
frequency: '4x daily',
|
frequency: '4x daily',
|
||||||
startYear: 2016,
|
startYear: 2016,
|
||||||
yearsOfExperience: 10,
|
yearsOfExperience: 10,
|
||||||
@@ -53,6 +54,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'dashboard-dev',
|
id: 'dashboard-dev',
|
||||||
name: 'Dashboard Development',
|
name: 'Dashboard Development',
|
||||||
|
shortName: 'Dashboards',
|
||||||
frequency: 'Weekly',
|
frequency: 'Weekly',
|
||||||
startYear: 2023,
|
startYear: 2023,
|
||||||
yearsOfExperience: 3,
|
yearsOfExperience: 3,
|
||||||
@@ -67,7 +69,8 @@ export const skills: SkillMedication[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'ai-prompt-engineering',
|
id: 'ai-prompt-engineering',
|
||||||
name: 'AI & Prompt Engineering',
|
name: 'AI Integration & Automation',
|
||||||
|
shortName: 'AI Integration',
|
||||||
frequency: '4x daily',
|
frequency: '4x daily',
|
||||||
startYear: 2024,
|
startYear: 2024,
|
||||||
yearsOfExperience: 2,
|
yearsOfExperience: 2,
|
||||||
@@ -82,9 +85,10 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'javascript-typescript',
|
id: 'javascript-typescript',
|
||||||
name: 'JavaScript / TypeScript',
|
name: 'JavaScript / TypeScript',
|
||||||
|
shortName: 'JS / TS',
|
||||||
frequency: 'As needed',
|
frequency: 'As needed',
|
||||||
startYear: 2020,
|
startYear: 2020,
|
||||||
yearsOfExperience: 6,
|
yearsOfExperience: 4,
|
||||||
category: 'Technical',
|
category: 'Technical',
|
||||||
status: 'Active',
|
status: 'Active',
|
||||||
icon: 'FileCode2',
|
icon: 'FileCode2',
|
||||||
@@ -95,10 +99,45 @@ export const skills: SkillMedication[] = [
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
id: 'algorithm-design',
|
||||||
|
name: 'Algorithm Design',
|
||||||
|
shortName: 'Algorithms',
|
||||||
|
frequency: 'Weekly',
|
||||||
|
startYear: 2018,
|
||||||
|
yearsOfExperience: 8,
|
||||||
|
category: 'Technical',
|
||||||
|
status: 'Active',
|
||||||
|
icon: 'GitBranch',
|
||||||
|
prescribingHistory: [
|
||||||
|
{ year: 2018, description: 'Started: Automation logic for pharmacy processes' },
|
||||||
|
{ year: 2022, description: 'Increased: Blueteq form generation, clinical rule engines' },
|
||||||
|
{ year: 2024, description: 'Advanced: CD monitoring OME calculations, switching algorithm (14,000 patients)' },
|
||||||
|
{ year: 2025, description: 'Current: Incentive scheme automation, population-level patient identification' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'data-pipelines',
|
||||||
|
name: 'Data Pipelines',
|
||||||
|
shortName: 'Pipelines',
|
||||||
|
frequency: 'Weekly',
|
||||||
|
startYear: 2023,
|
||||||
|
yearsOfExperience: 3,
|
||||||
|
category: 'Technical',
|
||||||
|
status: 'Active',
|
||||||
|
icon: 'Workflow',
|
||||||
|
prescribingHistory: [
|
||||||
|
{ year: 2023, description: 'Started: ETL processes for Blueteq integration' },
|
||||||
|
{ year: 2024, description: 'Increased: dm+d standardisation, morphine conversions' },
|
||||||
|
{ year: 2025, description: 'Current: ICS-wide data infrastructure' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
// Clinical (8 skills)
|
// Clinical (8 skills)
|
||||||
{
|
{
|
||||||
id: 'medicines-optimisation',
|
id: 'medicines-optimisation',
|
||||||
name: 'Medicines Optimisation',
|
name: 'Medicines Optimisation',
|
||||||
|
shortName: 'Medicines Opt.',
|
||||||
frequency: '3–4x daily',
|
frequency: '3–4x daily',
|
||||||
startYear: 2016,
|
startYear: 2016,
|
||||||
yearsOfExperience: 10,
|
yearsOfExperience: 10,
|
||||||
@@ -115,6 +154,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'population-health',
|
id: 'population-health',
|
||||||
name: 'Population Health',
|
name: 'Population Health',
|
||||||
|
shortName: 'Pop. Health',
|
||||||
frequency: 'Daily',
|
frequency: 'Daily',
|
||||||
startYear: 2024,
|
startYear: 2024,
|
||||||
yearsOfExperience: 2,
|
yearsOfExperience: 2,
|
||||||
@@ -129,6 +169,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'nice-ta',
|
id: 'nice-ta',
|
||||||
name: 'NICE TA Implementation',
|
name: 'NICE TA Implementation',
|
||||||
|
shortName: 'NICE TA',
|
||||||
frequency: '1–2x weekly',
|
frequency: '1–2x weekly',
|
||||||
startYear: 2022,
|
startYear: 2022,
|
||||||
yearsOfExperience: 4,
|
yearsOfExperience: 4,
|
||||||
@@ -144,6 +185,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'health-system-prescribing',
|
id: 'health-system-prescribing',
|
||||||
name: 'Health System Prescribing Mgmt',
|
name: 'Health System Prescribing Mgmt',
|
||||||
|
shortName: 'Prescribing Mgmt',
|
||||||
frequency: 'Daily',
|
frequency: 'Daily',
|
||||||
startYear: 2024,
|
startYear: 2024,
|
||||||
yearsOfExperience: 2,
|
yearsOfExperience: 2,
|
||||||
@@ -158,6 +200,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'health-economics',
|
id: 'health-economics',
|
||||||
name: 'Health Economics',
|
name: 'Health Economics',
|
||||||
|
shortName: 'Health Econ.',
|
||||||
frequency: '1–2x daily',
|
frequency: '1–2x daily',
|
||||||
startYear: 2022,
|
startYear: 2022,
|
||||||
yearsOfExperience: 4,
|
yearsOfExperience: 4,
|
||||||
@@ -173,6 +216,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'clinical-pathways',
|
id: 'clinical-pathways',
|
||||||
name: 'Clinical Pathways',
|
name: 'Clinical Pathways',
|
||||||
|
shortName: 'Pathways',
|
||||||
frequency: 'Daily',
|
frequency: 'Daily',
|
||||||
startYear: 2022,
|
startYear: 2022,
|
||||||
yearsOfExperience: 4,
|
yearsOfExperience: 4,
|
||||||
@@ -188,6 +232,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'formulary-commissioning',
|
id: 'formulary-commissioning',
|
||||||
name: 'Formulary & Commissioning',
|
name: 'Formulary & Commissioning',
|
||||||
|
shortName: 'Formulary',
|
||||||
frequency: 'Weekly',
|
frequency: 'Weekly',
|
||||||
startYear: 2022,
|
startYear: 2022,
|
||||||
yearsOfExperience: 4,
|
yearsOfExperience: 4,
|
||||||
@@ -203,6 +248,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'community-pharmacy',
|
id: 'community-pharmacy',
|
||||||
name: 'Community Pharmacy Practice',
|
name: 'Community Pharmacy Practice',
|
||||||
|
shortName: 'Community Pharm.',
|
||||||
frequency: 'As needed',
|
frequency: 'As needed',
|
||||||
startYear: 2015,
|
startYear: 2015,
|
||||||
yearsOfExperience: 11,
|
yearsOfExperience: 11,
|
||||||
@@ -220,6 +266,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'executive-comms',
|
id: 'executive-comms',
|
||||||
name: 'Executive Communication',
|
name: 'Executive Communication',
|
||||||
|
shortName: 'Exec. Comms',
|
||||||
frequency: 'Bi-monthly',
|
frequency: 'Bi-monthly',
|
||||||
startYear: 2024,
|
startYear: 2024,
|
||||||
yearsOfExperience: 2,
|
yearsOfExperience: 2,
|
||||||
@@ -234,6 +281,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'financial-modelling',
|
id: 'financial-modelling',
|
||||||
name: 'Financial Scenario Modelling',
|
name: 'Financial Scenario Modelling',
|
||||||
|
shortName: 'Financial Modelling',
|
||||||
frequency: 'Weekly',
|
frequency: 'Weekly',
|
||||||
startYear: 2022,
|
startYear: 2022,
|
||||||
yearsOfExperience: 4,
|
yearsOfExperience: 4,
|
||||||
@@ -249,6 +297,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'budget-management',
|
id: 'budget-management',
|
||||||
name: 'Budget Management',
|
name: 'Budget Management',
|
||||||
|
shortName: 'Budget Mgmt',
|
||||||
frequency: '2x weekly',
|
frequency: '2x weekly',
|
||||||
startYear: 2024,
|
startYear: 2024,
|
||||||
yearsOfExperience: 2,
|
yearsOfExperience: 2,
|
||||||
@@ -264,6 +313,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'stakeholder-engagement',
|
id: 'stakeholder-engagement',
|
||||||
name: 'Stakeholder Engagement',
|
name: 'Stakeholder Engagement',
|
||||||
|
shortName: 'Stakeholders',
|
||||||
frequency: 'Daily',
|
frequency: 'Daily',
|
||||||
startYear: 2022,
|
startYear: 2022,
|
||||||
yearsOfExperience: 4,
|
yearsOfExperience: 4,
|
||||||
@@ -279,6 +329,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'change-management',
|
id: 'change-management',
|
||||||
name: 'Change Management',
|
name: 'Change Management',
|
||||||
|
shortName: 'Change Mgmt',
|
||||||
frequency: 'As needed',
|
frequency: 'As needed',
|
||||||
startYear: 2016,
|
startYear: 2016,
|
||||||
yearsOfExperience: 10,
|
yearsOfExperience: 10,
|
||||||
@@ -289,6 +340,7 @@ export const skills: SkillMedication[] = [
|
|||||||
{
|
{
|
||||||
id: 'healthcare-leadership',
|
id: 'healthcare-leadership',
|
||||||
name: 'Healthcare Leadership',
|
name: 'Healthcare Leadership',
|
||||||
|
shortName: 'Leadership',
|
||||||
frequency: 'Daily',
|
frequency: 'Daily',
|
||||||
startYear: 2018,
|
startYear: 2018,
|
||||||
yearsOfExperience: 8,
|
yearsOfExperience: 8,
|
||||||
|
|||||||
+13
-1
@@ -51,6 +51,8 @@ const timelineEntitySeeds: TimelineEntity[] = [
|
|||||||
'sql',
|
'sql',
|
||||||
'dashboard-dev',
|
'dashboard-dev',
|
||||||
'ai-prompt-engineering',
|
'ai-prompt-engineering',
|
||||||
|
'algorithm-design',
|
||||||
|
'data-pipelines',
|
||||||
'medicines-optimisation',
|
'medicines-optimisation',
|
||||||
'population-health',
|
'population-health',
|
||||||
'nice-ta',
|
'nice-ta',
|
||||||
@@ -71,6 +73,8 @@ const timelineEntitySeeds: TimelineEntity[] = [
|
|||||||
sql: 0.95,
|
sql: 0.95,
|
||||||
'dashboard-dev': 0.8,
|
'dashboard-dev': 0.8,
|
||||||
'ai-prompt-engineering': 0.85,
|
'ai-prompt-engineering': 0.85,
|
||||||
|
'algorithm-design': 0.9,
|
||||||
|
'data-pipelines': 0.8,
|
||||||
'medicines-optimisation': 0.9,
|
'medicines-optimisation': 0.9,
|
||||||
'population-health': 0.95,
|
'population-health': 0.95,
|
||||||
'nice-ta': 0.8,
|
'nice-ta': 0.8,
|
||||||
@@ -130,6 +134,8 @@ const timelineEntitySeeds: TimelineEntity[] = [
|
|||||||
'sql',
|
'sql',
|
||||||
'dashboard-dev',
|
'dashboard-dev',
|
||||||
'ai-prompt-engineering',
|
'ai-prompt-engineering',
|
||||||
|
'algorithm-design',
|
||||||
|
'data-pipelines',
|
||||||
'medicines-optimisation',
|
'medicines-optimisation',
|
||||||
'population-health',
|
'population-health',
|
||||||
'nice-ta',
|
'nice-ta',
|
||||||
@@ -150,6 +156,8 @@ const timelineEntitySeeds: TimelineEntity[] = [
|
|||||||
sql: 0.9,
|
sql: 0.9,
|
||||||
'dashboard-dev': 0.8,
|
'dashboard-dev': 0.8,
|
||||||
'ai-prompt-engineering': 0.8,
|
'ai-prompt-engineering': 0.8,
|
||||||
|
'algorithm-design': 0.8,
|
||||||
|
'data-pipelines': 0.75,
|
||||||
'medicines-optimisation': 0.9,
|
'medicines-optimisation': 0.9,
|
||||||
'population-health': 0.95,
|
'population-health': 0.95,
|
||||||
'nice-ta': 0.8,
|
'nice-ta': 0.8,
|
||||||
@@ -204,6 +212,8 @@ const timelineEntitySeeds: TimelineEntity[] = [
|
|||||||
'python',
|
'python',
|
||||||
'sql',
|
'sql',
|
||||||
'dashboard-dev',
|
'dashboard-dev',
|
||||||
|
'algorithm-design',
|
||||||
|
'data-pipelines',
|
||||||
'medicines-optimisation',
|
'medicines-optimisation',
|
||||||
'nice-ta',
|
'nice-ta',
|
||||||
'health-economics',
|
'health-economics',
|
||||||
@@ -219,6 +229,8 @@ const timelineEntitySeeds: TimelineEntity[] = [
|
|||||||
python: 0.8,
|
python: 0.8,
|
||||||
sql: 0.7,
|
sql: 0.7,
|
||||||
'dashboard-dev': 0.6,
|
'dashboard-dev': 0.6,
|
||||||
|
'algorithm-design': 0.6,
|
||||||
|
'data-pipelines': 0.7,
|
||||||
'medicines-optimisation': 0.8,
|
'medicines-optimisation': 0.8,
|
||||||
'nice-ta': 0.9,
|
'nice-ta': 0.9,
|
||||||
'health-economics': 0.7,
|
'health-economics': 0.7,
|
||||||
@@ -509,7 +521,7 @@ export function buildConstellationData(): {
|
|||||||
id: skill.id,
|
id: skill.id,
|
||||||
type: 'skill',
|
type: 'skill',
|
||||||
label: skill.name,
|
label: skill.name,
|
||||||
shortLabel: skill.name.length > 16 ? skill.name.replace('Management', 'Mgmt') : undefined,
|
shortLabel: skill.shortName ?? (skill.name.length > 16 ? skill.name.replace('Management', 'Mgmt') : undefined),
|
||||||
domain: skillDomainByCategory[skill.category],
|
domain: skillDomainByCategory[skill.category],
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import {
|
|||||||
SKILL_STROKE_WIDTH, SKILL_STROKE_OPACITY, SKILL_SIZE_ROLE_FACTOR,
|
SKILL_STROKE_WIDTH, SKILL_STROKE_OPACITY, SKILL_SIZE_ROLE_FACTOR,
|
||||||
SKILL_GLOW_STD_DEVIATION,
|
SKILL_GLOW_STD_DEVIATION,
|
||||||
SKILL_Y_OFFSET_STEP, SKILL_Y_OFFSET_STEP_MOBILE,
|
SKILL_Y_OFFSET_STEP, SKILL_Y_OFFSET_STEP_MOBILE,
|
||||||
SKILL_Y_GLOBAL_OFFSET_RATIO, SKILL_X_OVERLAP_MAX_RATIO,
|
SKILL_Y_GLOBAL_OFFSET_RATIO, SKILL_Y_CENTER_BLEND, SKILL_X_OVERLAP_MAX_RATIO,
|
||||||
} from '@/components/constellation/constants'
|
} from '@/components/constellation/constants'
|
||||||
import type { SimNode, SimLink, LayoutParams } from '@/components/constellation/types'
|
import type { SimNode, SimLink, LayoutParams } from '@/components/constellation/types'
|
||||||
|
|
||||||
@@ -357,7 +357,9 @@ export function useForceSimulation(
|
|||||||
homeX = Math.max(skillZoneLeft, Math.min(skillZoneRight, homeX))
|
homeX = Math.max(skillZoneLeft, Math.min(skillZoneRight, homeX))
|
||||||
}
|
}
|
||||||
|
|
||||||
const homeY = (skillBaseY.get(n.id) ?? height * 0.5) + (skillYOffset.get(n.id) ?? 0) - height * SKILL_Y_GLOBAL_OFFSET_RATIO
|
const rawHomeY = (skillBaseY.get(n.id) ?? height * 0.5) + (skillYOffset.get(n.id) ?? 0) - height * SKILL_Y_GLOBAL_OFFSET_RATIO
|
||||||
|
const belowCenter = height * 0.6
|
||||||
|
const homeY = rawHomeY * (1 - SKILL_Y_CENTER_BLEND) + belowCenter * SKILL_Y_CENTER_BLEND
|
||||||
|
|
||||||
return { ...n, x: homeX, y: homeY, vx: 0, vy: 0, homeX, homeY }
|
return { ...n, x: homeX, y: homeY, vx: 0, vy: 0, homeX, homeY }
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ export interface KPI {
|
|||||||
export interface SkillMedication {
|
export interface SkillMedication {
|
||||||
id: string
|
id: string
|
||||||
name: string
|
name: string
|
||||||
|
shortName?: string
|
||||||
frequency: string
|
frequency: string
|
||||||
startYear: number
|
startYear: number
|
||||||
yearsOfExperience: number
|
yearsOfExperience: number
|
||||||
|
|||||||
Reference in New Issue
Block a user