module.exports.mapEntitiesToIconMap = function()

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;
};