amos-tool
Version:
amos ui tool
38 lines (32 loc) • 1.52 kB
JavaScript
;
var utils = require("./utils");
function completeUnit(e, t) {
return utils.isString(e) || (e += ""), utils.isNumber(e) ? (t || (t = "px"), e.endsWith(t) ? e : "".concat(e).concat(t)) : e;
}
function toPixel(e) {
var t = e;
return e && (utils.isNumber(e) ? t = completeUnit(Number(e)) : utils.isString(e) && (e.endsWith("%") ? t = completeUnit(Number(e.replace("%", "")), "%") : e.endsWith("px") ? t = completeUnit(Number(e.replace("px", "")), "px") : e.endsWith("vh") ? t = completeUnit(Number(e.replace("vh", "")), "vh") : e.endsWith("vw") ? t = completeUnit(Number(e.replace("vw", "")), "vw") : e.endsWith("rem") ? t = completeUnit(Number(e.replace("rem", "")), "rem") : e.endsWith("em") && (t = completeUnit(Number(e.replace("em", "")), "em")))),
t;
}
var _100 = 100;
function toRealSize(e, t, i) {
if (!e) return e;
if (utils.isNumber(e)) return Number(e);
if (utils.isString(e)) {
if (-1 !== e.indexOf("%")) {
var r = parseFloat(e) / _100, n = "width" === t ? r * (i || window.innerWidth) : r * (i || window.innerHeight);
return Math.floor(n);
}
if (-1 !== e.indexOf("vw")) {
var o = parseFloat(e) / _100 * window.innerWidth;
return Math.floor(o);
}
if (-1 !== e.indexOf("vh")) {
var l = parseFloat(e) / _100 * window.innerHeight;
return Math.floor(l);
}
}
var u = parseFloat(e);
return isNaN(u) ? 0 : u;
}
module.exports = completeUnit, module.exports.toPixel = toPixel, module.exports.toRealSize = toRealSize;