feat: initial commit - Phase 1 & 2 core features

This commit is contained in:
hiderfong
2026-04-22 17:07:33 +08:00
commit 1773bda06b
25005 changed files with 6252106 additions and 0 deletions
@@ -0,0 +1,11 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { ConfigProviderProps, ConfigProviderPropsPublic, ExperimentalFeatures, configProviderProps } from "./src/config-provider-props.js";
import { ConfigProvider, ConfigProviderInstance, messageConfig } from "./src/config-provider.js";
import { ConfigProviderContext, configProviderContextKey } from "./src/constants.js";
import { provideGlobalConfig, useGlobalComponentSettings, useGlobalConfig } from "./src/hooks/use-global-config.js";
//#region ../../packages/components/config-provider/index.d.ts
declare const ElConfigProvider: SFCWithInstall<typeof ConfigProvider>;
//#endregion
export { ConfigProviderContext, ConfigProviderInstance, ConfigProviderProps, ConfigProviderPropsPublic, ElConfigProvider, ElConfigProvider as default, ExperimentalFeatures, configProviderContextKey, configProviderProps, messageConfig, provideGlobalConfig, useGlobalComponentSettings, useGlobalConfig };
@@ -0,0 +1,20 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_constants = require('./src/constants.js');
const require_use_global_config = require('./src/hooks/use-global-config.js');
const require_config_provider_props = require('./src/config-provider-props.js');
const require_config_provider = require('./src/config-provider.js');
//#region ../../packages/components/config-provider/index.ts
const ElConfigProvider = require_install.withInstall(require_config_provider.default);
//#endregion
exports.ElConfigProvider = ElConfigProvider;
exports.default = ElConfigProvider;
exports.configProviderContextKey = require_constants.configProviderContextKey;
exports.configProviderProps = require_config_provider_props.configProviderProps;
exports.messageConfig = require_config_provider.messageConfig;
exports.provideGlobalConfig = require_use_global_config.provideGlobalConfig;
exports.useGlobalComponentSettings = require_use_global_config.useGlobalComponentSettings;
exports.useGlobalConfig = require_use_global_config.useGlobalConfig;
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","ConfigProvider"],"sources":["../../../../../packages/components/config-provider/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport ConfigProvider from './src/config-provider'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElConfigProvider: SFCWithInstall<typeof ConfigProvider> =\n withInstall(ConfigProvider)\nexport default ElConfigProvider\n\nexport * from './src/config-provider'\nexport * from './src/config-provider-props'\nexport * from './src/constants'\nexport * from './src/hooks/use-global-config'\n"],"mappings":";;;;;;;;AAKA,MAAa,mBACXA,4BAAYC,gCAAe"}
@@ -0,0 +1,86 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { ButtonConfigContext } from "../../button/src/button.js";
import "../../button/index.js";
import { CardConfigContext } from "../../card/src/card.js";
import "../../card/index.js";
import { Language } from "../../../locale/index.js";
import { DialogConfigContext } from "../../dialog/src/dialog.js";
import "../../dialog/index.js";
import { MessageConfigContext } from "../../message/src/message.js";
import "../../message/index.js";
import { LinkConfigContext } from "../../link/src/link.js";
import "../../link/index.js";
import { TableConfigContext } from "../../table/src/table/defaults.js";
import "../../table/index.js";
import * as vue from "vue";
import { ExtractPropTypes, ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/config-provider/src/config-provider-props.d.ts
type ExperimentalFeatures = {};
declare const configProviderProps: {
readonly emptyValues: ArrayConstructor;
readonly valueOnClear: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>;
readonly a11y: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly locale: {
readonly type: vue.PropType<Language>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly size: {
readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly button: {
readonly type: vue.PropType<ButtonConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly card: {
readonly type: vue.PropType<CardConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly dialog: {
readonly type: vue.PropType<DialogConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly link: {
readonly type: vue.PropType<LinkConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly experimentalFeatures: {
readonly type: vue.PropType<ExperimentalFeatures>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly keyboardNavigation: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly message: {
readonly type: vue.PropType<MessageConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly zIndex: NumberConstructor;
readonly namespace: EpPropFinalized<StringConstructor, unknown, unknown, "el", boolean>;
readonly table: {
readonly type: vue.PropType<TableConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
type ConfigProviderProps = ExtractPropTypes<typeof configProviderProps>;
type ConfigProviderPropsPublic = ExtractPublicPropTypes<typeof configProviderProps>;
//#endregion
export { ConfigProviderProps, ConfigProviderPropsPublic, ExperimentalFeatures, configProviderProps };
@@ -0,0 +1,35 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../utils/vue/props/runtime.js');
const require_index = require('../../../hooks/use-size/index.js');
const require_index$1 = require('../../../hooks/use-empty-values/index.js');
//#region ../../packages/components/config-provider/src/config-provider-props.ts
const configProviderProps = require_runtime.buildProps({
a11y: {
type: Boolean,
default: true
},
locale: { type: require_runtime.definePropType(Object) },
size: require_index.useSizeProp,
button: { type: require_runtime.definePropType(Object) },
card: { type: require_runtime.definePropType(Object) },
dialog: { type: require_runtime.definePropType(Object) },
link: { type: require_runtime.definePropType(Object) },
experimentalFeatures: { type: require_runtime.definePropType(Object) },
keyboardNavigation: {
type: Boolean,
default: true
},
message: { type: require_runtime.definePropType(Object) },
zIndex: Number,
namespace: {
type: String,
default: "el"
},
table: { type: require_runtime.definePropType(Object) },
...require_index$1.useEmptyValuesProps
});
//#endregion
exports.configProviderProps = configProviderProps;
//# sourceMappingURL=config-provider-props.js.map
@@ -0,0 +1 @@
{"version":3,"file":"config-provider-props.js","names":["buildProps","definePropType","useSizeProp","useEmptyValuesProps"],"sources":["../../../../../../packages/components/config-provider/src/config-provider-props.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\nimport type { Language } from '@element-plus/locale'\nimport type { ButtonConfigContext } from '@element-plus/components/button'\nimport type { CardConfigContext } from '@element-plus/components/card'\nimport type { DialogConfigContext } from '@element-plus/components/dialog'\nimport type { MessageConfigContext } from '@element-plus/components/message'\nimport type { LinkConfigContext } from '@element-plus/components/link'\nimport type { TableConfigContext } from '@element-plus/components/table'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type ExperimentalFeatures = {\n // TO BE Defined\n}\n\nexport const configProviderProps = buildProps({\n /**\n * @description Controlling if the users want a11y features\n */\n a11y: {\n type: Boolean,\n default: true,\n },\n /**\n * @description Locale Object\n */\n locale: {\n type: definePropType<Language>(Object),\n },\n /**\n * @description global component size\n */\n size: useSizeProp,\n /**\n * @description button related configuration, [see the following table](https://element-plus.org/en-US/component/config-provider.html#button-attribute)\n */\n button: {\n type: definePropType<ButtonConfigContext>(Object),\n },\n /**\n * @description card related configuration, [see the following table](https://element-plus.org/en-US/component/config-provider.html#card-attribute)\n */\n card: {\n type: definePropType<CardConfigContext>(Object),\n },\n /**\n * @description dialog related configuration, [see the following table](https://element-plus.org/en-US/component/config-provider.html#dialog-attribute)\n */\n dialog: {\n type: definePropType<DialogConfigContext>(Object),\n },\n /**\n * @description link related configuration, [see the following table](https://element-plus.org/en-US/component/config-provider.html#link-attribute)\n */\n link: {\n type: definePropType<LinkConfigContext>(Object),\n },\n /**\n * @description features at experimental stage to be added, all features are default to be set to false, [see the following table](https://element-plus.org/en-US/component/config-provider.html#experimental-features) | ^[object]\n */\n experimentalFeatures: {\n type: definePropType<ExperimentalFeatures>(Object),\n },\n /**\n * @description Controls if we should handle keyboard navigation\n */\n keyboardNavigation: {\n type: Boolean,\n default: true,\n },\n /**\n * @description message related configuration, [see the following table](https://element-plus.org/en-US/component/config-provider.html#message-attribute)\n */\n message: {\n type: definePropType<MessageConfigContext>(Object),\n },\n /**\n * @description global Initial zIndex\n */\n zIndex: Number,\n /**\n * @description global component className prefix (cooperated with [$namespace](https://github.com/element-plus/element-plus/blob/dev/packages/theme-chalk/src/mixins/config.scss#L1)) | ^[string]\n */\n namespace: {\n type: String,\n default: 'el',\n },\n /**\n * @description table related configuration, [see the following table](https://element-plus.org/en-US/component/config-provider.html#table-attribute)\n */\n table: {\n type: definePropType<TableConfigContext>(Object),\n },\n ...useEmptyValuesProps,\n} as const)\nexport type ConfigProviderProps = ExtractPropTypes<typeof configProviderProps>\nexport type ConfigProviderPropsPublic = ExtractPublicPropTypes<\n typeof configProviderProps\n>\n"],"mappings":";;;;;;AAiBA,MAAa,sBAAsBA,2BAAW;CAI5C,MAAM;EACJ,MAAM;EACN,SAAS;EACV;CAID,QAAQ,EACN,MAAMC,+BAAyB,OAAO,EACvC;CAID,MAAMC;CAIN,QAAQ,EACN,MAAMD,+BAAoC,OAAO,EAClD;CAID,MAAM,EACJ,MAAMA,+BAAkC,OAAO,EAChD;CAID,QAAQ,EACN,MAAMA,+BAAoC,OAAO,EAClD;CAID,MAAM,EACJ,MAAMA,+BAAkC,OAAO,EAChD;CAID,sBAAsB,EACpB,MAAMA,+BAAqC,OAAO,EACnD;CAID,oBAAoB;EAClB,MAAM;EACN,SAAS;EACV;CAID,SAAS,EACP,MAAMA,+BAAqC,OAAO,EACnD;CAID,QAAQ;CAIR,WAAW;EACT,MAAM;EACN,SAAS;EACV;CAID,OAAO,EACL,MAAMA,+BAAmC,OAAO,EACjD;CACD,GAAGE;CACJ,CAAU"}
@@ -0,0 +1,149 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { ButtonConfigContext } from "../../button/src/button.js";
import { CardConfigContext } from "../../card/src/card.js";
import { Language } from "../../../locale/index.js";
import { DialogConfigContext } from "../../dialog/src/dialog.js";
import { MessageConfigContext } from "../../message/src/message.js";
import "../../message/index.js";
import { LinkConfigContext } from "../../link/src/link.js";
import { TableConfigContext } from "../../table/src/table/defaults.js";
import { ExperimentalFeatures } from "./config-provider-props.js";
import "../../../index.js";
import * as vue from "vue";
//#region ../../packages/components/config-provider/src/config-provider.d.ts
declare const messageConfig: MessageConfigContext;
declare const ConfigProvider: vue.DefineComponent<vue.ExtractPropTypes<{
readonly emptyValues: ArrayConstructor;
readonly valueOnClear: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>;
readonly a11y: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly locale: {
readonly type: vue.PropType<Language>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly size: {
readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly button: {
readonly type: vue.PropType<ButtonConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly card: {
readonly type: vue.PropType<CardConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly dialog: {
readonly type: vue.PropType<DialogConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly link: {
readonly type: vue.PropType<LinkConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly experimentalFeatures: {
readonly type: vue.PropType<ExperimentalFeatures>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly keyboardNavigation: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly message: {
readonly type: vue.PropType<MessageConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly zIndex: NumberConstructor;
readonly namespace: EpPropFinalized<StringConstructor, unknown, unknown, "el", boolean>;
readonly table: {
readonly type: vue.PropType<TableConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
readonly emptyValues: ArrayConstructor;
readonly valueOnClear: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>;
readonly a11y: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly locale: {
readonly type: vue.PropType<Language>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly size: {
readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly button: {
readonly type: vue.PropType<ButtonConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly card: {
readonly type: vue.PropType<CardConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly dialog: {
readonly type: vue.PropType<DialogConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly link: {
readonly type: vue.PropType<LinkConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly experimentalFeatures: {
readonly type: vue.PropType<ExperimentalFeatures>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly keyboardNavigation: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly message: {
readonly type: vue.PropType<MessageConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly zIndex: NumberConstructor;
readonly namespace: EpPropFinalized<StringConstructor, unknown, unknown, "el", boolean>;
readonly table: {
readonly type: vue.PropType<TableConfigContext>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & Readonly<{}>, {
readonly a11y: EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly keyboardNavigation: EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly namespace: string;
readonly valueOnClear: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown>;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
type ConfigProviderInstance = InstanceType<typeof ConfigProvider> & unknown;
//#endregion
export { ConfigProvider, ConfigProviderInstance, messageConfig };
@@ -0,0 +1,27 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_use_global_config = require('./hooks/use-global-config.js');
const require_config_provider_props = require('./config-provider-props.js');
let vue = require("vue");
//#region ../../packages/components/config-provider/src/config-provider.ts
const messageConfig = { placement: "top" };
const ConfigProvider = (0, vue.defineComponent)({
name: "ElConfigProvider",
props: require_config_provider_props.configProviderProps,
setup(props, { slots }) {
const config = require_use_global_config.provideGlobalConfig(props);
(0, vue.watch)(() => props.message, (val) => {
Object.assign(messageConfig, config?.value?.message ?? {}, val ?? {});
}, {
immediate: true,
deep: true
});
return () => (0, vue.renderSlot)(slots, "default", { config: config?.value });
}
});
//#endregion
exports.default = ConfigProvider;
exports.messageConfig = messageConfig;
//# sourceMappingURL=config-provider.js.map
@@ -0,0 +1 @@
{"version":3,"file":"config-provider.js","names":["configProviderProps","provideGlobalConfig"],"sources":["../../../../../../packages/components/config-provider/src/config-provider.ts"],"sourcesContent":["import { defineComponent, renderSlot, watch } from 'vue'\nimport { provideGlobalConfig } from './hooks/use-global-config'\nimport { configProviderProps } from './config-provider-props'\n\nimport type { MessageConfigContext } from '@element-plus/components/message'\n\nexport const messageConfig: MessageConfigContext = {\n placement: 'top',\n}\n\nconst ConfigProvider = defineComponent({\n name: 'ElConfigProvider',\n props: configProviderProps,\n\n setup(props, { slots }) {\n const config = provideGlobalConfig(props)\n watch(\n () => props.message,\n (val) => {\n Object.assign(messageConfig, config?.value?.message ?? {}, val ?? {})\n },\n { immediate: true, deep: true }\n )\n return () => renderSlot(slots, 'default', { config: config?.value })\n },\n})\nexport type ConfigProviderInstance = InstanceType<typeof ConfigProvider> &\n unknown\n\nexport default ConfigProvider\n"],"mappings":";;;;;;;AAMA,MAAa,gBAAsC,EACjD,WAAW,OACZ;AAED,MAAM,0CAAiC;CACrC,MAAM;CACN,OAAOA;CAEP,MAAM,OAAO,EAAE,SAAS;EACtB,MAAM,SAASC,8CAAoB,MAAM;AACzC,uBACQ,MAAM,UACX,QAAQ;AACP,UAAO,OAAO,eAAe,QAAQ,OAAO,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;KAEvE;GAAE,WAAW;GAAM,MAAM;GAAM,CAChC;AACD,mCAAwB,OAAO,WAAW,EAAE,QAAQ,QAAQ,OAAO,CAAC;;CAEvE,CAAC"}
@@ -0,0 +1,8 @@
import { ConfigProviderProps } from "./config-provider-props.js";
import { InjectionKey, Ref } from "vue";
//#region ../../packages/components/config-provider/src/constants.d.ts
type ConfigProviderContext = Partial<ConfigProviderProps>;
declare const configProviderContextKey: InjectionKey<Ref<ConfigProviderContext>>;
//#endregion
export { ConfigProviderContext, configProviderContextKey };
@@ -0,0 +1,8 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
//#region ../../packages/components/config-provider/src/constants.ts
const configProviderContextKey = Symbol();
//#endregion
exports.configProviderContextKey = configProviderContextKey;
//# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
{"version":3,"file":"constants.js","names":[],"sources":["../../../../../../packages/components/config-provider/src/constants.ts"],"sourcesContent":["import type { ConfigProviderProps } from './config-provider-props'\nimport type { InjectionKey, Ref } from 'vue'\n\nexport type ConfigProviderContext = Partial<ConfigProviderProps>\n\nexport const configProviderContextKey: InjectionKey<\n Ref<ConfigProviderContext>\n> = Symbol()\n"],"mappings":";;;AAKA,MAAa,2BAET,QAAQ"}
@@ -0,0 +1,42 @@
import { LocaleContext } from "../../../../hooks/use-locale/index.js";
import "../../../../hooks/index.js";
import { ConfigProviderProps } from "../config-provider-props.js";
import { ConfigProviderContext } from "../constants.js";
import "../../../../index.js";
import * as vue from "vue";
import { App, Ref } from "vue";
import { MaybeRef } from "@vueuse/core";
//#region ../../packages/components/config-provider/src/hooks/use-global-config.d.ts
declare function useGlobalConfig<K extends keyof ConfigProviderContext, D extends ConfigProviderContext[K]>(key: K, defaultValue?: D): Ref<Exclude<ConfigProviderContext[K], undefined> | D>;
declare function useGlobalConfig(): Ref<ConfigProviderContext>;
declare function useGlobalComponentSettings(block: string, sizeFallback?: MaybeRef<ConfigProviderContext['size']>): {
ns: {
namespace: vue.ComputedRef<string>;
b: (blockSuffix?: string) => string;
e: (element?: string) => string;
m: (modifier?: string) => string;
be: (blockSuffix?: string, element?: string) => string;
em: (element?: string, modifier?: string) => string;
bm: (blockSuffix?: string, modifier?: string) => string;
bem: (blockSuffix?: string, element?: string, modifier?: string) => string;
is: {
(name: string, state: boolean | undefined): string;
(name: string): string;
};
cssVar: (object: Record<string, string>) => Record<string, string>;
cssVarName: (name: string) => string;
cssVarBlock: (object: Record<string, string>) => Record<string, string>;
cssVarBlockName: (name: string) => string;
};
locale: LocaleContext;
zIndex: {
initialZIndex: vue.ComputedRef<number>;
currentZIndex: vue.ComputedRef<number>;
nextZIndex: () => number;
};
size: vue.ComputedRef<"default" | "" | "small" | "large">;
};
declare const provideGlobalConfig: (config: MaybeRef<ConfigProviderContext>, app?: App, global?: boolean) => vue.ComputedRef<Partial<ConfigProviderProps>> | undefined;
//#endregion
export { provideGlobalConfig, useGlobalComponentSettings, useGlobalConfig };
@@ -0,0 +1,70 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
const require_objects = require('../../../../utils/objects.js');
const require_error = require('../../../../utils/error.js');
const require_index = require('../../../../hooks/use-locale/index.js');
const require_index$1 = require('../../../../hooks/use-namespace/index.js');
const require_index$2 = require('../../../../hooks/use-z-index/index.js');
const require_index$3 = require('../../../../hooks/use-size/index.js');
const require_index$4 = require('../../../../hooks/use-empty-values/index.js');
const require_constants = require('../constants.js');
let vue = require("vue");
//#region ../../packages/components/config-provider/src/hooks/use-global-config.ts
const globalConfig = (0, vue.ref)();
function useGlobalConfig(key, defaultValue = void 0) {
const config = (0, vue.getCurrentInstance)() ? (0, vue.inject)(require_constants.configProviderContextKey, globalConfig) : globalConfig;
if (key) return (0, vue.computed)(() => config.value?.[key] ?? defaultValue);
else return config;
}
function useGlobalComponentSettings(block, sizeFallback) {
const config = useGlobalConfig();
const ns = require_index$1.useNamespace(block, (0, vue.computed)(() => config.value?.namespace || require_index$1.defaultNamespace));
const locale = require_index.useLocale((0, vue.computed)(() => config.value?.locale));
const zIndex = require_index$2.useZIndex((0, vue.computed)(() => config.value?.zIndex || require_index$2.defaultInitialZIndex));
const size = (0, vue.computed)(() => (0, vue.unref)(sizeFallback) || config.value?.size || "");
provideGlobalConfig((0, vue.computed)(() => (0, vue.unref)(config) || {}));
return {
ns,
locale,
zIndex,
size
};
}
const provideGlobalConfig = (config, app, global = false) => {
const inSetup = !!(0, vue.getCurrentInstance)();
const oldConfig = inSetup ? useGlobalConfig() : void 0;
const provideFn = app?.provide ?? (inSetup ? vue.provide : void 0);
if (!provideFn) {
require_error.debugWarn("provideGlobalConfig", "provideGlobalConfig() can only be used inside setup().");
return;
}
const context = (0, vue.computed)(() => {
const cfg = (0, vue.unref)(config);
if (!oldConfig?.value) return cfg;
return mergeConfig(oldConfig.value, cfg);
});
provideFn(require_constants.configProviderContextKey, context);
provideFn(require_index.localeContextKey, (0, vue.computed)(() => context.value.locale));
provideFn(require_index$1.namespaceContextKey, (0, vue.computed)(() => context.value.namespace));
provideFn(require_index$2.zIndexContextKey, (0, vue.computed)(() => context.value.zIndex));
provideFn(require_index$3.SIZE_INJECTION_KEY, { size: (0, vue.computed)(() => context.value.size || "") });
provideFn(require_index$4.emptyValuesContextKey, (0, vue.computed)(() => ({
emptyValues: context.value.emptyValues,
valueOnClear: context.value.valueOnClear
})));
if (global || !globalConfig.value) globalConfig.value = context.value;
return context;
};
const mergeConfig = (a, b) => {
const keys = [...new Set([...require_objects.keysOf(a), ...require_objects.keysOf(b)])];
const obj = {};
for (const key of keys) obj[key] = b[key] !== void 0 ? b[key] : a[key];
return obj;
};
//#endregion
exports.provideGlobalConfig = provideGlobalConfig;
exports.useGlobalComponentSettings = useGlobalComponentSettings;
exports.useGlobalConfig = useGlobalConfig;
//# sourceMappingURL=use-global-config.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-config-provider.css");
@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/index.js');
require("element-plus/theme-chalk/src/config-provider.scss");