mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-12 20:18:41 -09:00
31 lines
758 B
JavaScript
31 lines
758 B
JavaScript
// hack to configure important style attributes
|
|
// to work around this madness:
|
|
// https://github.com/Khan/aphrodite/pull/41
|
|
|
|
export default function overrideStyle (obj) {
|
|
if (obj) {
|
|
return function (ref) {
|
|
if (ref) {
|
|
for (const key in obj) {
|
|
if (null != obj[key]) {
|
|
const val = 'number' === typeof obj[key]
|
|
? `${obj[key]}px`
|
|
: String(obj[key]);
|
|
const prop = toProp(key);
|
|
ref.style.setProperty(prop, val, 'important');
|
|
}
|
|
}
|
|
}
|
|
};
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// converts camelCase to camel-case
|
|
function toProp (key) {
|
|
return key.replace(
|
|
/[a-z]([A-Z])/,
|
|
(a, b) => a.substr(0, a.length - 1) + '-' + b.toLowerCase()
|
|
);
|
|
}
|