123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import { createVNode as _createVNode } from "vue";
- import { provide, computed, watchEffect, defineComponent } from "vue";
- import { kebabCase, makeStringProp, createNamespace } from "../utils/index.mjs";
- import { setGlobalZIndex } from "../composables/use-global-z-index.mjs";
- const [name, bem] = createNamespace("config-provider");
- const CONFIG_PROVIDER_KEY = Symbol(name);
- const configProviderProps = {
- tag: makeStringProp("div"),
- zIndex: Number,
- themeVars: Object,
- iconPrefix: String
- };
- function mapThemeVarsToCSSVars(themeVars) {
- const cssVars = {};
- Object.keys(themeVars).forEach((key) => {
- cssVars[`--van-${kebabCase(key)}`] = themeVars[key];
- });
- return cssVars;
- }
- var stdin_default = defineComponent({
- name,
- props: configProviderProps,
- setup(props, {
- slots
- }) {
- const style = computed(() => {
- if (props.themeVars) {
- return mapThemeVarsToCSSVars(props.themeVars);
- }
- });
- provide(CONFIG_PROVIDER_KEY, props);
- watchEffect(() => {
- if (props.zIndex !== void 0) {
- setGlobalZIndex(props.zIndex);
- }
- });
- return () => _createVNode(props.tag, {
- "class": bem(),
- "style": style.value
- }, {
- default: () => {
- var _a;
- return [(_a = slots.default) == null ? void 0 : _a.call(slots)];
- }
- });
- }
- });
- export {
- CONFIG_PROVIDER_KEY,
- stdin_default as default
- };
|