@hisptz/react-ui
Version:
A collection of reusable complex DHIS2 react ui components.
82 lines (63 loc) • 3.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateLegendDefaults = generateLegendDefaults;
exports.getDefaultLegendDefinitions = getDefaultLegendDefinitions;
exports.getNonDefaultLegendDefinitions = getNonDefaultLegendDefinitions;
exports.resetLegends = resetLegends;
var _lodash = require("lodash");
var _utils = require("../../../core/utils");
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 (!(0, _lodash.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: (0, _utils.uid)(),
startValue: "".concat(Math.floor(i)),
endValue: "".concat(Math.floor(i + range)),
legendDefinitionId: id
});
legendDefinitionIterator--;
}
return highIsGood ? values.reverse() : values;
}
return [];
}
function resetLegends(groups, legendDefinitions) {
const newGroups = (0, _lodash.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 => {
(0, _lodash.set)(dataSource, "legends", generateLegendDefaults(getNonDefaultLegendDefinitions(legendDefinitions)));
if (!(0, _lodash.isEmpty)(dataSource.specificTargets)) {
dataSource.specificTargets.forEach(specificTarget => {
(0, _lodash.set)(specificTarget, "legends", generateLegendDefaults(getNonDefaultLegendDefinitions(legendDefinitions)));
});
}
});
});
});
}
return newGroups;
}
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 : [];
}
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 : [];
}