49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
![]() |
import { t } from '.';
|
||
|
import ObjectUtils from '../../utils/ObjectUtils';
|
||
|
|
||
|
export const WIDTH_DATA = {
|
||
|
width: t.sizing('width'),
|
||
|
minWidth: t.sizing('minWidth'),
|
||
|
maxWidth: t.sizing('maxWidth'),
|
||
|
w: t.sizing('width'),
|
||
|
minW: t.sizing('minWidth'),
|
||
|
maxW: t.sizing('maxWidth')
|
||
|
};
|
||
|
|
||
|
export const HEIGHT_DATA = {
|
||
|
height: t.sizing('height'),
|
||
|
minHeight: t.sizing('minHeight'),
|
||
|
maxHeight: t.sizing('maxHeight'),
|
||
|
h: t.sizing('height'),
|
||
|
minH: t.sizing('minHeight'),
|
||
|
maxH: t.sizing('maxHeight')
|
||
|
};
|
||
|
|
||
|
const ALL_DATA = { ...WIDTH_DATA, ...HEIGHT_DATA };
|
||
|
const ALL_KEYS = Object.keys(ALL_DATA);
|
||
|
const ALL_PROPS = ALL_KEYS.reduce((acc, k) => ((acc[k] = undefined), acc), {});
|
||
|
|
||
|
export const SPACING = {
|
||
|
data: ALL_DATA,
|
||
|
keys: ALL_KEYS,
|
||
|
props: ALL_PROPS,
|
||
|
resolver: (value) => {
|
||
|
// @todo
|
||
|
return value;
|
||
|
},
|
||
|
declarations: (obj = {}) => {
|
||
|
return Object.entries(obj)
|
||
|
.filter(([key]) => ALL_KEYS.includes(key))
|
||
|
.reduce((acc, [key, value]) => {
|
||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||
|
const rule = ObjectUtils.toKebabCase(key);
|
||
|
|
||
|
acc.push(ALL_DATA[key].declaration(ObjectUtils.css.getVariableValue(value, rule)));
|
||
|
}
|
||
|
|
||
|
return acc;
|
||
|
}, [])
|
||
|
.join('');
|
||
|
}
|
||
|
};
|