diff --git a/packages/utils/src/formatImperial.js b/packages/utils/src/formatImperial.js
index 0412ad02639..033f4d46982 100644
--- a/packages/utils/src/formatImperial.js
+++ b/packages/utils/src/formatImperial.js
@@ -5,13 +5,14 @@ const formatImperial = (
deno = false,
format = "html"
) => {
+ console.log("in format imperial, format is", format, inch, numo, deno);
if (format === "html") {
if (numo)
- return `${neg}${inch}${numo}/${deno}`;
+ return `${neg}${inch} ${numo}/${deno}`;
else return `${neg}${inch}`;
} else {
- if (numo) return `${neg}${inch}`;
- else return `${neg}${inch} ${numo}/${deno}`;
+ if (numo) return `${neg}${inch} ${numo}/${deno}`;
+ else return `${neg}${inch}`;
}
};
diff --git a/packages/utils/src/formatMm.js b/packages/utils/src/formatMm.js
index 158d86a0b87..e82aee99fd5 100644
--- a/packages/utils/src/formatMm.js
+++ b/packages/utils/src/formatMm.js
@@ -21,17 +21,17 @@ const formatMm = (val, units, format = "html") => {
let fraction128 = Math.round(rest * 128);
if (fraction128 == 0) return formatImperial(negative, inches);
if (fraction128 % 64 == 0)
- return formatImperial(negative, inches, fraction128 / 64, 2);
+ return formatImperial(negative, inches, fraction128 / 64, 2, format);
if (fraction128 % 32 == 0)
- return formatImperial(negative, inches, fraction128 / 32, 4);
+ return formatImperial(negative, inches, fraction128 / 32, 4, format);
if (fraction128 % 16 == 0)
- return formatImperial(negative, inches, fraction128 / 16, 8);
+ return formatImperial(negative, inches, fraction128 / 16, 8, format);
if (fraction128 % 8 == 0)
- return formatImperial(negative, inches, fraction128 / 8, 16);
+ return formatImperial(negative, inches, fraction128 / 8, 16, format);
if (fraction128 % 4 == 0)
- return formatImperial(negative, inches, fraction128 / 4, 32);
+ return formatImperial(negative, inches, fraction128 / 4, 32, format);
if (fraction128 % 2 == 0)
- return formatImperial(negative, inches, fraction128 / 2, 64);
+ return formatImperial(negative, inches, fraction128 / 2, 64, format);
return negative + fraction;
} else {
if (format === "html") return roundMm(val / 10) + "cm";
diff --git a/packages/utils/src/measurementAsMm.js b/packages/utils/src/measurementAsMm.js
index f0157d1615e..17f090ec7d6 100644
--- a/packages/utils/src/measurementAsMm.js
+++ b/packages/utils/src/measurementAsMm.js
@@ -6,6 +6,14 @@ const measurementAsMm = (value, units = "metric") => {
if (isNaN(value)) return false;
return value * 10;
} else {
+ const imperialFractionToMm = value => {
+ let chunks = value.trim().split("/");
+ if (chunks.length !== 2 || chunks[1] === "") return false;
+ let num = Number(chunks[0]);
+ let denom = Number(chunks[1]);
+ if (isNaN(num) || isNaN(denom)) return false;
+ else return (num * 25.4) / denom;
+ };
let chunks = value.split(" ");
if (chunks.length === 1) {
let val = chunks[0];