@bytedance/mona-shared
Version:
mona shared utils
37 lines • 1.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports._transformWebStyle = void 0;
const RPX_VALUE_REG_WITH_NUM = /-?\d*\.?\d+rpx/g;
const RPX_VALUE_REG = /rpx$/;
const ROOT_FONT_SIZE_PX = 100;
const rpxToRem = (origin) => {
if (RPX_VALUE_REG.test(origin)) {
const num = Number(origin.replace(RPX_VALUE_REG, ''));
if (!Number.isNaN(num)) {
return `${num / ROOT_FONT_SIZE_PX / 2}rem`;
}
}
return origin;
};
const transformRpxToRem = (origin) => {
return origin.replace(RPX_VALUE_REG_WITH_NUM, function (value) {
return rpxToRem(value);
});
};
const _transformWebStyle = (style) => {
if (!style || typeof style !== 'object') {
return style;
}
const result = {};
Object.keys(style).forEach(styleKey => {
if (typeof style[styleKey] === 'string') {
result[styleKey] = transformRpxToRem(style[styleKey]);
}
else {
result[styleKey] = style[styleKey];
}
});
return result;
};
exports._transformWebStyle = _transformWebStyle;
//# sourceMappingURL=_transformWebStyle.js.map
;