assetgraph-sprite
Advanced tools
Comparing version 3.1.1 to 3.2.0
@@ -58,3 +58,3 @@ const queryString = require('querystring'); | ||
function calculateSpritePadding(paddingStr, asset) { | ||
function parsePadding(paddingStr, asset) { | ||
let padding; | ||
@@ -82,8 +82,22 @@ if (paddingStr) { | ||
} | ||
return padding; | ||
} | ||
return padding.map((size) => | ||
Math.max(size, Math.max(asset.devicePixelRatio) - 1) | ||
); | ||
function maxPaddingDimensions(...paddings) { | ||
// [2, 4, 6, 8], [1, 5, 3, 10], ... => [2, 5, 6, 10] | ||
const result = [0, 0, 0, 0]; | ||
for (const padding of paddings) { | ||
if (padding) { | ||
for (var i = 0; i < 4; i += 1) { | ||
result[i] = Math.max(result[i], padding[i]); | ||
} | ||
} | ||
} | ||
return result; | ||
} | ||
function clampPaddingToDpr(padding, devicePixelRatio) { | ||
return padding.map((size) => Math.max(size, devicePixelRatio - 1)); | ||
} | ||
function getRelationSpriteInfoFromIncomingRelation(incomingRelation) { | ||
@@ -96,6 +110,3 @@ const parsedQueryString = queryString.parse( | ||
noGroup: 'spriteNoGroup' in parsedQueryString, | ||
padding: calculateSpritePadding( | ||
parsedQueryString.padding, | ||
incomingRelation.to | ||
), | ||
padding: parsePadding(parsedQueryString.padding), | ||
asset: incomingRelation.to, | ||
@@ -144,8 +155,6 @@ }; | ||
imageInfo.incomingRelations.push(relation); | ||
for (var i = 0; i < 4; i += 1) { | ||
imageInfo.padding[i] = Math.max( | ||
relationSpriteInfo.padding[i], | ||
imageInfo.padding[i] | ||
); | ||
} | ||
imageInfo.padding = maxPaddingDimensions( | ||
relationSpriteInfo.padding, | ||
imageInfo.padding | ||
); | ||
} | ||
@@ -244,2 +253,3 @@ } | ||
const spritePadding = parsePadding(spriteInfo.padding); | ||
const canvasImages = await Promise.all( | ||
@@ -252,2 +262,3 @@ imageInfos.map((imageInfo) => | ||
const canvasImage = canvasImages[i]; | ||
Object.assign(imageInfo, { | ||
@@ -257,2 +268,6 @@ canvasImage, | ||
height: canvasImage.height, | ||
padding: clampPaddingToDpr( | ||
maxPaddingDimensions(imageInfo.padding, spritePadding), | ||
imageInfo.asset.devicePixelRatio | ||
), | ||
}); | ||
@@ -374,2 +389,3 @@ } | ||
'-sprite-important', | ||
'-sprite-padding', | ||
].includes(decl.prop) | ||
@@ -376,0 +392,0 @@ ) { |
@@ -5,3 +5,3 @@ { | ||
"repository": "git://github.com/One-com/assetgraph-sprite.git", | ||
"version": "3.1.1", | ||
"version": "3.2.0", | ||
"license": "BSD-3-Clause", | ||
@@ -37,2 +37,3 @@ "maintainers": [ | ||
"unexpected": "^11.0.0", | ||
"unexpected-image": "^3.1.0", | ||
"urltools": "^0.4.1" | ||
@@ -39,0 +40,0 @@ }, |
34937
692
17