Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import { random } from 'lodash-es'; import { v4 as uuid } from 'uuid'; import { FormatsEnum } from '@amalia/data-capture/fields/types'; import { type LtiPlanKpi } from '@amalia/lti/types'; import { ChartColor } from '@amalia/reporting/dashboards-v2/types'; export const generateLtiPlanKpi = (kpis?: LtiPlanKpi[] | null): LtiPlanKpi => { const alreadyUsedColors = kpis?.map((kpi) => kpi.color) || []; const availableColors = Object.values(ChartColor).filter((color) => !alreadyUsedColors.includes(color)); // take BLUE first then LIGHT_MAGENTA if only one KPI, else random available color or random color const color = kpis ? kpis.length === 1 ? ChartColor.LIGHT_MAGENTA : availableColors.length > 0 ? availableColors[random(availableColors.length - 1)] : Object.values(ChartColor)[random(Object.values(ChartColor).length - 1)] : ChartColor.BLUE; return { id: uuid(), name: '', weight: 1, format: FormatsEnum.currency, configuration: { type: 'LINEAR', steps: [ [0, 0], [0.5, 0.5], [1, 1], ], }, color, }; }; |