48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports['default'] = toCssValue;
|
|
var join = function join(value, by) {
|
|
var result = '';
|
|
for (var i = 0; i < value.length; i++) {
|
|
// Remove !important from the value, it will be readded later.
|
|
if (value[i] === '!important') break;
|
|
if (result) result += by;
|
|
result += value[i];
|
|
}
|
|
return result;
|
|
};
|
|
|
|
/**
|
|
* Converts array values to string.
|
|
*
|
|
* `margin: [['5px', '10px']]` > `margin: 5px 10px;`
|
|
* `border: ['1px', '2px']` > `border: 1px, 2px;`
|
|
* `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`
|
|
* `color: ['red', !important]` > `color: red !important;`
|
|
*/
|
|
function toCssValue(value) {
|
|
var ignoreImportant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
|
|
if (!Array.isArray(value)) return value;
|
|
|
|
var cssValue = '';
|
|
|
|
// Support space separated values via `[['5px', '10px']]`.
|
|
if (Array.isArray(value[0])) {
|
|
for (var i = 0; i < value.length; i++) {
|
|
if (value[i] === '!important') break;
|
|
if (cssValue) cssValue += ', ';
|
|
cssValue += join(value[i], ' ');
|
|
}
|
|
} else cssValue = join(value, ', ');
|
|
|
|
// Add !important, because it was ignored.
|
|
if (!ignoreImportant && value[value.length - 1] === '!important') {
|
|
cssValue += ' !important';
|
|
}
|
|
|
|
return cssValue;
|
|
} |