UNPKG

ant-design-vue

Version:

An enterprise-class UI design language and Vue-based implementation

113 lines (104 loc) 3.76 kB
import { createVNode as _createVNode } from "vue"; function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import { reactive, provide, defineComponent, watch } from 'vue'; import PropTypes from '../_util/vue-types'; import defaultRenderEmpty from './renderEmpty'; import LocaleProvider, { ANT_MARK } from '../locale-provider'; import LocaleReceiver from '../locale-provider/LocaleReceiver'; import { withInstall } from '../_util/type'; export var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader']; var ConfigProvider = defineComponent({ name: 'AConfigProvider', props: { getTargetContainer: { type: Function }, getPopupContainer: { type: Function }, prefixCls: String, getPrefixCls: { type: Function }, renderEmpty: { type: Function }, transformCellText: { type: Function }, csp: { type: Object }, autoInsertSpaceInButton: PropTypes.looseBool, locale: { type: Object }, pageHeader: { type: Object }, componentSize: { type: Object }, direction: { type: String }, space: { type: [String, Number] }, virtual: PropTypes.looseBool, dropdownMatchSelectWidth: PropTypes.looseBool }, 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(_extends(_extends({}, props), { getPrefixCls: getPrefixClsWrapper, renderEmpty: renderEmptyComponent })); watch(props, function () { _extends(configProvider, props); }); provide('configProvider', configProvider); var renderProvider = function renderProvider(legacyLocale) { var _a; return _createVNode(LocaleProvider, { "locale": props.locale || legacyLocale, "ANT_MARK__": ANT_MARK }, { default: function _default() { return [(_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots)]; } }); }; return function () { return _createVNode(LocaleReceiver, { "children": function children(_, __, legacyLocale) { return renderProvider(legacyLocale); } }, null); }; } }); export var defaultConfigProvider = { getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) { if (customizePrefixCls) return customizePrefixCls; return "ant-".concat(suffixCls); }, renderEmpty: defaultRenderEmpty }; export default withInstall(ConfigProvider);