"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = StatusProvider; var React = _interopRequireWildcard(require("react")); var _CheckCircleFilled = _interopRequireDefault(require("@ant-design/icons/CheckCircleFilled")); var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled")); var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons/ExclamationCircleFilled")); var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/LoadingOutlined")); var _classnames = _interopRequireDefault(require("classnames")); var _context = require("../context"); var _util = require("../util"); const iconMap = { success: _CheckCircleFilled.default, warning: _ExclamationCircleFilled.default, error: _CloseCircleFilled.default, validating: _LoadingOutlined.default }; function StatusProvider(_ref) { let { children, errors, warnings, hasFeedback, validateStatus, prefixCls, meta, noStyle } = _ref; const itemPrefixCls = `${prefixCls}-item`; const { feedbackIcons } = React.useContext(_context.FormContext); const mergedValidateStatus = (0, _util.getStatus)(errors, warnings, meta, null, !!hasFeedback, validateStatus); const { isFormItemInput: parentIsFormItemInput, status: parentStatus, hasFeedback: parentHasFeedback, feedbackIcon: parentFeedbackIcon } = React.useContext(_context.FormItemInputContext); // ====================== Context ======================= const formItemStatusContext = React.useMemo(() => { var _a; let feedbackIcon; if (hasFeedback) { const customIcons = hasFeedback !== true && hasFeedback.icons || feedbackIcons; const customIconNode = mergedValidateStatus && ((_a = customIcons === null || customIcons === void 0 ? void 0 : customIcons({ status: mergedValidateStatus, errors, warnings })) === null || _a === void 0 ? void 0 : _a[mergedValidateStatus]); const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus]; feedbackIcon = customIconNode !== false && IconNode ? /*#__PURE__*/React.createElement("span", { className: (0, _classnames.default)(`${itemPrefixCls}-feedback-icon`, `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`) }, customIconNode || /*#__PURE__*/React.createElement(IconNode, null)) : null; } const context = { status: mergedValidateStatus || '', errors, warnings, hasFeedback: !!hasFeedback, feedbackIcon, isFormItemInput: true }; // No style will follow parent context if (noStyle) { context.status = (mergedValidateStatus !== null && mergedValidateStatus !== void 0 ? mergedValidateStatus : parentStatus) || ''; context.isFormItemInput = parentIsFormItemInput; context.hasFeedback = !!(hasFeedback !== null && hasFeedback !== void 0 ? hasFeedback : parentHasFeedback); context.feedbackIcon = hasFeedback !== undefined ? context.feedbackIcon : parentFeedbackIcon; } return context; }, [mergedValidateStatus, hasFeedback, noStyle, parentIsFormItemInput, parentStatus]); // ======================= Render ======================= return /*#__PURE__*/React.createElement(_context.FormItemInputContext.Provider, { value: formItemStatusContext }, children); }