UNPKG

zp-bee

Version:

zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。

149 lines (119 loc) 4.87 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "ConfigConsumer", { enumerable: true, get: function get() { return _context.ConfigConsumer; } }); Object.defineProperty(exports, "ConfigContext", { enumerable: true, get: function get() { return _context.ConfigContext; } }); exports.default = exports.globalConfig = exports.defaultPrefixCls = void 0; var _react = _interopRequireDefault(require("react")); var _beeLocale = _interopRequireWildcard(require("../bee-locale")); var _LocaleReceiver = _interopRequireDefault(require("../bee-locale/LocaleReceiver")); var _useMemo = _interopRequireDefault(require("rc-util/lib/hooks/useMemo")); var _context = require("./context"); var defaultPrefixCls = 'bee'; exports.defaultPrefixCls = defaultPrefixCls; var globalPrefixCls; var setGlobalConfig = function setGlobalConfig(params) { if (params.prefixCls !== undefined) { globalPrefixCls = params.prefixCls; } }; function getGlobalPrefixCls() { return globalPrefixCls || defaultPrefixCls; } 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 (globalPrefixCls) { return globalPrefixCls; } // [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(); } }; }; exports.globalConfig = globalConfig; var ProviderChildren = function ProviderChildren(props) { var children = props.children, autoInsertSpaceInButton = props.autoInsertSpaceInButton, locale = props.locale, virtual = props.virtual, dropdownMatchSelectWidth = props.dropdownMatchSelectWidth, legacyLocale = props.legacyLocale, parentContext = props.parentContext, iconPrefixCls = props.iconPrefixCls; var getPrefixCls = _react.default.useCallback(function (suffixCls, customizePrefixCls) { var prefixCls = props.prefixCls; if (customizePrefixCls) return customizePrefixCls; var mergedPrefixCls = prefixCls || parentContext.getPrefixCls(''); return suffixCls ? "".concat(mergedPrefixCls, "-").concat(suffixCls) : mergedPrefixCls; }, [parentContext.getPrefixCls]); var config = Object.assign(Object.assign({}, parentContext), { autoInsertSpaceInButton: autoInsertSpaceInButton, locale: locale || legacyLocale, virtual: virtual, dropdownMatchSelectWidth: dropdownMatchSelectWidth, getPrefixCls: getPrefixCls }); // https://github.com/ant-design/ant-design/issues/27617 var memoedConfig = (0, _useMemo.default)(function () { return config; }, config, function (prevConfig, currentConfig) { var prevKeys = Object.keys(prevConfig); var currentKeys = Object.keys(currentConfig); return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) { return prevConfig[key] !== currentConfig[key]; }); }); var memoIconContextValue = _react.default.useMemo(function () { return { prefixCls: iconPrefixCls }; }, [iconPrefixCls]); var childNode = children; if (locale) { childNode = /*#__PURE__*/_react.default.createElement(_beeLocale.default, { locale: locale, _ZP_MARK__: _beeLocale.ZP_MARK }, childNode); } return /*#__PURE__*/_react.default.createElement(_context.ConfigContext.Provider, { value: memoedConfig }, childNode); }; var ConfigProvider = function ConfigProvider(props) { return /*#__PURE__*/_react.default.createElement(_LocaleReceiver.default, null, function (_, __, legacyLocale) { return /*#__PURE__*/_react.default.createElement(_context.ConfigConsumer, null, function (context) { return /*#__PURE__*/_react.default.createElement(ProviderChildren, Object.assign({ parentContext: context, legacyLocale: legacyLocale }, props)); }); }); }; /** @private internal Usage. do not use in your production */ ConfigProvider.ConfigContext = _context.ConfigContext; ConfigProvider.config = setGlobalConfig; var _default = ConfigProvider; exports.default = _default;