mirror of https://gitee.com/antv-l7/antv-l7
43 lines
975 B
JavaScript
43 lines
975 B
JavaScript
var parse = require('inline-style-parser');
|
|
|
|
/**
|
|
* Parses inline style to object.
|
|
*
|
|
* @example
|
|
* // returns { 'line-height': '42' }
|
|
* StyleToObject('line-height: 42;');
|
|
*
|
|
* @param {String} style - The inline style.
|
|
* @param {Function} [iterator] - The iterator function.
|
|
* @return {null|Object}
|
|
*/
|
|
function StyleToObject(style, iterator) {
|
|
var output = null;
|
|
if (!style || typeof style !== 'string') {
|
|
return output;
|
|
}
|
|
|
|
var declaration;
|
|
var declarations = parse(style);
|
|
var hasIterator = typeof iterator === 'function';
|
|
var property;
|
|
var value;
|
|
|
|
for (var i = 0, len = declarations.length; i < len; i++) {
|
|
declaration = declarations[i];
|
|
property = declaration.property;
|
|
value = declaration.value;
|
|
|
|
if (hasIterator) {
|
|
iterator(property, value, declaration);
|
|
} else if (value) {
|
|
output || (output = {});
|
|
output[property] = value;
|
|
}
|
|
}
|
|
|
|
return output;
|
|
}
|
|
|
|
module.exports = StyleToObject;
|