winbox-ui-next
Version:
We Design Vue 2.0: A Vue.js 3 UI Library
85 lines (84 loc) • 3.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports[Symbol.toStringTag] = "Module";
var vue = require("vue");
var lodashEs = require("lodash-es");
var vue3Ssr = require("@css-render/vue3-ssr");
var index_cssr = require("../_styles/global/index.cssr.js");
var context = require("../config-provider/src/context.js");
var common = require("./common.js");
function createTheme(theme) {
return theme;
}
function useTheme(resolveId, mountId, style, defaultTheme, props, clsPrefixRef) {
const ssrAdapter = vue3Ssr.useSsrAdapter();
const NConfigProvider = vue.inject(context.configProviderInjectionKey, null);
if (style) {
const mountStyle = () => {
const clsPrefix = clsPrefixRef == null ? void 0 : clsPrefixRef.value;
style.mount({
id: clsPrefix === void 0 ? mountId : clsPrefix + mountId,
head: true,
props: {
bPrefix: clsPrefix ? `.${clsPrefix}-` : void 0
},
anchorMetaName: common.cssrAnchorMetaName,
ssr: ssrAdapter
});
if (!(NConfigProvider == null ? void 0 : NConfigProvider.preflightStyleDisabled)) {
index_cssr.mount({
id: "n-global",
head: true,
anchorMetaName: common.cssrAnchorMetaName,
ssr: ssrAdapter
});
}
};
if (ssrAdapter) {
mountStyle();
} else {
vue.onBeforeMount(mountStyle);
}
}
const mergedThemeRef = vue.computed(() => {
var _a;
const {
theme: { common: selfCommon, self, peers = {} } = {},
themeOverrides: selfOverrides = {},
builtinThemeOverrides: builtinOverrides = {}
} = props;
const { common: selfCommonOverrides, peers: peersOverrides } = selfOverrides;
const {
common: globalCommon = void 0,
[resolveId]: {
common: globalSelfCommon = void 0,
self: globalSelf = void 0,
peers: globalPeers = {}
} = {}
} = (NConfigProvider == null ? void 0 : NConfigProvider.mergedThemeRef.value) || {};
const {
common: globalCommonOverrides = void 0,
[resolveId]: globalSelfOverrides = {}
} = (NConfigProvider == null ? void 0 : NConfigProvider.mergedThemeOverridesRef.value) || {};
const {
common: globalSelfCommonOverrides,
peers: globalPeersOverrides = {}
} = globalSelfOverrides;
const mergedCommon = lodashEs.merge({}, selfCommon || globalSelfCommon || globalCommon || defaultTheme.common, globalCommonOverrides, globalSelfCommonOverrides, selfCommonOverrides);
const mergedSelf = lodashEs.merge((_a = self || globalSelf || defaultTheme.self) == null ? void 0 : _a(mergedCommon), builtinOverrides, globalSelfOverrides, selfOverrides);
return {
common: mergedCommon,
self: mergedSelf,
peers: lodashEs.merge({}, defaultTheme.peers, globalPeers, peers),
peerOverrides: lodashEs.merge({}, builtinOverrides.peers, globalPeersOverrides, peersOverrides)
};
});
return mergedThemeRef;
}
useTheme.props = {
theme: Object,
themeOverrides: Object,
builtinThemeOverrides: Object
};
exports.createTheme = createTheme;
exports["default"] = useTheme;