You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.2 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _utils = require("@mui/utils");
var _cssVarsParser = _interopRequireDefault(require("./cssVarsParser"));
const _excluded = ["colorSchemes", "components"],
_excluded2 = ["light"];
function prepareCssVars(theme, parserConfig) {
// @ts-ignore - ignore components do not exist
const {
colorSchemes = {}
} = theme,
otherTheme = (0, _objectWithoutPropertiesLoose2.default)(theme, _excluded);
const {
vars: rootVars,
css: rootCss,
varsWithDefaults: rootVarsWithDefaults
} = (0, _cssVarsParser.default)(otherTheme, parserConfig);
let themeVars = rootVarsWithDefaults;
const colorSchemesMap = {};
const {
light
} = colorSchemes,
otherColorSchemes = (0, _objectWithoutPropertiesLoose2.default)(colorSchemes, _excluded2);
Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
const {
vars,
css,
varsWithDefaults
} = (0, _cssVarsParser.default)(scheme, parserConfig);
themeVars = (0, _utils.deepmerge)(themeVars, varsWithDefaults);
colorSchemesMap[key] = {
css,
vars
};
});
if (light) {
// light color scheme vars should be merged last to set as default
const {
css,
vars,
varsWithDefaults
} = (0, _cssVarsParser.default)(light, parserConfig);
themeVars = (0, _utils.deepmerge)(themeVars, varsWithDefaults);
colorSchemesMap.light = {
css,
vars
};
}
const generateCssVars = colorScheme => {
if (!colorScheme) {
return {
css: (0, _extends2.default)({}, rootCss),
vars: rootVars
};
}
return {
css: (0, _extends2.default)({}, colorSchemesMap[colorScheme].css),
vars: colorSchemesMap[colorScheme].vars
};
};
return {
vars: themeVars,
generateCssVars
};
}
var _default = exports.default = prepareCssVars;