in lib/@uncharted/thumbnails/src/thumbnails.util.js [51:84]
module.exports.mapEntitiesToIconMap = function(data, iconMap) {
var concatEntities = function (array, item) { return array.concat(item.entities); };
var nameAndType = function (entity) { return entity.name + '&' + entity.type; };
var toEntityReference = function (entityList) {
return {
type: entityList[0].type,
name: entityList[0].name,
count: entityList.length,
};
};
// process data
var allEntities = data.reduce(concatEntities, []);
var entityGroups = _.groupBy(allEntities, nameAndType);
var entityReferences = Object.keys(entityGroups)
.map(function (key) { return toEntityReference(entityGroups[key]); })
.sort(function (entityRefA, entityRefB) {
return entityRefB.count - entityRefA.count;
});
entityReferences.forEach(function (entity) {
var entityAlreadyMapped = iconMap.some(function (icon) {
return icon.type === entity.type && entity.name !== undefined && icon.name === entity.name;
});
if (!entityAlreadyMapped) {
var unusedIcon = _.find(iconMap, function(icon) {
return icon.type === entity.type && icon.name === undefined && !icon.isDefault;
});
if (unusedIcon) {
unusedIcon.name = entity.name;
}
}
});
return iconMap;
};