@visactor/vchart
Version:
charts lib based @visactor/VGrammar
65 lines (48 loc) • 3.05 kB
JavaScript
;
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
void 0 === k2 && (k2 = k);
var desc = Object.getOwnPropertyDescriptor(m, k);
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
enumerable: !0,
get: function() {
return m[k];
}
}), Object.defineProperty(o, k2, desc);
} : function(o, m, k, k2) {
void 0 === k2 && (k2 = k), o[k2] = m[k];
}), __exportStar = this && this.__exportStar || function(m, exports) {
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.getMergedTheme = exports.themeExist = exports.removeTheme = exports.getTheme = exports.registerTheme = exports.hasThemeMerged = exports.themes = exports.defaultThemeName = exports.builtinThemes = void 0,
__exportStar(require("./light"), exports), __exportStar(require("./dark"), exports);
const vutils_1 = require("@visactor/vutils"), merge_theme_1 = require("../../util/theme/merge-theme"), light_1 = require("./light"), preprocess_1 = require("../../util/theme/preprocess");
exports.builtinThemes = {
[light_1.lightTheme.name]: light_1.lightTheme
}, exports.defaultThemeName = light_1.lightTheme.name, exports.themes = new Map(Object.keys(exports.builtinThemes).map((key => [ key, exports.builtinThemes[key] ])));
const transformedThemes = new Map(Object.keys(exports.builtinThemes).map((key => [ key, (0,
preprocess_1.preprocessTheme)(exports.builtinThemes[key]) ])));
exports.hasThemeMerged = new Map(Object.keys(exports.builtinThemes).map((key => [ key, key === exports.defaultThemeName ])));
const registerTheme = (name, theme) => {
if (!name) return;
const mergedTheme = (0, exports.getMergedTheme)(theme);
exports.themes.set(name, mergedTheme), transformedThemes.set(name, (0, preprocess_1.preprocessTheme)(mergedTheme)),
exports.hasThemeMerged.set(name, !0);
};
exports.registerTheme = registerTheme;
const getTheme = (name = exports.defaultThemeName, transformed = !1) => (exports.hasThemeMerged.has(name) && !exports.hasThemeMerged.get(name) && (0,
exports.registerTheme)(name, exports.themes.get(name)), transformed ? transformedThemes.get(name) : exports.themes.get(name));
exports.getTheme = getTheme;
const removeTheme = name => exports.themes.delete(name) && transformedThemes.delete(name) && exports.hasThemeMerged.delete(name);
exports.removeTheme = removeTheme;
const themeExist = name => !!(0, vutils_1.isString)(name) && exports.themes.has(name);
exports.themeExist = themeExist;
const getMergedTheme = theme => {
var _a;
const baseThemeName = null !== (_a = theme.type) && void 0 !== _a ? _a : exports.defaultThemeName, baseTheme = (0,
exports.getTheme)(baseThemeName);
return (0, merge_theme_1.mergeTheme)({}, baseTheme, theme);
};
exports.getMergedTheme = getMergedTheme;
//# sourceMappingURL=index.js.map