django-bananas
Version:
React admin frontend for Django.
125 lines (124 loc) • 4.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.applyThemeDefaults = applyThemeDefaults;
exports.createBananasTheme = createBananasTheme;
exports.default = void 0;
exports.extendTheme = extendTheme;
var _colors = require("@mui/material/colors");
var _styles = require("@mui/material/styles");
var _lodash = require("lodash");
var _colors2 = require("./colors");
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) { _defineProperty(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; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
var defaults = {
bananas: true
/*
overrides: {
BananasNavBar: {
drawer: {
width: 280,
},
},
},
*/
};
function applyThemeDefaults(theme) {
if (!theme.bananas) {
return extendTheme(defaults, theme);
}
return theme;
}
function createBananasTheme(rawTheme) {
var theme = (0, _styles.createTheme)(applyThemeDefaults(rawTheme));
theme.gap = function () {
var parse = m => m * parseInt(theme.spacing(1), 10);
for (var _len = arguments.length, multipliers = new Array(_len), _key = 0; _key < _len; _key++) {
multipliers[_key] = arguments[_key];
}
if (multipliers.length === 0) {
return parse(1);
}
if (multipliers.length === 1) {
return parse(multipliers[0]);
}
return multipliers.reduce((aggr, m) => [...aggr, "".concat(parse(m), "px")], []).join(" ");
};
return theme;
}
function extendTheme(source, overrides) {
var extended = (0, _lodash.merge)((0, _lodash.cloneDeep)(source), overrides);
extended.extend = o => extendTheme(extended, o);
return extended;
}
var lightTheme = {
palette: {
mode: "light",
primary: _colors2.django,
secondary: _colors.amber,
background: {
default: "#fafafa"
}
}
};
var darkTheme = {
palette: {
mode: "dark",
primary: lightTheme.palette.primary,
secondary: lightTheme.palette.secondary,
background: {
paper: "#303030",
default: "#222"
},
action: {
selected: "rgba(255, 255, 255, 0.12)",
hover: "rgba(255, 255, 255, 0.03)"
},
divider: "rgba(255, 255, 255, 0.07)"
},
overrides: {
MuiSnackbarContent: {
root: {
color: "#fff"
}
}
}
};
var darthTheme = _objectSpread(_objectSpread({}, darkTheme), {}, {
overrides: _objectSpread(_objectSpread({}, darkTheme.overrides), {}, {
BananasAdmin: {
root: {
backgroundColor: "#222"
}
},
BananasNavBar: {
header: {
background: "#111"
},
drawer: {
background: "#272727"
}
},
BananasTitleBar: {
colorPrimary: {
background: "#272727"
}
},
BananasLoginPage: {
title: {
background: "#272727"
}
}
})
});
var themes = {
light: applyThemeDefaults(lightTheme),
dark: applyThemeDefaults(darkTheme),
darth: applyThemeDefaults(darthTheme)
};
themes.default = themes.light;
var _default = exports.default = themes;