UNPKG

@ant-design/pro-form

Version:
118 lines (116 loc) 5.67 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.LightWrapper = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _proUtils = require("@ant-design/pro-utils"); var _antd = require("antd"); var _classnames = _interopRequireDefault(require("classnames")); var _react = _interopRequireWildcard(require("react")); var _style = require("./style"); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["label", "size", "disabled", "onChange", "className", "style", "children", "valuePropName", "placeholder", "labelFormatter", "bordered", "footerRender", "allowClear", "otherFieldProps", "valueType", "placement"]; var LightWrapper = exports.LightWrapper = function LightWrapper(props) { var label = props.label, size = props.size, disabled = props.disabled, propsOnChange = props.onChange, className = props.className, style = props.style, children = props.children, valuePropName = props.valuePropName, placeholder = props.placeholder, labelFormatter = props.labelFormatter, bordered = props.bordered, footerRender = props.footerRender, allowClear = props.allowClear, otherFieldProps = props.otherFieldProps, valueType = props.valueType, placement = props.placement, rest = (0, _objectWithoutProperties2.default)(props, _excluded); var _useContext = (0, _react.useContext)(_antd.ConfigProvider.ConfigContext), getPrefixCls = _useContext.getPrefixCls; var prefixCls = getPrefixCls('pro-field-light-wrapper'); var _useStyle = (0, _style.useStyle)(prefixCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId; var _useState = (0, _react.useState)(props[valuePropName]), _useState2 = (0, _slicedToArray2.default)(_useState, 2), tempValue = _useState2[0], setTempValue = _useState2[1]; var _useMountMergeState = (0, _proUtils.useMountMergeState)(false), _useMountMergeState2 = (0, _slicedToArray2.default)(_useMountMergeState, 2), open = _useMountMergeState2[0], setOpen = _useMountMergeState2[1]; var onChange = function onChange() { var _otherFieldProps$onCh; for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) { restParams[_key] = arguments[_key]; } otherFieldProps === null || otherFieldProps === void 0 || (_otherFieldProps$onCh = otherFieldProps.onChange) === null || _otherFieldProps$onCh === void 0 || _otherFieldProps$onCh.call.apply(_otherFieldProps$onCh, [otherFieldProps].concat(restParams)); propsOnChange === null || propsOnChange === void 0 || propsOnChange.apply(void 0, restParams); }; var labelValue = props[valuePropName]; /** DateRange的转化,dayjs 的 toString 有点不好用 */ var labelValueText = (0, _react.useMemo)(function () { var _valueType$toLowerCas; if (!labelValue) return labelValue; if (valueType !== null && valueType !== void 0 && (_valueType$toLowerCas = valueType.toLowerCase()) !== null && _valueType$toLowerCas !== void 0 && _valueType$toLowerCas.endsWith('range') && valueType !== 'digitRange' && !labelFormatter) { return (0, _proUtils.dateArrayFormatter)(labelValue, _proUtils.dateFormatterMap[valueType] || 'YYYY-MM-DD'); } if (Array.isArray(labelValue)) return labelValue.map(function (item) { if ((0, _typeof2.default)(item) === 'object' && item.label && item.value) { return item.label; } return item; }); return labelValue; }, [labelValue, valueType, labelFormatter]); return wrapSSR( /*#__PURE__*/(0, _jsxRuntime.jsx)(_proUtils.FilterDropdown, { disabled: disabled, open: open, onOpenChange: setOpen, placement: placement, label: /*#__PURE__*/(0, _jsxRuntime.jsx)(_proUtils.FieldLabel, { ellipsis: true, size: size, onClear: function onClear() { onChange === null || onChange === void 0 || onChange(); setTempValue(null); }, bordered: bordered, style: style, className: className, label: label, placeholder: placeholder, value: labelValueText, disabled: disabled, formatter: labelFormatter, allowClear: allowClear }), footer: { onClear: function onClear() { return setTempValue(null); }, onConfirm: function onConfirm() { onChange === null || onChange === void 0 || onChange(tempValue); setOpen(false); } }, footerRender: footerRender, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _classnames.default)("".concat(prefixCls, "-container"), hashId, className), style: style, children: /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread3.default)((0, _objectSpread3.default)({}, rest), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, valuePropName, tempValue), "onChange", function onChange(e) { setTempValue(e !== null && e !== void 0 && e.target ? e.target.value : e); }), children.props)) }) })); };