UNPKG

@formant/ava-react

Version:

React components of AVA.

30 lines 1.25 kB
import { seedToken } from "../../theme"; function getStyle(ele, style) { var _ele$currentStyle; // @ts-ignore currentStyle for IE return window.getComputedStyle ? window.getComputedStyle(ele, null)[style] : ele === null || ele === void 0 || (_ele$currentStyle = ele.currentStyle) === null || _ele$currentStyle === void 0 ? void 0 : _ele$currentStyle[style]; } function isAbsoluteUnitPx(str) { return str === null || str === void 0 ? void 0 : str.endsWith('px'); } function getPxNumber(str) { var removeUnit = str.replace(/px$/, ''); var resultNumber = Number(removeUnit); if (!Number.isNaN(resultNumber)) return resultNumber; return undefined; } export function getElementFontSize(ele) { var defaultSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : seedToken.fontSizeBase; var FONT_SIZE = 'font-size'; var eleFontSizeStr = getStyle(ele, FONT_SIZE); if (eleFontSizeStr && isAbsoluteUnitPx(eleFontSizeStr)) { var px = getPxNumber(eleFontSizeStr); if (px) return px; } var bodyFontSizeStr = getStyle(window.document.body, FONT_SIZE); if (bodyFontSizeStr && isAbsoluteUnitPx(bodyFontSizeStr)) { var _px = getPxNumber(bodyFontSizeStr); if (_px) return _px; } return defaultSize; }