UNPKG

@react-awesome-query-builder/mui

Version:
107 lines (106 loc) 7.11 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCssVars = exports.buildTheme = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _ui = require("@react-awesome-query-builder/ui"); var _styles = require("@mui/material/styles"); var _mergeWith = _interopRequireDefault(require("lodash/mergeWith")); var _omit = _interopRequireDefault(require("lodash/omit")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // https://mui.com/material-ui/customization/theming/ // https://mui.com/material-ui/customization/palette/ // https://mui.com/material-ui/customization/default-theme/ var _Utils$ColorUtils = _ui.Utils.ColorUtils, setColorOpacity = _Utils$ColorUtils.setColorOpacity, generateCssVarsForLevels = _Utils$ColorUtils.generateCssVarsForLevels, chroma = _Utils$ColorUtils.chroma; var logger = _ui.Utils.OtherUtils.logger; var filterBasicTheme = function filterBasicTheme(theme) { var filteredPalette = (0, _omit["default"])(theme.palette, ["background", "text", "divider", "action"]); // filteredPalette = pick(filteredPalette, [ // "primary", "secondary", "error", "warning", "info", "success" // ]); return _objectSpread(_objectSpread({}, theme), {}, { palette: filteredPalette }); }; var buildTheme = exports.buildTheme = function buildTheme(config, existingTheme) { var _config$settings$them, _config$settings$loca; var themeMode = config.settings.themeMode; // const compactMode = config.settings.compactMode; // const momentLocale = config.settings.locale?.moment; var themeConfig = (_config$settings$them = config.settings.theme) === null || _config$settings$them === void 0 ? void 0 : _config$settings$them.mui; var localeConfig = (_config$settings$loca = config.settings.locale) === null || _config$settings$loca === void 0 ? void 0 : _config$settings$loca.mui; var isFullTheme = function isFullTheme(t) { var _t$palette; return !!(t !== null && t !== void 0 && t.shadows) && !!(t !== null && t !== void 0 && (_t$palette = t.palette) !== null && _t$palette !== void 0 && _t$palette.mode); }; var existingThemeMode = existingTheme === null || existingTheme === void 0 ? void 0 : existingTheme.palette.mode; var canCreateTheme = !!themeConfig || themeMode || localeConfig; if (!canCreateTheme) { return null; } var mergedThemeOptions = undefined; if (isFullTheme(themeConfig)) { // override existing theme completely mergedThemeOptions = themeConfig; } else { // merge with existing theme var filteredExistingTheme = themeMode && existingTheme && themeMode != existingThemeMode ? filterBasicTheme(existingTheme) : existingTheme; mergedThemeOptions = (0, _mergeWith["default"])({}, filteredExistingTheme !== null && filteredExistingTheme !== void 0 ? filteredExistingTheme : {}, themeConfig !== null && themeConfig !== void 0 ? themeConfig : {}, themeMode && { palette: { mode: themeMode } }); } return (0, _styles.createTheme)(mergedThemeOptions, localeConfig !== null && localeConfig !== void 0 ? localeConfig : {}); }; var generateCssVars = exports.generateCssVars = function generateCssVars(theme, config) { var _config$settings$desi, _config$settings$desi2, _config$settings$desi3, _config$settings$desi4; logger.log("generateCssVars - MUI theme", theme); var palette = theme.palette, typography = theme.typography, shadows = theme.shadows; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access var shape = theme.shape; var darkMode = palette.mode === "dark"; var useThickLeftBorderOnHoverItem = (_config$settings$desi = (_config$settings$desi2 = config.settings.designSettings) === null || _config$settings$desi2 === void 0 ? void 0 : _config$settings$desi2.useThickLeftBorderOnHoverItem) !== null && _config$settings$desi !== void 0 ? _config$settings$desi : false; var useShadowOnHoverItem = (_config$settings$desi3 = (_config$settings$desi4 = config.settings.designSettings) === null || _config$settings$desi4 === void 0 ? void 0 : _config$settings$desi4.useShadowOnHoverItem) !== null && _config$settings$desi3 !== void 0 ? _config$settings$desi3 : false; var cssVars = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({ "--main-background": palette.background.paper, "--rule-background": darkMode ? palette.background.paper : palette.background.paper }, generateCssVarsForLevels(darkMode, "--group-background", palette.background.paper)), generateCssVarsForLevels(darkMode, "--rulegroup-background", palette.background.paper)), generateCssVarsForLevels(darkMode, "--rulegroupext-background", palette.background.paper)), generateCssVarsForLevels(darkMode, "--switch-background", palette.background.paper)), generateCssVarsForLevels(darkMode, "--case-background", palette.background.paper)), {}, { "--rule-border-color": darkMode ? palette.divider : chroma(palette.divider).brighten(3).hex(), "--group-border-color": darkMode ? palette.divider : palette.divider, "--rulegroup-border-color": darkMode ? palette.divider : palette.divider, "--rulegroupext-border-color": darkMode ? palette.divider : palette.divider, "--switch-border-color": darkMode ? palette.divider : palette.divider, "--case-border-color": darkMode ? palette.divider : palette.divider, "--treeline-color": palette.primary.main, "--treeline-switch-color": palette.secondary.main, "--main-text-color": palette.text.primary, "--main-font-family": typography.fontFamily, "--main-font-size": typography.fontSize + "px", "--item-radius": shape.borderRadius + "px" }); if (useThickLeftBorderOnHoverItem) { cssVars = _objectSpread(_objectSpread({}, cssVars), {}, { "--rule-border-left-width-hover": "2px", "--group-border-left-width-hover": "2px", "--rulegroup-border-left-width-hover": "2px", "--rulegroupext-border-left-width-hover": "2px" }); } if (useShadowOnHoverItem) { cssVars = _objectSpread(_objectSpread({}, cssVars), {}, { "--rule-shadow-hover": shadows[1], "--group-shadow-hover": shadows[1], "--rulegroup-shadow-hover": shadows[1], "--rulegroupext-shadow-hover": shadows[1] }); } return cssVars; };