js-web-tools
Version:
Tools for Javascript develpers
70 lines (57 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.convertStyle = convertStyle;
exports.domStyle = domStyle;
exports["default"] = void 0;
var _domUtils = require("./domUtils");
function hyphenate(s) {
var str = s.replace(/([A-Z])/g, '-$1').toLowerCase();
return str.replace(/^ms-/, '-ms-');
}
function convertStyle(styleObj) {
var style = '';
for (var prop in styleObj) {
/* istanbul ignore else */
if (Object.prototype.hasOwnProperty.call(styleObj, prop)) {
style += prop + ':' + styleObj[prop] + ';';
}
}
return style;
}
function domStyle(ele, prop) {
/* istanbul ignore else */
if (typeof prop === 'string') {
return ele.style.getPropertyValue(hyphenate(prop)) || (0, _domUtils.getComputedStyle)(ele).getPropertyValue(hyphenate(prop));
}
var resCss = '';
var transforms = '';
Object.keys(prop).forEach(function (key) {
var value = prop[key];
if (!value && value !== 0) {
ele.style.removeProperty(hyphenate(key));
} else if ((0, _domUtils.isTransform)(key)) {
transforms += "".concat(key, "(").concat(value, ") ");
} else {
resCss += "".concat(hyphenate(key), ": ").concat(value, ";");
}
});
/* istanbul ignore else */
if (transforms) {
resCss += "transform: ".concat(transforms, ";");
}
var cssText = ele.style.cssText;
if (cssText) {
/* istanbul ignore else */
if (/;$/.test(cssText)) {
ele.style.cssText += "".concat(resCss);
} else {
ele.style.cssText += ";".concat(resCss);
}
} else {
ele.style.cssText = "".concat(resCss);
}
}
var _default = domStyle;
exports["default"] = _default;