UNPKG

winbox-ui-next

Version:

We Design Vue 2.0: A Vue.js 3 UI Library

81 lines (80 loc) 2.99 kB
import { inject, onBeforeMount, computed } from "vue"; import { merge } from "lodash-es"; import { useSsrAdapter } from "@css-render/vue3-ssr"; import globalStyle from "../_styles/global/index.cssr.js"; import { configProviderInjectionKey } from "../config-provider/src/context.js"; import { cssrAnchorMetaName } from "./common.js"; function createTheme(theme) { return theme; } function useTheme(resolveId, mountId, style, defaultTheme, props, clsPrefixRef) { const ssrAdapter = useSsrAdapter(); const NConfigProvider = inject(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: cssrAnchorMetaName, ssr: ssrAdapter }); if (!(NConfigProvider == null ? void 0 : NConfigProvider.preflightStyleDisabled)) { globalStyle.mount({ id: "n-global", head: true, anchorMetaName: cssrAnchorMetaName, ssr: ssrAdapter }); } }; if (ssrAdapter) { mountStyle(); } else { onBeforeMount(mountStyle); } } const mergedThemeRef = 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 = merge({}, selfCommon || globalSelfCommon || globalCommon || defaultTheme.common, globalCommonOverrides, globalSelfCommonOverrides, selfCommonOverrides); const mergedSelf = merge((_a = self || globalSelf || defaultTheme.self) == null ? void 0 : _a(mergedCommon), builtinOverrides, globalSelfOverrides, selfOverrides); return { common: mergedCommon, self: mergedSelf, peers: merge({}, defaultTheme.peers, globalPeers, peers), peerOverrides: merge({}, builtinOverrides.peers, globalPeersOverrides, peersOverrides) }; }); return mergedThemeRef; } useTheme.props = { theme: Object, themeOverrides: Object, builtinThemeOverrides: Object }; export { createTheme, useTheme as default };