'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _cssValue = require('css-value');
var _cssValue2 = _interopRequireDefault(_cssValue);
var _rgb2hex = require('rgb2hex');
var _rgb2hex2 = _interopRequireDefault(_rgb2hex);
var _sanitize = require('./sanitize');
var _sanitize2 = _interopRequireDefault(_sanitize);
var parse = function parse(cssPropertyValue, cssProperty) {
if (!cssPropertyValue || !cssPropertyValue.value) {
return null;
}
var parsedValue = {
property: cssProperty,
value: cssPropertyValue.value.toLowerCase().trim()
};
if (parsedValue.value.indexOf('rgb') === 0) {
/**
* remove whitespaces in rgb values
*/
parsedValue.value = parsedValue.value.replace(/\s/g, '');
/**
* parse color values
*/
var color = parsedValue.value;
parsedValue.parsed = (0, _rgb2hex2['default'])(parsedValue.value);
parsedValue.parsed.type = 'color';
parsedValue.parsed[/[rgba]+/g.exec(color)[0]] = color;
} else if (parsedValue.property === 'font-family') {
var font = (0, _cssValue2['default'])(cssPropertyValue.value);
var string = parsedValue.value;
var value = cssPropertyValue.value.split(/,/).map(_sanitize2['default'].css);
parsedValue.value = _sanitize2['default'].css(font[0].value || font[0].string);
parsedValue.parsed = { value: value, type: 'font', string: string };
} else {
/**
* parse other css properties
*/
try {
parsedValue.parsed = (0, _cssValue2['default'])(cssPropertyValue.value);
if (parsedValue.parsed.length === 1) {
parsedValue.parsed = parsedValue.parsed[0];
}
if (parsedValue.parsed.type && parsedValue.parsed.type === 'number' && parsedValue.parsed.unit === '') {
parsedValue.value = parsedValue.parsed.value;
}
} catch (e) {
// TODO improve css-parse lib to handle properties like
// `-webkit-animation-timing-function : cubic-bezier(0.25, 0.1, 0.25, 1)
}
}
return parsedValue;
};
var parseCSS = function parseCSS(response, cssProperty) {
var parsedCSS = [];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = response[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var res = _step.value;
parsedCSS.push(parse(res, cssProperty));
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
if (parsedCSS.length === 1) {
return parsedCSS[0];
} else if (parsedCSS.length === 0) {
return null;
}
return parsedCSS;
};
exports['default'] = parseCSS;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvaGVscGVycy9wYXJzZUNTUy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7d0JBQXFCLFdBQVc7Ozs7dUJBQ1osU0FBUzs7Ozt3QkFFUixZQUFZOzs7O0FBRWpDLElBQUksS0FBSyxHQUFHLFNBQVIsS0FBSyxDQUFhLGdCQUFnQixFQUFFLFdBQVcsRUFBRTtBQUNqRCxRQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7QUFDOUMsZUFBTyxJQUFJLENBQUE7S0FDZDs7QUFFRCxRQUFJLFdBQVcsR0FBRztBQUNkLGdCQUFRLEVBQUUsV0FBVztBQUNyQixhQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRTtLQUNyRCxDQUFBOztBQUVELFFBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFOzs7O0FBSXhDLG1CQUFXLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTs7Ozs7QUFLeEQsWUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQTtBQUM3QixtQkFBVyxDQUFDLE1BQU0sR0FBRywwQkFBUSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDL0MsbUJBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQTtBQUNqQyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFBO0tBQ3hELE1BQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxLQUFLLGFBQWEsRUFBRTtBQUMvQyxZQUFJLElBQUksR0FBRywyQkFBUyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMzQyxZQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFBO0FBQzlCLFlBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFTLEdBQUcsQ0FBQyxDQUFBOztBQUUvRCxtQkFBVyxDQUFDLEtBQUssR0FBRyxzQkFBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDakUsbUJBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUwsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFOLE1BQU0sRUFBRSxDQUFBO0tBQ3ZELE1BQU07Ozs7QUFJSCxZQUFJO0FBQ0EsdUJBQVcsQ0FBQyxNQUFNLEdBQUcsMkJBQVMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUE7O0FBRXJELGdCQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNqQywyQkFBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQzdDOztBQUVELGdCQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7QUFDbkcsMkJBQVcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7YUFDL0M7U0FDSixDQUFDLE9BQU8sQ0FBQyxFQUFFOzs7U0FHWDtLQUNKOztBQUVELFdBQU8sV0FBVyxDQUFBO0NBQ3JCLENBQUE7O0FBRUQsSUFBSSxRQUFRLEdBQUcsU0FBWCxRQUFRLENBQWEsUUFBUSxFQUFFLFdBQVcsRUFBRTtBQUM1QyxRQUFJLFNBQVMsR0FBRyxFQUFFLENBQUE7Ozs7Ozs7QUFFbEIsNkJBQWdCLFFBQVEsOEhBQUU7Z0JBQWpCLEdBQUc7O0FBQ1IscUJBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO1NBQzFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUQsUUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUN4QixlQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUN0QixNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDL0IsZUFBTyxJQUFJLENBQUE7S0FDZDs7QUFFRCxXQUFPLFNBQVMsQ0FBQTtDQUNuQixDQUFBOztxQkFFYyxRQUFRIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvaGVscGVycy9wYXJzZUNTUy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjc3NWYWx1ZSBmcm9tICdjc3MtdmFsdWUnXG5pbXBvcnQgcmdiMmhleCBmcm9tICdyZ2IyaGV4J1xuXG5pbXBvcnQgc2FuaXRpemUgZnJvbSAnLi9zYW5pdGl6ZSdcblxubGV0IHBhcnNlID0gZnVuY3Rpb24gKGNzc1Byb3BlcnR5VmFsdWUsIGNzc1Byb3BlcnR5KSB7XG4gICAgaWYgKCFjc3NQcm9wZXJ0eVZhbHVlIHx8ICFjc3NQcm9wZXJ0eVZhbHVlLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgbGV0IHBhcnNlZFZhbHVlID0ge1xuICAgICAgICBwcm9wZXJ0eTogY3NzUHJvcGVydHksXG4gICAgICAgIHZhbHVlOiBjc3NQcm9wZXJ0eVZhbHVlLnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZFZhbHVlLnZhbHVlLmluZGV4T2YoJ3JnYicpID09PSAwKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiByZW1vdmUgd2hpdGVzcGFjZXMgaW4gcmdiIHZhbHVlc1xuICAgICAgICAgKi9cbiAgICAgICAgcGFyc2VkVmFsdWUudmFsdWUgPSBwYXJzZWRWYWx1ZS52YWx1ZS5yZXBsYWNlKC9cXHMvZywgJycpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHBhcnNlIGNvbG9yIHZhbHVlc1xuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGNvbG9yID0gcGFyc2VkVmFsdWUudmFsdWVcbiAgICAgICAgcGFyc2VkVmFsdWUucGFyc2VkID0gcmdiMmhleChwYXJzZWRWYWx1ZS52YWx1ZSlcbiAgICAgICAgcGFyc2VkVmFsdWUucGFyc2VkLnR5cGUgPSAnY29sb3InXG4gICAgICAgIHBhcnNlZFZhbHVlLnBhcnNlZFsvW3JnYmFdKy9nLmV4ZWMoY29sb3IpWzBdXSA9IGNvbG9yXG4gICAgfSBlbHNlIGlmIChwYXJzZWRWYWx1ZS5wcm9wZXJ0eSA9PT0gJ2ZvbnQtZmFtaWx5Jykge1xuICAgICAgICBsZXQgZm9udCA9IGNzc1ZhbHVlKGNzc1Byb3BlcnR5VmFsdWUudmFsdWUpXG4gICAgICAgIGxldCBzdHJpbmcgPSBwYXJzZWRWYWx1ZS52YWx1ZVxuICAgICAgICBsZXQgdmFsdWUgPSBjc3NQcm9wZXJ0eVZhbHVlLnZhbHVlLnNwbGl0KC8sLykubWFwKHNhbml0aXplLmNzcylcblxuICAgICAgICBwYXJzZWRWYWx1ZS52YWx1ZSA9IHNhbml0aXplLmNzcyhmb250WzBdLnZhbHVlIHx8IGZvbnRbMF0uc3RyaW5nKVxuICAgICAgICBwYXJzZWRWYWx1ZS5wYXJzZWQgPSB7IHZhbHVlLCB0eXBlOiAnZm9udCcsIHN0cmluZyB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHBhcnNlIG90aGVyIGNzcyBwcm9wZXJ0aWVzXG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcGFyc2VkVmFsdWUucGFyc2VkID0gY3NzVmFsdWUoY3NzUHJvcGVydHlWYWx1ZS52YWx1ZSlcblxuICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlLnBhcnNlZC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZS5wYXJzZWQgPSBwYXJzZWRWYWx1ZS5wYXJzZWRbMF1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlLnBhcnNlZC50eXBlICYmIHBhcnNlZFZhbHVlLnBhcnNlZC50eXBlID09PSAnbnVtYmVyJyAmJiBwYXJzZWRWYWx1ZS5wYXJzZWQudW5pdCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZS52YWx1ZSA9IHBhcnNlZFZhbHVlLnBhcnNlZC52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBUT0RPIGltcHJvdmUgY3NzLXBhcnNlIGxpYiB0byBoYW5kbGUgcHJvcGVydGllcyBsaWtlXG4gICAgICAgICAgICAvLyBgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIDogIGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkVmFsdWVcbn1cblxubGV0IHBhcnNlQ1NTID0gZnVuY3Rpb24gKHJlc3BvbnNlLCBjc3NQcm9wZXJ0eSkge1xuICAgIGxldCBwYXJzZWRDU1MgPSBbXVxuXG4gICAgZm9yIChsZXQgcmVzIG9mIHJlc3BvbnNlKSB7XG4gICAgICAgIHBhcnNlZENTUy5wdXNoKHBhcnNlKHJlcywgY3NzUHJvcGVydHkpKVxuICAgIH1cblxuICAgIGlmIChwYXJzZWRDU1MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBwYXJzZWRDU1NbMF1cbiAgICB9IGVsc2UgaWYgKHBhcnNlZENTUy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkQ1NTXG59XG5cbmV4cG9ydCBkZWZhdWx0IHBhcnNlQ1NTXG4iXX0= |