in lib/@uncharted/thumbnails/src/thumbnails.thumbnail.js [197:268]
Thumbnail.prototype._loadImages = function(imageUrls, imageContainer) {
var t = this;
var i;
var n;
var promises = [];
var urls;
if (imageUrls instanceof Array) {
urls = imageUrls;
} else {
urls = [imageUrls];
}
for (i = 0, n = urls.length; i < n; ++i) {
promises.push(t._loadImage(urls[i]));
}
return Promise.all(promises).then(function(loadedImages) {
var image;
var containerWidth = imageContainer.width();
var containerHeight = imageContainer.height();
var width = containerWidth / urls.length;
var cssWidth = ((1.0 / urls.length) * 100) + '%';
var height = containerHeight;
for (i = 0, n = loadedImages.length; i < n; ++i) {
image = loadedImages[i];
var imageHeight = loadedImages[i].height;
if (image.width > containerWidth) {
imageHeight *= (containerWidth / image.width);
}
height = Math.max(height, imageHeight);
}
if (height > containerHeight && height > imageContainer.parent().height() * 0.5) {
height = imageContainer.parent().height() * 0.5;
}
if (height !== containerHeight) {
imageContainer.css('height', height);
}
var subdivided = (urls.length > 1);
for (i = 0, n = urls.length; i < n; ++i) {
image = loadedImages[i];
var div = $('<div></div>');
var scale = Math.max(width / image.width, height / image.height);
var scaledWidth = Math.round(image.width * scale);
var sizeType;
if ((subdivided && scaledWidth < width) || (!subdivided && scaledWidth > width)) {
sizeType = 'contain';
} else if (scale > 1) {
sizeType = 'auto';
} else {
sizeType = 'cover';
}
div.css('background-image', 'url("' + urls[i] + '")');
div.css('background-size', sizeType);
div.css('width', cssWidth);
div.css('height', imageContainer.height());
imageContainer.append(div);
}
return Promise.resolve(loadedImages);
}, function(reason) {
throw reason;
});
};