@evg-b/evg-ui
Version:
EVG-UI library inspired by Material Design.
39 lines (29 loc) • 1.25 kB
JavaScript
import _typeof from '@babel/runtime/helpers/typeof';
var getDynamicStyles = function getDynamicStyles() {
var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var keyFramesMap = arguments.length > 1 ? arguments[1] : undefined;
var snippetDynamicFunction = arguments.length > 2 ? arguments[2] : undefined;
// jss/packages/jss/src/utils/getDynamicStyles.js
// Это fix который учитывает keyframes для динамических стилей, чего не делает оригинал.
var to = null;
for (var key in styles) {
var value = styles[key];
var type = _typeof(value);
if (key.includes('@keyframes')) {
keyFramesMap.set(key.replace('@keyframes ', '$'), value);
}
if (type === 'function') {
if (!to) to = {};
to[key] = value;
snippetDynamicFunction.snippet += value.toString();
} else if (type === 'object' && value !== null && !Array.isArray(value)) {
var extracted = getDynamicStyles(value, keyFramesMap, snippetDynamicFunction);
if (extracted) {
if (!to) to = {};
to[key] = extracted;
}
}
} // add keyframe for dynamicStyle
return to;
};
export default getDynamicStyles;