UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

136 lines (133 loc) β€’ 7.2 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["prefixCls", "getPopupContainer", "className", "placement", "size", "disabled", "bordered", "placeholder", "popupClassName", "dropdownClassName", "status"]; import CalendarOutlined from '@ant-design/icons/CalendarOutlined'; import ClockCircleOutlined from '@ant-design/icons/ClockCircleOutlined'; import CloseCircleFilled from '@ant-design/icons/CloseCircleFilled'; import SwapRightOutlined from '@ant-design/icons/SwapRightOutlined'; import classNames from 'classnames'; import { RangePicker as RCRangePicker } from 'rc-picker'; import * as React from 'react'; import { forwardRef, useContext, useImperativeHandle } from 'react'; import { Components, getTimeProps } from '.'; import { ConfigContext } from "../../config-provider"; import DisabledContext from "../../config-provider/DisabledContext"; import SizeContext from "../../config-provider/SizeContext"; import { FormItemInputContext } from "../../form/context"; import { useCompactItemContext } from "../../space/Compact"; import LocaleReceiver from "../../locale-provider/LocaleReceiver"; import { getMergedStatus, getStatusClassNames } from "../../_util/statusUtils"; import enUS from "../locale/en_US"; import { getRangePlaceholder, transPlacement2DropdownAlign } from "../util"; import 'moment/locale/zh-cn'; import warning from "../../_util/warning"; export default function generateRangePicker(generateConfig) { var RangePicker = /*#__PURE__*/forwardRef(function (props, ref) { var customizePrefixCls = props.prefixCls, customGetPopupContainer = props.getPopupContainer, className = props.className, placement = props.placement, customizeSize = props.size, customDisabled = props.disabled, _props$bordered = props.bordered, bordered = _props$bordered === void 0 ? true : _props$bordered, placeholder = props.placeholder, popupClassName = props.popupClassName, dropdownClassName = props.dropdownClassName, customStatus = props.status, restProps = _objectWithoutProperties(props, _excluded); var innerRef = React.useRef(null); var _useContext = useContext(ConfigContext), getPrefixCls = _useContext.getPrefixCls, direction = _useContext.direction, getPopupContainer = _useContext.getPopupContainer; var prefixCls = getPrefixCls('picker', customizePrefixCls); var _useCompactItemContex = useCompactItemContext(prefixCls, direction), compactSize = _useCompactItemContex.compactSize, compactItemClassnames = _useCompactItemContex.compactItemClassnames; var _ref = props, format = _ref.format, showTime = _ref.showTime, picker = _ref.picker; var rootPrefixCls = getPrefixCls(); var additionalOverrideProps = {}; additionalOverrideProps = _objectSpread(_objectSpread(_objectSpread({}, additionalOverrideProps), showTime ? getTimeProps(_objectSpread({ format: format, picker: picker }, showTime)) : {}), picker === 'time' ? getTimeProps(_objectSpread(_objectSpread({ format: format }, props), {}, { picker: picker })) : {}); warning(!dropdownClassName, 'RangePicker', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.'); // ===================== Size ===================== var size = React.useContext(SizeContext); var mergedSize = compactSize || customizeSize || size; // ===================== Disabled ===================== var disabled = React.useContext(DisabledContext); var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled; // ===================== FormItemInput ===================== var formItemContext = useContext(FormItemInputContext); var hasFeedback = formItemContext.hasFeedback, contextStatus = formItemContext.status, feedbackIcon = formItemContext.feedbackIcon; var suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon); useImperativeHandle(ref, function () { return { focus: function focus() { var _innerRef$current; return (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.focus(); }, blur: function blur() { var _innerRef$current2; return (_innerRef$current2 = innerRef.current) === null || _innerRef$current2 === void 0 ? void 0 : _innerRef$current2.blur(); } }; }); return /*#__PURE__*/React.createElement(LocaleReceiver, { componentName: "DatePicker", defaultLocale: enUS }, function (contextLocale) { var _classNames; var locale = _objectSpread(_objectSpread({}, contextLocale), props.locale); return /*#__PURE__*/React.createElement(RCRangePicker, _extends({ separator: /*#__PURE__*/React.createElement("span", { "aria-label": "to", className: "".concat(prefixCls, "-separator") }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)), disabled: mergedDisabled, ref: innerRef, dropdownClassName: popupClassName || dropdownClassName, dropdownAlign: transPlacement2DropdownAlign(direction, placement), placeholder: getRangePlaceholder(picker, locale, placeholder), suffixIcon: suffixNode, clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null), prevIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-prev-icon") }), nextIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-next-icon") }), superPrevIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-super-prev-icon") }), superNextIcon: /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-super-next-icon") }), allowClear: true, transitionName: "".concat(rootPrefixCls, "-slide-up") }, restProps, additionalOverrideProps, { className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-").concat(mergedSize), mergedSize), _defineProperty(_classNames, "".concat(prefixCls, "-borderless"), !bordered), _classNames), getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), compactItemClassnames, className), locale: locale.lang, prefixCls: prefixCls, getPopupContainer: customGetPopupContainer || getPopupContainer, generateConfig: generateConfig, components: Components, direction: direction })); }); }); return RangePicker; }