-
Notifications
You must be signed in to change notification settings - Fork 117
/
unit.js
36 lines (33 loc) · 1.07 KB
/
unit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
// Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license
const {
isRelativeSpacing,
isAbsoluteSpacing,
remToPx,
pxToDp
} = require("../util");
const convertRemToPx = prop => {
const baseFontPercentage =
typeof prop.getIn(["meta", "baseFontPercentage"]) === "number"
? prop.getIn(["meta", "baseFontPercentage"])
: 100;
const baseFontPixel =
typeof prop.getIn(["meta", "baseFontPixel"]) === "number"
? prop.getIn(["meta", "baseFontPixel"])
: 16;
return remToPx(prop.get("value"), baseFontPercentage, baseFontPixel);
};
module.exports = {
"relative/pixel": {
predicate: prop => isRelativeSpacing(prop.get("value")),
transform: prop => convertRemToPx(prop)
},
"relative/pixelValue": {
predicate: prop => isRelativeSpacing(prop.get("value")),
transform: prop => convertRemToPx(prop).replace(/px$/g, "")
},
"absolute/dp": {
predicate: prop => isAbsoluteSpacing(prop.get("value")),
transform: prop => pxToDp(prop.get("value"))
}
};