39 lines
995 B
JavaScript
39 lines
995 B
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
|
|
var _warning = require('warning');
|
|
|
|
var _warning2 = _interopRequireDefault(_warning);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
|
|
var semiWithNl = /;\n/;
|
|
|
|
/**
|
|
* Naive CSS parser.
|
|
* - Supports only rule body (no selectors)
|
|
* - Requires semicolon and new line after the value (except of last line)
|
|
* - No nested rules support
|
|
*/
|
|
|
|
exports['default'] = function (cssText) {
|
|
var style = {};
|
|
var split = cssText.split(semiWithNl);
|
|
for (var i = 0; i < split.length; i++) {
|
|
var decl = (split[i] || '').trim();
|
|
|
|
if (!decl) continue;
|
|
var colonIndex = decl.indexOf(':');
|
|
if (colonIndex === -1) {
|
|
(0, _warning2['default'])(false, 'Malformed CSS string "%s"', decl);
|
|
continue;
|
|
}
|
|
var prop = decl.substr(0, colonIndex).trim();
|
|
var value = decl.substr(colonIndex + 1).trim();
|
|
style[prop] = value;
|
|
}
|
|
return style;
|
|
}; |