jobiqo-cl
Version:
[](https://circleci.com/gh/jobiqo/jobiqo-cl)
134 lines (123 loc) • 3.26 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var index_esm = require('../../core/dist/index.esm.js');
var defaults = {
space: [0, 4, 8, 16, 32, 64, 128, 256, 512]
};
var isNumber = function isNumber(n) {
return typeof n === 'number' && !isNaN(n);
};
var getMargin = function getMargin(n, scale) {
if (!isNumber(n)) {
return index_esm.get(scale, n, n);
}
var isNegative = n < 0;
var absolute = Math.abs(n);
var value = index_esm.get(scale, absolute, absolute);
if (!isNumber(value)) {
return isNegative ? '-' + value : value;
}
return value * (isNegative ? -1 : 1);
};
var configs = {};
configs.margin = {
margin: {
property: 'margin',
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
},
marginTop: {
property: 'marginTop',
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
},
marginRight: {
property: 'marginRight',
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
},
marginBottom: {
property: 'marginBottom',
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
},
marginLeft: {
property: 'marginLeft',
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
},
marginX: {
properties: ['marginLeft', 'marginRight'],
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
},
marginY: {
properties: ['marginTop', 'marginBottom'],
scale: 'space',
transform: getMargin,
defaultScale: defaults.space
}
};
configs.margin.m = configs.margin.margin;
configs.margin.mt = configs.margin.marginTop;
configs.margin.mr = configs.margin.marginRight;
configs.margin.mb = configs.margin.marginBottom;
configs.margin.ml = configs.margin.marginLeft;
configs.margin.mx = configs.margin.marginX;
configs.margin.my = configs.margin.marginY;
configs.padding = {
padding: {
property: 'padding',
scale: 'space',
defaultScale: defaults.space
},
paddingTop: {
property: 'paddingTop',
scale: 'space',
defaultScale: defaults.space
},
paddingRight: {
property: 'paddingRight',
scale: 'space',
defaultScale: defaults.space
},
paddingBottom: {
property: 'paddingBottom',
scale: 'space',
defaultScale: defaults.space
},
paddingLeft: {
property: 'paddingLeft',
scale: 'space',
defaultScale: defaults.space
},
paddingX: {
properties: ['paddingLeft', 'paddingRight'],
scale: 'space',
defaultScale: defaults.space
},
paddingY: {
properties: ['paddingTop', 'paddingBottom'],
scale: 'space',
defaultScale: defaults.space
}
};
configs.padding.p = configs.padding.padding;
configs.padding.pt = configs.padding.paddingTop;
configs.padding.pr = configs.padding.paddingRight;
configs.padding.pb = configs.padding.paddingBottom;
configs.padding.pl = configs.padding.paddingLeft;
configs.padding.px = configs.padding.paddingX;
configs.padding.py = configs.padding.paddingY;
var margin = index_esm.system(configs.margin);
var padding = index_esm.system(configs.padding);
var space = index_esm.compose(margin, padding);
exports.margin = margin;
exports.padding = padding;
exports.space = space;