linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
147 lines (143 loc) β’ 6.33 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = generateRangePicker;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _CalendarOutlined = _interopRequireDefault(require("@ant-design/icons/CalendarOutlined"));
var _ClockCircleOutlined = _interopRequireDefault(require("@ant-design/icons/ClockCircleOutlined"));
var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled"));
var _SwapRightOutlined = _interopRequireDefault(require("@ant-design/icons/SwapRightOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcPicker = require("rc-picker");
var React = _interopRequireWildcard(require("react"));
var _ = require(".");
var _configProvider = require("../../config-provider");
var _DisabledContext = _interopRequireDefault(require("../../config-provider/DisabledContext"));
var _SizeContext = _interopRequireDefault(require("../../config-provider/SizeContext"));
var _context = require("../../form/context");
var _Compact = require("../../space/Compact");
var _LocaleReceiver = _interopRequireDefault(require("../../locale-provider/LocaleReceiver"));
var _statusUtils = require("../../_util/statusUtils");
var _en_US = _interopRequireDefault(require("../locale/en_US"));
var _util = require("../util");
require("moment/locale/zh-cn");
var _warning = _interopRequireDefault(require("../../_util/warning"));
function generateRangePicker(generateConfig) {
const RangePicker = /*#__PURE__*/(0, React.forwardRef)((props, ref) => {
const {
prefixCls: customizePrefixCls,
getPopupContainer: customGetPopupContainer,
className,
placement,
size: customizeSize,
disabled: customDisabled,
bordered = true,
placeholder,
popupClassName,
dropdownClassName,
status: customStatus,
...restProps
} = props;
const innerRef = React.useRef(null);
const {
getPrefixCls,
direction,
getPopupContainer
} = (0, React.useContext)(_configProvider.ConfigContext);
const prefixCls = getPrefixCls('picker', customizePrefixCls);
const {
compactSize,
compactItemClassnames
} = (0, _Compact.useCompactItemContext)(prefixCls, direction);
const {
format,
showTime,
picker
} = props;
const rootPrefixCls = getPrefixCls();
let additionalOverrideProps = {};
additionalOverrideProps = {
...additionalOverrideProps,
...(showTime ? (0, _.getTimeProps)({
format,
picker,
...showTime
}) : {}),
...(picker === 'time' ? (0, _.getTimeProps)({
format,
...props,
picker
}) : {})
};
(0, _warning.default)(!dropdownClassName, 'RangePicker', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.');
// ===================== Size =====================
const size = React.useContext(_SizeContext.default);
const mergedSize = compactSize || customizeSize || size;
// ===================== Disabled =====================
const disabled = React.useContext(_DisabledContext.default);
const mergedDisabled = customDisabled ?? disabled;
// ===================== FormItemInput =====================
const formItemContext = (0, React.useContext)(_context.FormItemInputContext);
const {
hasFeedback,
status: contextStatus,
feedbackIcon
} = formItemContext;
const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(_ClockCircleOutlined.default, null) : /*#__PURE__*/React.createElement(_CalendarOutlined.default, null), hasFeedback && feedbackIcon);
(0, React.useImperativeHandle)(ref, () => ({
focus: () => innerRef.current?.focus(),
blur: () => innerRef.current?.blur()
}));
return /*#__PURE__*/React.createElement(_LocaleReceiver.default, {
componentName: "DatePicker",
defaultLocale: _en_US.default
}, contextLocale => {
const locale = {
...contextLocale,
...props.locale
};
return /*#__PURE__*/React.createElement(_rcPicker.RangePicker, (0, _extends2.default)({
separator: /*#__PURE__*/React.createElement("span", {
"aria-label": "to",
className: `${prefixCls}-separator`
}, /*#__PURE__*/React.createElement(_SwapRightOutlined.default, null)),
disabled: mergedDisabled,
ref: innerRef,
dropdownClassName: popupClassName || dropdownClassName,
dropdownAlign: (0, _util.transPlacement2DropdownAlign)(direction, placement),
placeholder: (0, _util.getRangePlaceholder)(picker, locale, placeholder),
suffixIcon: suffixNode,
clearIcon: /*#__PURE__*/React.createElement(_CloseCircleFilled.default, null),
prevIcon: /*#__PURE__*/React.createElement("span", {
className: `${prefixCls}-prev-icon`
}),
nextIcon: /*#__PURE__*/React.createElement("span", {
className: `${prefixCls}-next-icon`
}),
superPrevIcon: /*#__PURE__*/React.createElement("span", {
className: `${prefixCls}-super-prev-icon`
}),
superNextIcon: /*#__PURE__*/React.createElement("span", {
className: `${prefixCls}-super-next-icon`
}),
allowClear: true,
transitionName: `${rootPrefixCls}-slide-up`
}, restProps, additionalOverrideProps, {
className: (0, _classnames.default)({
[`${prefixCls}-${mergedSize}`]: mergedSize,
[`${prefixCls}-borderless`]: !bordered
}, (0, _statusUtils.getStatusClassNames)(prefixCls, (0, _statusUtils.getMergedStatus)(contextStatus, customStatus), hasFeedback), compactItemClassnames, className),
locale: locale.lang,
prefixCls: prefixCls,
getPopupContainer: customGetPopupContainer || getPopupContainer,
generateConfig: generateConfig,
components: _.Components,
direction: direction
}));
});
});
return RangePicker;
}