add hw2
This commit is contained in:
28
node_modules/@iconify/utils/lib/svg/size.js
generated
vendored
Normal file
28
node_modules/@iconify/utils/lib/svg/size.js
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Regular expressions for calculating dimensions
|
||||
*/
|
||||
const unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;
|
||||
const unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;
|
||||
function calculateSize(size, ratio, precision) {
|
||||
if (ratio === 1) return size;
|
||||
precision = precision || 100;
|
||||
if (typeof size === "number") return Math.ceil(size * ratio * precision) / precision;
|
||||
if (typeof size !== "string") return size;
|
||||
const oldParts = size.split(unitsSplit);
|
||||
if (oldParts === null || !oldParts.length) return size;
|
||||
const newParts = [];
|
||||
let code = oldParts.shift();
|
||||
let isNumber = unitsTest.test(code);
|
||||
while (true) {
|
||||
if (isNumber) {
|
||||
const num = parseFloat(code);
|
||||
if (isNaN(num)) newParts.push(code);
|
||||
else newParts.push(Math.ceil(num * ratio * precision) / precision);
|
||||
} else newParts.push(code);
|
||||
code = oldParts.shift();
|
||||
if (code === void 0) return newParts.join("");
|
||||
isNumber = !isNumber;
|
||||
}
|
||||
}
|
||||
|
||||
export { calculateSize };
|
||||
Reference in New Issue
Block a user