UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

67 lines (55 loc) 3.03 kB
import { cloneDeep, isEmpty, set } from "lodash"; import { uid } from "../../../core/utils"; export function generateLegendDefaults() { let legendDefinitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; let weight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100; let highIsGood = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!isEmpty(legendDefinitions)) { const actualWeight = weight !== null && weight !== void 0 ? weight : 100; //sets 100 as the default weight const range = actualWeight / (legendDefinitions === null || legendDefinitions === void 0 ? void 0 : legendDefinitions.length); const values = []; let legendDefinitionIterator = legendDefinitions.length - 1; for (let i = 0; i < actualWeight; i += range) { const { id } = legendDefinitions[legendDefinitionIterator]; values.push({ id: uid(), startValue: "".concat(Math.floor(i)), endValue: "".concat(Math.floor(i + range)), legendDefinitionId: id }); legendDefinitionIterator--; } return highIsGood ? values.reverse() : values; } return []; } export function resetLegends(groups, legendDefinitions) { const newGroups = cloneDeep(groups); if (newGroups) { newGroups === null || newGroups === void 0 ? void 0 : newGroups.forEach(group => { var _group$dataHolders; group === null || group === void 0 ? void 0 : (_group$dataHolders = group.dataHolders) === null || _group$dataHolders === void 0 ? void 0 : _group$dataHolders.forEach(dataHolder => { var _dataHolder$dataSourc; dataHolder === null || dataHolder === void 0 ? void 0 : (_dataHolder$dataSourc = dataHolder.dataSources) === null || _dataHolder$dataSourc === void 0 ? void 0 : _dataHolder$dataSourc.forEach(dataSource => { set(dataSource, "legends", generateLegendDefaults(getNonDefaultLegendDefinitions(legendDefinitions))); if (!isEmpty(dataSource.specificTargets)) { dataSource.specificTargets.forEach(specificTarget => { set(specificTarget, "legends", generateLegendDefaults(getNonDefaultLegendDefinitions(legendDefinitions))); }); } }); }); }); } return newGroups; } export function getNonDefaultLegendDefinitions(legendDefinitions) { var _legendDefinitions$fi; return (_legendDefinitions$fi = legendDefinitions === null || legendDefinitions === void 0 ? void 0 : legendDefinitions.filter(legendDefinition => !legendDefinition.isDefault)) !== null && _legendDefinitions$fi !== void 0 ? _legendDefinitions$fi : []; } export function getDefaultLegendDefinitions(legendDefinitions) { var _legendDefinitions$fi2; return (_legendDefinitions$fi2 = legendDefinitions === null || legendDefinitions === void 0 ? void 0 : legendDefinitions.filter(legendDefinition => legendDefinition.isDefault)) !== null && _legendDefinitions$fi2 !== void 0 ? _legendDefinitions$fi2 : []; }