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('');
|
|
}
|
|
};
|