| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
- import _extends from "@babel/runtime/helpers/esm/extends";
- import { createVNode as _createVNode } from "vue";
- import { computed, reactive, provide, defineComponent, watch, watchEffect } from 'vue';
- import defaultRenderEmpty from './renderEmpty';
- import LocaleProvider, { ANT_MARK } from '../locale-provider';
- import LocaleReceiver from '../locale-provider/LocaleReceiver';
- import message from '../message';
- import notification from '../notification';
- import { registerTheme } from './cssVariables';
- import defaultLocale from '../locale/default';
- import { configProviderProps, useProvideGlobalForm } from './context';
- export var defaultPrefixCls = 'ant';
- function getGlobalPrefixCls() {
- return globalConfigForApi.prefixCls || defaultPrefixCls;
- }
- var globalConfigByCom = reactive({});
- var globalConfigBySet = reactive({}); // 权重最大
- export var globalConfigForApi = reactive({});
- watchEffect(function () {
- _extends(globalConfigForApi, globalConfigByCom, globalConfigBySet);
- globalConfigForApi.prefixCls = getGlobalPrefixCls();
- globalConfigForApi.getPrefixCls = function (suffixCls, customizePrefixCls) {
- if (customizePrefixCls) return customizePrefixCls;
- return suffixCls ? "".concat(globalConfigForApi.prefixCls, "-").concat(suffixCls) : globalConfigForApi.prefixCls;
- };
- globalConfigForApi.getRootPrefixCls = function (rootPrefixCls, customizePrefixCls) {
- // Customize rootPrefixCls is first priority
- if (rootPrefixCls) {
- return rootPrefixCls;
- }
- // If Global prefixCls provided, use this
- if (globalConfigForApi.prefixCls) {
- return globalConfigForApi.prefixCls;
- }
- // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls
- if (customizePrefixCls && customizePrefixCls.includes('-')) {
- return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');
- }
- // Fallback to default prefixCls
- return getGlobalPrefixCls();
- };
- });
- var stopWatchEffect;
- var setGlobalConfig = function setGlobalConfig(params) {
- if (stopWatchEffect) {
- stopWatchEffect();
- }
- stopWatchEffect = watchEffect(function () {
- _extends(globalConfigBySet, reactive(params));
- _extends(globalConfigForApi, reactive(params));
- });
- if (params.theme) {
- registerTheme(getGlobalPrefixCls(), params.theme);
- }
- };
- export var globalConfig = function globalConfig() {
- return {
- getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {
- if (customizePrefixCls) return customizePrefixCls;
- return suffixCls ? "".concat(getGlobalPrefixCls(), "-").concat(suffixCls) : getGlobalPrefixCls();
- },
- getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {
- // Customize rootPrefixCls is first priority
- if (rootPrefixCls) {
- return rootPrefixCls;
- }
- // If Global prefixCls provided, use this
- if (globalConfigForApi.prefixCls) {
- return globalConfigForApi.prefixCls;
- }
- // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls
- if (customizePrefixCls && customizePrefixCls.includes('-')) {
- return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');
- }
- // Fallback to default prefixCls
- return getGlobalPrefixCls();
- }
- };
- };
- var ConfigProvider = defineComponent({
- compatConfig: {
- MODE: 3
- },
- name: 'AConfigProvider',
- inheritAttrs: false,
- props: configProviderProps(),
- setup: function setup(props, _ref) {
- var slots = _ref.slots;
- var getPrefixCls = function getPrefixCls(suffixCls, customizePrefixCls) {
- var _props$prefixCls = props.prefixCls,
- prefixCls = _props$prefixCls === void 0 ? 'ant' : _props$prefixCls;
- if (customizePrefixCls) return customizePrefixCls;
- return suffixCls ? "".concat(prefixCls, "-").concat(suffixCls) : prefixCls;
- };
- var renderEmptyComponent = function renderEmptyComponent(name) {
- var renderEmpty = props.renderEmpty || slots.renderEmpty || defaultRenderEmpty;
- return renderEmpty(name);
- };
- var getPrefixClsWrapper = function getPrefixClsWrapper(suffixCls, customizePrefixCls) {
- var prefixCls = props.prefixCls;
- if (customizePrefixCls) return customizePrefixCls;
- var mergedPrefixCls = prefixCls || getPrefixCls('');
- return suffixCls ? "".concat(mergedPrefixCls, "-").concat(suffixCls) : mergedPrefixCls;
- };
- var configProvider = reactive(_objectSpread(_objectSpread({}, props), {}, {
- getPrefixCls: getPrefixClsWrapper,
- renderEmpty: renderEmptyComponent
- }));
- Object.keys(props).forEach(function (key) {
- watch(function () {
- return props[key];
- }, function () {
- configProvider[key] = props[key];
- });
- });
- if (!props.notUpdateGlobalConfig) {
- _extends(globalConfigByCom, configProvider);
- watch(configProvider, function () {
- _extends(globalConfigByCom, configProvider);
- });
- }
- var validateMessagesRef = computed(function () {
- // Additional Form provider
- var validateMessages = {};
- if (props.locale) {
- var _props$locale$Form, _defaultLocale$Form;
- validateMessages = ((_props$locale$Form = props.locale.Form) === null || _props$locale$Form === void 0 ? void 0 : _props$locale$Form.defaultValidateMessages) || ((_defaultLocale$Form = defaultLocale.Form) === null || _defaultLocale$Form === void 0 ? void 0 : _defaultLocale$Form.defaultValidateMessages) || {};
- }
- if (props.form && props.form.validateMessages) {
- validateMessages = _objectSpread(_objectSpread({}, validateMessages), props.form.validateMessages);
- }
- return validateMessages;
- });
- useProvideGlobalForm({
- validateMessages: validateMessagesRef
- });
- provide('configProvider', configProvider);
- var renderProvider = function renderProvider(legacyLocale) {
- var _slots$default;
- return _createVNode(LocaleProvider, {
- "locale": props.locale || legacyLocale,
- "ANT_MARK__": ANT_MARK
- }, {
- default: function _default() {
- return [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
- }
- });
- };
- watchEffect(function () {
- if (props.direction) {
- message.config({
- rtl: props.direction === 'rtl'
- });
- notification.config({
- rtl: props.direction === 'rtl'
- });
- }
- });
- return function () {
- return _createVNode(LocaleReceiver, {
- "children": function children(_, __, legacyLocale) {
- return renderProvider(legacyLocale);
- }
- }, null);
- };
- }
- });
- export var defaultConfigProvider = reactive({
- getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {
- if (customizePrefixCls) return customizePrefixCls;
- return suffixCls ? "ant-".concat(suffixCls) : 'ant';
- },
- renderEmpty: defaultRenderEmpty,
- direction: 'ltr'
- });
- ConfigProvider.config = setGlobalConfig;
- ConfigProvider.install = function (app) {
- app.component(ConfigProvider.name, ConfigProvider);
- };
- export default ConfigProvider;
|