{"ast":null,"code":"import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { useCellRender } from \"./hooks/useCellRender\";\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeDisabled from \"./hooks/useRangeDisabled\";\nimport useRangeOpen from \"./hooks/useRangeOpen\";\nimport useRangeViewDates from \"./hooks/useRangeViewDates\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { formatValue, getClosingViewDate, isEqual, isSameDate, isSameQuarter, isSameWeek, parseValue } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getValue, toArray, updateValues } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\nimport { getClearIcon } from \"./utils/getClearIcon\";\nfunction reorderValues(values, generateConfig) {\n  if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n    return [values[1], values[0]];\n  }\n  return values;\n}\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n  if (value) {\n    return true;\n  }\n  if (allowEmpty && allowEmpty[index]) {\n    return true;\n  }\n  if (disabled[(index + 1) % 2]) {\n    return true;\n  }\n  return false;\n}\n\n// TMP type to fit for ts 3.9.2\n\nfunction InnerRangePicker(props) {\n  var _classNames2, _classNames3, _classNames4;\n  var _ref = props,\n    _ref$prefixCls = _ref.prefixCls,\n    prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n    id = _ref.id,\n    style = _ref.style,\n    className = _ref.className,\n    popupStyle = _ref.popupStyle,\n    dropdownClassName = _ref.dropdownClassName,\n    transitionName = _ref.transitionName,\n    dropdownAlign = _ref.dropdownAlign,\n    getPopupContainer = _ref.getPopupContainer,\n    generateConfig = _ref.generateConfig,\n    locale = _ref.locale,\n    placeholder = _ref.placeholder,\n    autoFocus = _ref.autoFocus,\n    disabled = _ref.disabled,\n    format = _ref.format,\n    _ref$picker = _ref.picker,\n    picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n    showTime = _ref.showTime,\n    use12Hours = _ref.use12Hours,\n    _ref$separator = _ref.separator,\n    separator = _ref$separator === void 0 ? '~' : _ref$separator,\n    value = _ref.value,\n    defaultValue = _ref.defaultValue,\n    defaultPickerValue = _ref.defaultPickerValue,\n    open = _ref.open,\n    defaultOpen = _ref.defaultOpen,\n    disabledDate = _ref.disabledDate,\n    _disabledTime = _ref.disabledTime,\n    dateRender = _ref.dateRender,\n    monthCellRender = _ref.monthCellRender,\n    cellRender = _ref.cellRender,\n    panelRender = _ref.panelRender,\n    presets = _ref.presets,\n    ranges = _ref.ranges,\n    allowEmpty = _ref.allowEmpty,\n    allowClear = _ref.allowClear,\n    suffixIcon = _ref.suffixIcon,\n    clearIcon = _ref.clearIcon,\n    pickerRef = _ref.pickerRef,\n    inputReadOnly = _ref.inputReadOnly,\n    mode = _ref.mode,\n    renderExtraFooter = _ref.renderExtraFooter,\n    onChange = _ref.onChange,\n    onOpenChange = _ref.onOpenChange,\n    onPanelChange = _ref.onPanelChange,\n    onCalendarChange = _ref.onCalendarChange,\n    _onFocus = _ref.onFocus,\n    onBlur = _ref.onBlur,\n    onMouseDown = _ref.onMouseDown,\n    onMouseUp = _ref.onMouseUp,\n    onMouseEnter = _ref.onMouseEnter,\n    onMouseLeave = _ref.onMouseLeave,\n    onClick = _ref.onClick,\n    _onOk = _ref.onOk,\n    _onKeyDown = _ref.onKeyDown,\n    components = _ref.components,\n    order = _ref.order,\n    direction = _ref.direction,\n    activePickerIndex = _ref.activePickerIndex,\n    _ref$autoComplete = _ref.autoComplete,\n    autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n    changeOnBlur = _ref.changeOnBlur;\n  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n  var containerRef = useRef(null);\n  var panelDivRef = useRef(null);\n  var startInputDivRef = useRef(null);\n  var endInputDivRef = useRef(null);\n  var separatorRef = useRef(null);\n  var startInputRef = useRef(null);\n  var endInputRef = useRef(null);\n  var arrowRef = useRef(null);\n\n  // ============================ Warning ============================\n  if (process.env.NODE_ENV !== 'production') {\n    legacyPropsWarning(props);\n  }\n\n  // ============================= Misc ==============================\n  var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n  var formatDateValue = function formatDateValue(values, index) {\n    return values && values[index] ? formatValue(values[index], {\n      generateConfig: generateConfig,\n      locale: locale,\n      format: formatList[0]\n    }) : '';\n  };\n\n  // Operation ref\n  var operationRef = useRef(null);\n  var mergedDisabled = React.useMemo(function () {\n    if (Array.isArray(disabled)) {\n      return disabled;\n    }\n    return [disabled || false, disabled || false];\n  }, [disabled]);\n\n  // ============================= Value =============================\n  var _useMergedState = useMergedState(null, {\n      value: value,\n      defaultValue: defaultValue,\n      postState: function postState(values) {\n        return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedValue = _useMergedState2[0],\n    setInnerValue = _useMergedState2[1];\n\n  // =========================== View Date ===========================\n  // Config view panel\n  var _useRangeViewDates = useRangeViewDates({\n      values: mergedValue,\n      picker: picker,\n      defaultDates: defaultPickerValue,\n      generateConfig: generateConfig\n    }),\n    _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n    getViewDate = _useRangeViewDates2[0],\n    setViewDate = _useRangeViewDates2[1];\n\n  // ========================= Select Values =========================\n  var _useMergedState3 = useMergedState(mergedValue, {\n      postState: function postState(values) {\n        var postValues = values;\n        if (mergedDisabled[0] && mergedDisabled[1]) {\n          return postValues;\n        }\n\n        // Fill disabled unit\n        for (var i = 0; i < 2; i += 1) {\n          if (mergedDisabled[i] && !postValues && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n            postValues = updateValues(postValues, generateConfig.getNow(), i);\n          }\n        }\n        return postValues;\n      }\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    selectedValue = _useMergedState4[0],\n    setSelectedValue = _useMergedState4[1];\n\n  // ============================= Modes =============================\n  var _useMergedState5 = useMergedState([picker, picker], {\n      value: mode\n    }),\n    _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n    mergedModes = _useMergedState6[0],\n    setInnerModes = _useMergedState6[1];\n  useEffect(function () {\n    setInnerModes([picker, picker]);\n  }, [picker]);\n  var triggerModesChange = function triggerModesChange(modes, values) {\n    setInnerModes(modes);\n    if (onPanelChange) {\n      onPanelChange(values, modes);\n    }\n  };\n\n  // ============================= Open ==============================\n  var _useRangeOpen = useRangeOpen(defaultOpen, open, activePickerIndex, changeOnBlur, needConfirmButton, startInputRef, endInputRef, getValue(selectedValue, 0), getValue(selectedValue, 1), mergedDisabled, onOpenChange),\n    _useRangeOpen2 = _slicedToArray(_useRangeOpen, 4),\n    mergedOpen = _useRangeOpen2[0],\n    mergedActivePickerIndex = _useRangeOpen2[1],\n    firstTimeOpen = _useRangeOpen2[2],\n    _triggerOpen = _useRangeOpen2[3];\n  var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n  var endOpen = mergedOpen && mergedActivePickerIndex === 1;\n\n  // ========================= Disable Date ==========================\n  var _useRangeDisabled = useRangeDisabled({\n      picker: picker,\n      selectedValue: selectedValue,\n      locale: locale,\n      disabled: mergedDisabled,\n      disabledDate: disabledDate,\n      generateConfig: generateConfig\n    }, !mergedOpen || firstTimeOpen),\n    _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n    disabledStartDate = _useRangeDisabled2[0],\n    disabledEndDate = _useRangeDisabled2[1];\n\n  // ============================= Popup =============================\n  // Popup min width\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    popupMinWidth = _useState2[0],\n    setPopupMinWidth = _useState2[1];\n  useEffect(function () {\n    if (!mergedOpen && containerRef.current) {\n      setPopupMinWidth(containerRef.current.offsetWidth);\n    }\n  }, [mergedOpen]);\n\n  // ============================ Trigger ============================\n  function triggerOpenAndFocus(index) {\n    _triggerOpen(true, index, 'open');\n    // Use setTimeout to make sure panel DOM exists\n    raf(function () {\n      var _inputRef$current;\n      var inputRef = [startInputRef, endInputRef][index];\n      (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n    }, 0);\n  }\n  function triggerChange(newValue, sourceIndex, triggerCalendarChangeOnly) {\n    var values = newValue;\n    var startValue = getValue(values, 0);\n    var endValue = getValue(values, 1);\n\n    // >>>>> Format start & end values\n    if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n      if (\n      // WeekPicker only compare week\n      picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) ||\n      // QuotaPicker only compare week\n      picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) ||\n      // Other non-TimePicker compare date\n      picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\n        // Clean up end date when start date is after end date\n        if (sourceIndex === 0) {\n          values = [startValue, null];\n          endValue = null;\n        } else {\n          startValue = null;\n          values = [null, endValue];\n        }\n      } else if (picker !== 'time' || order !== false) {\n        // Reorder when in same date\n        values = reorderValues(values, generateConfig);\n      }\n    }\n    setSelectedValue(values);\n    var startStr = formatDateValue(values, 0);\n    var endStr = formatDateValue(values, 1);\n    if (onCalendarChange) {\n      var _info = {\n        range: sourceIndex === 0 ? 'start' : 'end'\n      };\n      onCalendarChange(values, [startStr, endStr], _info);\n    }\n    if (!triggerCalendarChangeOnly) {\n      // >>>>> Trigger `onChange` event\n      var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n      var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n      var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n      if (canTrigger) {\n        // Trigger onChange only when value is validate\n        setInnerValue(values);\n        if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n          onChange(values, [startStr, endStr]);\n        }\n      }\n    }\n  }\n  var forwardKeyDown = function forwardKeyDown(e) {\n    if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n      // Let popup panel handle keyboard\n      return operationRef.current.onKeyDown(e);\n    }\n\n    /* istanbul ignore next */\n    /* eslint-disable no-lone-blocks */\n    {\n      warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n      return false;\n    }\n  };\n\n  // ============================= Text ==============================\n  var sharedTextHooksProps = {\n    formatList: formatList,\n    generateConfig: generateConfig,\n    locale: locale\n  };\n  var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n    _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n    startValueTexts = _useValueTexts2[0],\n    firstStartValueText = _useValueTexts2[1];\n  var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n    _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n    endValueTexts = _useValueTexts4[0],\n    firstEndValueText = _useValueTexts4[1];\n  var _onTextChange = function onTextChange(newText, index) {\n    var inputDate = parseValue(newText, {\n      locale: locale,\n      formatList: formatList,\n      generateConfig: generateConfig\n    });\n    var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n    if (inputDate && !disabledFunc(inputDate)) {\n      setSelectedValue(updateValues(selectedValue, inputDate, index));\n      setViewDate(inputDate, index);\n    }\n  };\n  var _useTextValueMapping = useTextValueMapping({\n      valueTexts: startValueTexts,\n      onTextChange: function onTextChange(newText) {\n        return _onTextChange(newText, 0);\n      }\n    }),\n    _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n    startText = _useTextValueMapping2[0],\n    triggerStartTextChange = _useTextValueMapping2[1],\n    resetStartText = _useTextValueMapping2[2];\n  var _useTextValueMapping3 = useTextValueMapping({\n      valueTexts: endValueTexts,\n      onTextChange: function onTextChange(newText) {\n        return _onTextChange(newText, 1);\n      }\n    }),\n    _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n    endText = _useTextValueMapping4[0],\n    triggerEndTextChange = _useTextValueMapping4[1],\n    resetEndText = _useTextValueMapping4[2];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    rangeHoverValue = _useState4[0],\n    setRangeHoverValue = _useState4[1];\n\n  // ========================== Hover Range ==========================\n  var _useState5 = useState(null),\n    _useState6 = _slicedToArray(_useState5, 2),\n    hoverRangedValue = _useState6[0],\n    setHoverRangedValue = _useState6[1];\n  var _useHoverValue = useHoverValue(startText, {\n      formatList: formatList,\n      generateConfig: generateConfig,\n      locale: locale\n    }),\n    _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n    startHoverValue = _useHoverValue2[0],\n    onStartEnter = _useHoverValue2[1],\n    onStartLeave = _useHoverValue2[2];\n  var _useHoverValue3 = useHoverValue(endText, {\n      formatList: formatList,\n      generateConfig: generateConfig,\n      locale: locale\n    }),\n    _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n    endHoverValue = _useHoverValue4[0],\n    onEndEnter = _useHoverValue4[1],\n    onEndLeave = _useHoverValue4[2];\n  var onDateMouseEnter = function onDateMouseEnter(date) {\n    setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n    if (mergedActivePickerIndex === 0) {\n      onStartEnter(date);\n    } else {\n      onEndEnter(date);\n    }\n  };\n  var onDateMouseLeave = function onDateMouseLeave() {\n    setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n    if (mergedActivePickerIndex === 0) {\n      onStartLeave();\n    } else {\n      onEndLeave();\n    }\n  };\n\n  // ============================= Input =============================\n  // We call effect to update `delayOpen` here since\n  // when popup closed and input focused, should not trigger change when click another input\n  var _React$useState = React.useState(mergedOpen),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    delayOpen = _React$useState2[0],\n    setDelayOpen = _React$useState2[1];\n  React.useEffect(function () {\n    setDelayOpen(mergedOpen);\n  }, [mergedOpen]);\n  var onInternalBlur = function onInternalBlur(e) {\n    if (delayOpen) {\n      if (needConfirmButton) {\n        // when in dateTime mode, switching between two date input fields will trigger onCalendarChange.\n        // when onBlur is triggered, the input field has already switched, \n        // so it's necessary to obtain the value of the previous input field here.\n        var needTriggerIndex = mergedActivePickerIndex ? 0 : 1;\n        var selectedIndexValue = getValue(selectedValue, needTriggerIndex);\n        if (selectedIndexValue) {\n          triggerChange(selectedValue, needTriggerIndex, true);\n        }\n      } else if (changeOnBlur) {\n        var _selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n        if (_selectedIndexValue) {\n          triggerChange(selectedValue, mergedActivePickerIndex);\n        }\n      }\n    }\n    return onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n  };\n  var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n    return {\n      blurToCancel: !changeOnBlur && needConfirmButton,\n      changeOnBlur: changeOnBlur,\n      forwardKeyDown: forwardKeyDown,\n      onBlur: onInternalBlur,\n      isClickOutside: function isClickOutside(target) {\n        var elementsRefs = [startInputDivRef.current, endInputDivRef.current, containerRef.current];\n        return !elementsContains([].concat(_toConsumableArray(needConfirmButton ? [elementsRefs[mergedActivePickerIndex]] : elementsRefs), [panelDivRef.current]), target);\n      },\n      onFocus: function onFocus(e) {\n        if (_onFocus) {\n          _onFocus(e);\n        }\n      },\n      triggerOpen: function triggerOpen(newOpen) {\n        if (newOpen) {\n          _triggerOpen(newOpen, index, 'open');\n        } else {\n          _triggerOpen(newOpen,\n          // Close directly if no selected value provided\n          getValue(selectedValue, index) ? index : false, 'blur');\n        }\n      },\n      onSubmit: function onSubmit() {\n        if (\n        // When user typing disabledDate with keyboard and enter, this value will be empty\n        !selectedValue ||\n        // Normal disabled check\n        disabledDate && disabledDate(selectedValue[index])) {\n          return false;\n        }\n        triggerChange(selectedValue, index);\n        resetText();\n\n        // Switch\n        _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n      },\n      onCancel: function onCancel() {\n        _triggerOpen(false, index, 'cancel');\n        setSelectedValue(mergedValue);\n        resetText();\n      }\n    };\n  };\n  var sharedPickerInput = {\n    onKeyDown: function onKeyDown(e, preventDefault) {\n      _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n    }\n  };\n  var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n      open: startOpen,\n      value: startText\n    }, sharedPickerInput)),\n    _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n    startInputProps = _usePickerInput2[0],\n    _usePickerInput2$ = _usePickerInput2[1],\n    startFocused = _usePickerInput2$.focused,\n    startTyping = _usePickerInput2$.typing;\n  var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n      open: endOpen,\n      value: endText\n    }, sharedPickerInput)),\n    _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n    endInputProps = _usePickerInput4[0],\n    _usePickerInput4$ = _usePickerInput4[1],\n    endFocused = _usePickerInput4$.focused,\n    endTyping = _usePickerInput4$.typing;\n\n  // ========================== Click Picker ==========================\n  var onPickerClick = function onPickerClick(e) {\n    // When click inside the picker & outside the picker's input elements\n    // the panel should still be opened\n    if (onClick) {\n      onClick(e);\n    }\n    if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n      if (!mergedDisabled[0]) {\n        triggerOpenAndFocus(0);\n      } else if (!mergedDisabled[1]) {\n        triggerOpenAndFocus(1);\n      }\n    }\n  };\n  var onPickerMouseDown = function onPickerMouseDown(e) {\n    // shouldn't affect input elements if picker is active\n    if (onMouseDown) {\n      onMouseDown(e);\n    }\n    if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n      e.preventDefault();\n    }\n  };\n\n  // ============================= Sync ==============================\n  // Close should sync back with text value\n  var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n    locale: locale,\n    format: 'YYYYMMDDHHmmss',\n    generateConfig: generateConfig\n  }) : '';\n  var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n    locale: locale,\n    format: 'YYYYMMDDHHmmss',\n    generateConfig: generateConfig\n  }) : '';\n  useEffect(function () {\n    if (!mergedOpen) {\n      setSelectedValue(mergedValue);\n      if (!startValueTexts.length || startValueTexts[0] === '') {\n        triggerStartTextChange('');\n      } else if (firstStartValueText !== startText) {\n        resetStartText();\n      }\n      if (!endValueTexts.length || endValueTexts[0] === '') {\n        triggerEndTextChange('');\n      } else if (firstEndValueText !== endText) {\n        resetEndText();\n      }\n    }\n  }, [mergedOpen, startValueTexts, endValueTexts]);\n\n  // Sync innerValue with control mode\n  useEffect(function () {\n    setSelectedValue(mergedValue);\n  }, [startStr, endStr]);\n  var mergedCellRender = useCellRender({\n    cellRender: cellRender,\n    monthCellRender: monthCellRender,\n    dateRender: dateRender\n  });\n  var panelDateRender = React.useMemo(function () {\n    if (!mergedCellRender) return undefined;\n    return function (date, info) {\n      return mergedCellRender(date, _objectSpread(_objectSpread({}, info), {}, {\n        range: mergedActivePickerIndex ? 'end' : 'start'\n      }));\n    };\n  }, [mergedActivePickerIndex, mergedCellRender]);\n\n  // ============================ Warning ============================\n  if (process.env.NODE_ENV !== 'production') {\n    if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n      warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n    }\n    warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n    warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n    warning(!clearIcon, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n  }\n\n  // ============================ Private ============================\n  if (pickerRef) {\n    pickerRef.current = {\n      focus: function focus() {\n        if (startInputRef.current) {\n          startInputRef.current.focus();\n        }\n      },\n      blur: function blur() {\n        if (startInputRef.current) {\n          startInputRef.current.blur();\n        }\n        if (endInputRef.current) {\n          endInputRef.current.blur();\n        }\n      }\n    };\n  }\n\n  // ============================ Ranges =============================\n  var presetList = usePresets(presets, ranges);\n\n  // ============================= Panel =============================\n  function renderPanel() {\n    var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var panelHoverRangedValue = null;\n    if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n      panelHoverRangedValue = hoverRangedValue;\n    }\n    var panelShowTime = showTime;\n    if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n      var timeDefaultValues = showTime.defaultValue;\n      panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n        defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n      });\n    }\n    return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n      value: {\n        inRange: true,\n        panelPosition: panelPosition,\n        rangedValue: rangeHoverValue || selectedValue,\n        hoverRangedValue: panelHoverRangedValue\n      }\n    }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n      cellRender: panelDateRender,\n      showTime: panelShowTime,\n      mode: mergedModes[mergedActivePickerIndex],\n      generateConfig: generateConfig,\n      style: undefined,\n      direction: direction,\n      disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n      disabledTime: function disabledTime(date) {\n        if (_disabledTime) {\n          return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n        }\n        return false;\n      },\n      className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n      value: getValue(selectedValue, mergedActivePickerIndex),\n      locale: locale,\n      tabIndex: -1,\n      onPanelChange: function onPanelChange(date, newMode) {\n        // clear hover value when panel change\n        if (mergedActivePickerIndex === 0) {\n          onStartLeave(true);\n        }\n        if (mergedActivePickerIndex === 1) {\n          onEndLeave(true);\n        }\n        triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n        var viewDate = date;\n        if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n          viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n        }\n        setViewDate(viewDate, mergedActivePickerIndex);\n      },\n      onOk: null,\n      onSelect: undefined,\n      onChange: undefined,\n      defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0)\n      // defaultPickerValue={undefined}\n    })));\n  }\n\n  var arrowLeft = 0;\n  var panelLeft = 0;\n  if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current && arrowRef.current) {\n    // Arrow offset\n    arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n\n    // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n    // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n    var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n    var panelWidth = panelDivRef.current.offsetWidth;\n    var arrowWidth = arrowRef.current.offsetWidth;\n    if (panelWidth && arrowWidth && arrowLeft > panelWidth - arrowWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n      panelLeft = arrowLeft;\n    }\n  }\n  var arrowPositionStyle = direction === 'rtl' ? {\n    right: arrowLeft\n  } : {\n    left: arrowLeft\n  };\n  function renderPanels() {\n    var panels;\n    var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n    var rangesNode = getRanges({\n      prefixCls: prefixCls,\n      components: components,\n      needConfirmButton: needConfirmButton,\n      okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n      locale: locale,\n      // rangeList,\n      onOk: function onOk() {\n        var selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n        if (selectedIndexValue) {\n          triggerChange(selectedValue, mergedActivePickerIndex);\n          _onOk === null || _onOk === void 0 ? void 0 : _onOk(selectedValue);\n\n          // Switch\n          _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n        }\n      }\n    });\n    if (picker !== 'time' && !showTime) {\n      var viewDate = getViewDate(mergedActivePickerIndex);\n      var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n      var currentMode = mergedModes[mergedActivePickerIndex];\n      var showDoublePanel = currentMode === picker;\n      var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n        pickerValue: viewDate,\n        onPickerValueChange: function onPickerValueChange(newViewDate) {\n          setViewDate(newViewDate, mergedActivePickerIndex);\n        }\n      });\n      var rightPanel = renderPanel('right', {\n        pickerValue: nextViewDate,\n        onPickerValueChange: function onPickerValueChange(newViewDate) {\n          setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n        }\n      });\n      if (direction === 'rtl') {\n        panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n      } else {\n        panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n      }\n    } else {\n      panels = renderPanel();\n    }\n    var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-panel-layout\")\n    }, /*#__PURE__*/React.createElement(PresetPanel, {\n      prefixCls: prefixCls,\n      presets: presetList,\n      onClick: function onClick(nextValue) {\n        triggerChange(nextValue, null);\n        _triggerOpen(false, mergedActivePickerIndex, 'preset');\n      },\n      onHover: function onHover(hoverValue) {\n        setRangeHoverValue(hoverValue);\n      }\n    }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-panels\")\n    }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-footer\")\n    }, extraNode, rangesNode)));\n    if (panelRender) {\n      mergedNodes = panelRender(mergedNodes);\n    }\n    return /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-panel-container\"),\n      style: {\n        marginLeft: panelLeft\n      },\n      ref: panelDivRef,\n      onMouseDown: function onMouseDown(e) {\n        e.preventDefault();\n      }\n    }, mergedNodes);\n  }\n  var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n    style: {\n      minWidth: popupMinWidth\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: arrowRef,\n    className: \"\".concat(prefixCls, \"-range-arrow\"),\n    style: arrowPositionStyle\n  }), renderPanels());\n\n  // ============================= Icons =============================\n  var suffixNode;\n  if (suffixIcon) {\n    suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-suffix\"),\n      onMouseDown: function onMouseDown(e) {\n        // Not lost focus\n        e.preventDefault();\n      }\n    }, suffixIcon);\n  }\n  var mergedClearIcon = getClearIcon(prefixCls, allowClear, clearIcon);\n  var clearNode = /*#__PURE__*/React.createElement(\"span\", {\n    onMouseDown: function onMouseDown(e) {\n      e.preventDefault();\n      e.stopPropagation();\n    },\n    onMouseUp: function onMouseUp(e) {\n      e.preventDefault();\n      e.stopPropagation();\n      var values = mergedValue;\n      if (!mergedDisabled[0]) {\n        values = updateValues(values, null, 0);\n      }\n      if (!mergedDisabled[1]) {\n        values = updateValues(values, null, 1);\n      }\n      triggerChange(values, null);\n      _triggerOpen(false, mergedActivePickerIndex, 'clear');\n    },\n    className: \"\".concat(prefixCls, \"-clear\"),\n    role: \"button\"\n  }, mergedClearIcon);\n  var mergedAllowClear = allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1]);\n  var inputSharedProps = {\n    size: getInputSize(picker, formatList[0], generateConfig)\n  };\n  var activeBarLeft = 0;\n  var activeBarWidth = 0;\n  if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n    if (mergedActivePickerIndex === 0) {\n      activeBarWidth = startInputDivRef.current.offsetWidth;\n    } else {\n      activeBarLeft = arrowLeft;\n      activeBarWidth = endInputDivRef.current.offsetWidth;\n    }\n  }\n  var activeBarPositionStyle = direction === 'rtl' ? {\n    right: activeBarLeft\n  } : {\n    left: activeBarLeft\n  };\n  // ============================ Return =============================\n  var onContextSelect = function onContextSelect(date, type) {\n    var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n    if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n      // triggerChange will also update selected values\n      triggerChange(values, mergedActivePickerIndex);\n      // clear hover value style\n      if (mergedActivePickerIndex === 0) {\n        onStartLeave();\n      } else {\n        onEndLeave();\n      }\n\n      // Switch\n      var nextActivePickerIndex = mergedActivePickerIndex === 0 ? 1 : 0;\n      if (mergedDisabled[nextActivePickerIndex]) {\n        _triggerOpen(false, false, 'confirm');\n      } else {\n        _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n      }\n    } else {\n      setSelectedValue(values);\n    }\n  };\n  return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n    value: {\n      operationRef: operationRef,\n      hideHeader: picker === 'time',\n      onDateMouseEnter: onDateMouseEnter,\n      onDateMouseLeave: onDateMouseLeave,\n      hideRanges: true,\n      onSelect: onContextSelect,\n      open: mergedOpen\n    }\n  }, /*#__PURE__*/React.createElement(PickerTrigger, {\n    visible: mergedOpen,\n    popupElement: rangePanel,\n    popupStyle: popupStyle,\n    prefixCls: prefixCls,\n    dropdownClassName: dropdownClassName,\n    dropdownAlign: dropdownAlign,\n    getPopupContainer: getPopupContainer,\n    transitionName: transitionName,\n    range: true,\n    direction: direction\n  }, /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: containerRef,\n    className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n    style: style,\n    onClick: onPickerClick,\n    onMouseEnter: onMouseEnter,\n    onMouseLeave: onMouseLeave,\n    onMouseDown: onPickerMouseDown,\n    onMouseUp: onMouseUp\n  }, pickAttrs(props, {\n    aria: true,\n    data: true\n  })), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n    ref: startInputDivRef\n  }, /*#__PURE__*/React.createElement(\"input\", _extends({\n    id: id,\n    disabled: mergedDisabled[0],\n    readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n    value: startHoverValue || startText,\n    onChange: function onChange(e) {\n      triggerStartTextChange(e.target.value);\n    },\n    autoFocus: autoFocus,\n    placeholder: getValue(placeholder, 0) || '',\n    ref: startInputRef\n  }, startInputProps, inputSharedProps, {\n    autoComplete: autoComplete\n  }))), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-range-separator\"),\n    ref: separatorRef\n  }, separator), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n    ref: endInputDivRef\n  }, /*#__PURE__*/React.createElement(\"input\", _extends({\n    disabled: mergedDisabled[1],\n    readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n    value: endHoverValue || endText,\n    onChange: function onChange(e) {\n      triggerEndTextChange(e.target.value);\n    },\n    placeholder: getValue(placeholder, 1) || '',\n    ref: endInputRef\n  }, endInputProps, inputSharedProps, {\n    autoComplete: autoComplete\n  }))), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-active-bar\"),\n    style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n      width: activeBarWidth,\n      position: 'absolute'\n    })\n  }), suffixNode, mergedAllowClear && clearNode)));\n}\n\n// Wrap with class component to enable pass generic with instance method\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n  _inherits(RangePicker, _React$Component);\n  var _super = _createSuper(RangePicker);\n  function RangePicker() {\n    var _this;\n    _classCallCheck(this, RangePicker);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(args));\n    _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n    _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.focus();\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.blur();\n      }\n    });\n    return _this;\n  }\n  _createClass(RangePicker, [{\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n        pickerRef: this.pickerRef\n      }));\n    }\n  }]);\n  return RangePicker;\n}(React.Component);\nexport default RangePicker;","map":{"version":3,"names":["_classCallCheck","_createClass","_assertThisInitialized","_inherits","_createSuper","_extends","_defineProperty","_typeof","_objectSpread","_toConsumableArray","_slicedToArray","classNames","useMergedState","raf","warning","pickAttrs","React","useEffect","useRef","useState","useCellRender","useHoverValue","usePickerInput","usePresets","useRangeDisabled","useRangeOpen","useRangeViewDates","useTextValueMapping","useValueTexts","PanelContext","PickerPanel","PickerTrigger","PresetPanel","RangeContext","formatValue","getClosingViewDate","isEqual","isSameDate","isSameQuarter","isSameWeek","parseValue","getExtraFooter","getRanges","getValue","toArray","updateValues","elementsContains","getDefaultFormat","getInputSize","legacyPropsWarning","getClearIcon","reorderValues","values","generateConfig","isAfter","canValueTrigger","value","index","disabled","allowEmpty","InnerRangePicker","props","_classNames2","_classNames3","_classNames4","_ref","_ref$prefixCls","prefixCls","id","style","className","popupStyle","dropdownClassName","transitionName","dropdownAlign","getPopupContainer","locale","placeholder","autoFocus","format","_ref$picker","picker","showTime","use12Hours","_ref$separator","separator","defaultValue","defaultPickerValue","open","defaultOpen","disabledDate","_disabledTime","disabledTime","dateRender","monthCellRender","cellRender","panelRender","presets","ranges","allowClear","suffixIcon","clearIcon","pickerRef","inputReadOnly","mode","renderExtraFooter","onChange","onOpenChange","onPanelChange","onCalendarChange","_onFocus","onFocus","onBlur","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onClick","_onOk","onOk","_onKeyDown","onKeyDown","components","order","direction","activePickerIndex","_ref$autoComplete","autoComplete","changeOnBlur","needConfirmButton","containerRef","panelDivRef","startInputDivRef","endInputDivRef","separatorRef","startInputRef","endInputRef","arrowRef","process","env","NODE_ENV","formatList","formatDateValue","operationRef","mergedDisabled","useMemo","Array","isArray","_useMergedState","postState","_useMergedState2","mergedValue","setInnerValue","_useRangeViewDates","defaultDates","_useRangeViewDates2","getViewDate","setViewDate","_useMergedState3","postValues","i","getNow","_useMergedState4","selectedValue","setSelectedValue","_useMergedState5","_useMergedState6","mergedModes","setInnerModes","triggerModesChange","modes","_useRangeOpen","_useRangeOpen2","mergedOpen","mergedActivePickerIndex","firstTimeOpen","_triggerOpen","startOpen","endOpen","_useRangeDisabled","_useRangeDisabled2","disabledStartDate","disabledEndDate","_useState","_useState2","popupMinWidth","setPopupMinWidth","current","offsetWidth","triggerOpenAndFocus","_inputRef$current","inputRef","focus","triggerChange","newValue","sourceIndex","triggerCalendarChangeOnly","startValue","endValue","startStr","endStr","_info","range","canStartValueTrigger","canEndValueTrigger","canTrigger","forwardKeyDown","e","sharedTextHooksProps","_useValueTexts","_useValueTexts2","startValueTexts","firstStartValueText","_useValueTexts3","_useValueTexts4","endValueTexts","firstEndValueText","_onTextChange","onTextChange","newText","inputDate","disabledFunc","_useTextValueMapping","valueTexts","_useTextValueMapping2","startText","triggerStartTextChange","resetStartText","_useTextValueMapping3","_useTextValueMapping4","endText","triggerEndTextChange","resetEndText","_useState3","_useState4","rangeHoverValue","setRangeHoverValue","_useState5","_useState6","hoverRangedValue","setHoverRangedValue","_useHoverValue","_useHoverValue2","startHoverValue","onStartEnter","onStartLeave","_useHoverValue3","_useHoverValue4","endHoverValue","onEndEnter","onEndLeave","onDateMouseEnter","date","onDateMouseLeave","_React$useState","_React$useState2","delayOpen","setDelayOpen","onInternalBlur","needTriggerIndex","selectedIndexValue","_selectedIndexValue","getSharedInputHookProps","resetText","blurToCancel","isClickOutside","target","elementsRefs","concat","triggerOpen","newOpen","onSubmit","onCancel","sharedPickerInput","preventDefault","_usePickerInput","_usePickerInput2","startInputProps","_usePickerInput2$","startFocused","focused","startTyping","typing","_usePickerInput3","_usePickerInput4","endInputProps","_usePickerInput4$","endFocused","endTyping","onPickerClick","contains","onPickerMouseDown","length","mergedCellRender","panelDateRender","undefined","info","blur","presetList","renderPanel","panelPosition","arguments","panelProps","panelHoverRangedValue","panelShowTime","timeDefaultValues","createElement","Provider","inRange","rangedValue","tabIndex","newMode","viewDate","onSelect","arrowLeft","panelLeft","arrowMarginLeft","offsetLeft","panelWidth","arrowWidth","arrowPositionStyle","right","left","renderPanels","panels","extraNode","rangesNode","okDisabled","nextViewDate","currentMode","showDoublePanel","leftPanel","pickerValue","onPickerValueChange","newViewDate","rightPanel","Fragment","mergedNodes","nextValue","onHover","hoverValue","marginLeft","ref","rangePanel","minWidth","suffixNode","mergedClearIcon","clearNode","stopPropagation","role","mergedAllowClear","inputSharedProps","size","activeBarLeft","activeBarWidth","activeBarPositionStyle","onContextSelect","type","nextActivePickerIndex","hideHeader","hideRanges","visible","popupElement","aria","data","readOnly","width","position","RangePicker","_React$Component","_super","_this","_len","args","_key","call","apply","createRef","key","render","Component"],"sources":["/Users/chrishaack/UC_Trains_Voice/react-demo/node_modules/rc-picker/es/RangePicker.js"],"sourcesContent":["import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport { useCellRender } from \"./hooks/useCellRender\";\nimport useHoverValue from \"./hooks/useHoverValue\";\nimport usePickerInput from \"./hooks/usePickerInput\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeDisabled from \"./hooks/useRangeDisabled\";\nimport useRangeOpen from \"./hooks/useRangeOpen\";\nimport useRangeViewDates from \"./hooks/useRangeViewDates\";\nimport useTextValueMapping from \"./hooks/useTextValueMapping\";\nimport useValueTexts from \"./hooks/useValueTexts\";\nimport PanelContext from \"./PanelContext\";\nimport PickerPanel from \"./PickerPanel\";\nimport PickerTrigger from \"./PickerTrigger\";\nimport PresetPanel from \"./PresetPanel\";\nimport RangeContext from \"./RangeContext\";\nimport { formatValue, getClosingViewDate, isEqual, isSameDate, isSameQuarter, isSameWeek, parseValue } from \"./utils/dateUtil\";\nimport getExtraFooter from \"./utils/getExtraFooter\";\nimport getRanges from \"./utils/getRanges\";\nimport { getValue, toArray, updateValues } from \"./utils/miscUtil\";\nimport { elementsContains, getDefaultFormat, getInputSize } from \"./utils/uiUtil\";\nimport { legacyPropsWarning } from \"./utils/warnUtil\";\nimport { getClearIcon } from \"./utils/getClearIcon\";\nfunction reorderValues(values, generateConfig) {\n  if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n    return [values[1], values[0]];\n  }\n  return values;\n}\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n  if (value) {\n    return true;\n  }\n  if (allowEmpty && allowEmpty[index]) {\n    return true;\n  }\n  if (disabled[(index + 1) % 2]) {\n    return true;\n  }\n  return false;\n}\n\n// TMP type to fit for ts 3.9.2\n\nfunction InnerRangePicker(props) {\n  var _classNames2, _classNames3, _classNames4;\n  var _ref = props,\n    _ref$prefixCls = _ref.prefixCls,\n    prefixCls = _ref$prefixCls === void 0 ? 'rc-picker' : _ref$prefixCls,\n    id = _ref.id,\n    style = _ref.style,\n    className = _ref.className,\n    popupStyle = _ref.popupStyle,\n    dropdownClassName = _ref.dropdownClassName,\n    transitionName = _ref.transitionName,\n    dropdownAlign = _ref.dropdownAlign,\n    getPopupContainer = _ref.getPopupContainer,\n    generateConfig = _ref.generateConfig,\n    locale = _ref.locale,\n    placeholder = _ref.placeholder,\n    autoFocus = _ref.autoFocus,\n    disabled = _ref.disabled,\n    format = _ref.format,\n    _ref$picker = _ref.picker,\n    picker = _ref$picker === void 0 ? 'date' : _ref$picker,\n    showTime = _ref.showTime,\n    use12Hours = _ref.use12Hours,\n    _ref$separator = _ref.separator,\n    separator = _ref$separator === void 0 ? '~' : _ref$separator,\n    value = _ref.value,\n    defaultValue = _ref.defaultValue,\n    defaultPickerValue = _ref.defaultPickerValue,\n    open = _ref.open,\n    defaultOpen = _ref.defaultOpen,\n    disabledDate = _ref.disabledDate,\n    _disabledTime = _ref.disabledTime,\n    dateRender = _ref.dateRender,\n    monthCellRender = _ref.monthCellRender,\n    cellRender = _ref.cellRender,\n    panelRender = _ref.panelRender,\n    presets = _ref.presets,\n    ranges = _ref.ranges,\n    allowEmpty = _ref.allowEmpty,\n    allowClear = _ref.allowClear,\n    suffixIcon = _ref.suffixIcon,\n    clearIcon = _ref.clearIcon,\n    pickerRef = _ref.pickerRef,\n    inputReadOnly = _ref.inputReadOnly,\n    mode = _ref.mode,\n    renderExtraFooter = _ref.renderExtraFooter,\n    onChange = _ref.onChange,\n    onOpenChange = _ref.onOpenChange,\n    onPanelChange = _ref.onPanelChange,\n    onCalendarChange = _ref.onCalendarChange,\n    _onFocus = _ref.onFocus,\n    onBlur = _ref.onBlur,\n    onMouseDown = _ref.onMouseDown,\n    onMouseUp = _ref.onMouseUp,\n    onMouseEnter = _ref.onMouseEnter,\n    onMouseLeave = _ref.onMouseLeave,\n    onClick = _ref.onClick,\n    _onOk = _ref.onOk,\n    _onKeyDown = _ref.onKeyDown,\n    components = _ref.components,\n    order = _ref.order,\n    direction = _ref.direction,\n    activePickerIndex = _ref.activePickerIndex,\n    _ref$autoComplete = _ref.autoComplete,\n    autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n    changeOnBlur = _ref.changeOnBlur;\n  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n  var containerRef = useRef(null);\n  var panelDivRef = useRef(null);\n  var startInputDivRef = useRef(null);\n  var endInputDivRef = useRef(null);\n  var separatorRef = useRef(null);\n  var startInputRef = useRef(null);\n  var endInputRef = useRef(null);\n  var arrowRef = useRef(null);\n\n  // ============================ Warning ============================\n  if (process.env.NODE_ENV !== 'production') {\n    legacyPropsWarning(props);\n  }\n\n  // ============================= Misc ==============================\n  var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n  var formatDateValue = function formatDateValue(values, index) {\n    return values && values[index] ? formatValue(values[index], {\n      generateConfig: generateConfig,\n      locale: locale,\n      format: formatList[0]\n    }) : '';\n  };\n\n  // Operation ref\n  var operationRef = useRef(null);\n  var mergedDisabled = React.useMemo(function () {\n    if (Array.isArray(disabled)) {\n      return disabled;\n    }\n    return [disabled || false, disabled || false];\n  }, [disabled]);\n\n  // ============================= Value =============================\n  var _useMergedState = useMergedState(null, {\n      value: value,\n      defaultValue: defaultValue,\n      postState: function postState(values) {\n        return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedValue = _useMergedState2[0],\n    setInnerValue = _useMergedState2[1];\n\n  // =========================== View Date ===========================\n  // Config view panel\n  var _useRangeViewDates = useRangeViewDates({\n      values: mergedValue,\n      picker: picker,\n      defaultDates: defaultPickerValue,\n      generateConfig: generateConfig\n    }),\n    _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n    getViewDate = _useRangeViewDates2[0],\n    setViewDate = _useRangeViewDates2[1];\n\n  // ========================= Select Values =========================\n  var _useMergedState3 = useMergedState(mergedValue, {\n      postState: function postState(values) {\n        var postValues = values;\n        if (mergedDisabled[0] && mergedDisabled[1]) {\n          return postValues;\n        }\n\n        // Fill disabled unit\n        for (var i = 0; i < 2; i += 1) {\n          if (mergedDisabled[i] && !postValues && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n            postValues = updateValues(postValues, generateConfig.getNow(), i);\n          }\n        }\n        return postValues;\n      }\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    selectedValue = _useMergedState4[0],\n    setSelectedValue = _useMergedState4[1];\n\n  // ============================= Modes =============================\n  var _useMergedState5 = useMergedState([picker, picker], {\n      value: mode\n    }),\n    _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n    mergedModes = _useMergedState6[0],\n    setInnerModes = _useMergedState6[1];\n  useEffect(function () {\n    setInnerModes([picker, picker]);\n  }, [picker]);\n  var triggerModesChange = function triggerModesChange(modes, values) {\n    setInnerModes(modes);\n    if (onPanelChange) {\n      onPanelChange(values, modes);\n    }\n  };\n\n  // ============================= Open ==============================\n  var _useRangeOpen = useRangeOpen(defaultOpen, open, activePickerIndex, changeOnBlur, needConfirmButton, startInputRef, endInputRef, getValue(selectedValue, 0), getValue(selectedValue, 1), mergedDisabled, onOpenChange),\n    _useRangeOpen2 = _slicedToArray(_useRangeOpen, 4),\n    mergedOpen = _useRangeOpen2[0],\n    mergedActivePickerIndex = _useRangeOpen2[1],\n    firstTimeOpen = _useRangeOpen2[2],\n    _triggerOpen = _useRangeOpen2[3];\n  var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n  var endOpen = mergedOpen && mergedActivePickerIndex === 1;\n\n  // ========================= Disable Date ==========================\n  var _useRangeDisabled = useRangeDisabled({\n      picker: picker,\n      selectedValue: selectedValue,\n      locale: locale,\n      disabled: mergedDisabled,\n      disabledDate: disabledDate,\n      generateConfig: generateConfig\n    }, !mergedOpen || firstTimeOpen),\n    _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n    disabledStartDate = _useRangeDisabled2[0],\n    disabledEndDate = _useRangeDisabled2[1];\n\n  // ============================= Popup =============================\n  // Popup min width\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    popupMinWidth = _useState2[0],\n    setPopupMinWidth = _useState2[1];\n  useEffect(function () {\n    if (!mergedOpen && containerRef.current) {\n      setPopupMinWidth(containerRef.current.offsetWidth);\n    }\n  }, [mergedOpen]);\n\n  // ============================ Trigger ============================\n  function triggerOpenAndFocus(index) {\n    _triggerOpen(true, index, 'open');\n    // Use setTimeout to make sure panel DOM exists\n    raf(function () {\n      var _inputRef$current;\n      var inputRef = [startInputRef, endInputRef][index];\n      (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n    }, 0);\n  }\n  function triggerChange(newValue, sourceIndex, triggerCalendarChangeOnly) {\n    var values = newValue;\n    var startValue = getValue(values, 0);\n    var endValue = getValue(values, 1);\n\n    // >>>>> Format start & end values\n    if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n      if (\n      // WeekPicker only compare week\n      picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) ||\n      // QuotaPicker only compare week\n      picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) ||\n      // Other non-TimePicker compare date\n      picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\n        // Clean up end date when start date is after end date\n        if (sourceIndex === 0) {\n          values = [startValue, null];\n          endValue = null;\n        } else {\n          startValue = null;\n          values = [null, endValue];\n        }\n      } else if (picker !== 'time' || order !== false) {\n        // Reorder when in same date\n        values = reorderValues(values, generateConfig);\n      }\n    }\n    setSelectedValue(values);\n    var startStr = formatDateValue(values, 0);\n    var endStr = formatDateValue(values, 1);\n    if (onCalendarChange) {\n      var _info = {\n        range: sourceIndex === 0 ? 'start' : 'end'\n      };\n      onCalendarChange(values, [startStr, endStr], _info);\n    }\n    if (!triggerCalendarChangeOnly) {\n      // >>>>> Trigger `onChange` event\n      var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n      var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n      var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n      if (canTrigger) {\n        // Trigger onChange only when value is validate\n        setInnerValue(values);\n        if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n          onChange(values, [startStr, endStr]);\n        }\n      }\n    }\n  }\n  var forwardKeyDown = function forwardKeyDown(e) {\n    if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n      // Let popup panel handle keyboard\n      return operationRef.current.onKeyDown(e);\n    }\n\n    /* istanbul ignore next */\n    /* eslint-disable no-lone-blocks */\n    {\n      warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n      return false;\n    }\n  };\n\n  // ============================= Text ==============================\n  var sharedTextHooksProps = {\n    formatList: formatList,\n    generateConfig: generateConfig,\n    locale: locale\n  };\n  var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n    _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n    startValueTexts = _useValueTexts2[0],\n    firstStartValueText = _useValueTexts2[1];\n  var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n    _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n    endValueTexts = _useValueTexts4[0],\n    firstEndValueText = _useValueTexts4[1];\n  var _onTextChange = function onTextChange(newText, index) {\n    var inputDate = parseValue(newText, {\n      locale: locale,\n      formatList: formatList,\n      generateConfig: generateConfig\n    });\n    var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n    if (inputDate && !disabledFunc(inputDate)) {\n      setSelectedValue(updateValues(selectedValue, inputDate, index));\n      setViewDate(inputDate, index);\n    }\n  };\n  var _useTextValueMapping = useTextValueMapping({\n      valueTexts: startValueTexts,\n      onTextChange: function onTextChange(newText) {\n        return _onTextChange(newText, 0);\n      }\n    }),\n    _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n    startText = _useTextValueMapping2[0],\n    triggerStartTextChange = _useTextValueMapping2[1],\n    resetStartText = _useTextValueMapping2[2];\n  var _useTextValueMapping3 = useTextValueMapping({\n      valueTexts: endValueTexts,\n      onTextChange: function onTextChange(newText) {\n        return _onTextChange(newText, 1);\n      }\n    }),\n    _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n    endText = _useTextValueMapping4[0],\n    triggerEndTextChange = _useTextValueMapping4[1],\n    resetEndText = _useTextValueMapping4[2];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    rangeHoverValue = _useState4[0],\n    setRangeHoverValue = _useState4[1];\n\n  // ========================== Hover Range ==========================\n  var _useState5 = useState(null),\n    _useState6 = _slicedToArray(_useState5, 2),\n    hoverRangedValue = _useState6[0],\n    setHoverRangedValue = _useState6[1];\n  var _useHoverValue = useHoverValue(startText, {\n      formatList: formatList,\n      generateConfig: generateConfig,\n      locale: locale\n    }),\n    _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n    startHoverValue = _useHoverValue2[0],\n    onStartEnter = _useHoverValue2[1],\n    onStartLeave = _useHoverValue2[2];\n  var _useHoverValue3 = useHoverValue(endText, {\n      formatList: formatList,\n      generateConfig: generateConfig,\n      locale: locale\n    }),\n    _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n    endHoverValue = _useHoverValue4[0],\n    onEndEnter = _useHoverValue4[1],\n    onEndLeave = _useHoverValue4[2];\n  var onDateMouseEnter = function onDateMouseEnter(date) {\n    setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n    if (mergedActivePickerIndex === 0) {\n      onStartEnter(date);\n    } else {\n      onEndEnter(date);\n    }\n  };\n  var onDateMouseLeave = function onDateMouseLeave() {\n    setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n    if (mergedActivePickerIndex === 0) {\n      onStartLeave();\n    } else {\n      onEndLeave();\n    }\n  };\n\n  // ============================= Input =============================\n  // We call effect to update `delayOpen` here since\n  // when popup closed and input focused, should not trigger change when click another input\n  var _React$useState = React.useState(mergedOpen),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    delayOpen = _React$useState2[0],\n    setDelayOpen = _React$useState2[1];\n  React.useEffect(function () {\n    setDelayOpen(mergedOpen);\n  }, [mergedOpen]);\n  var onInternalBlur = function onInternalBlur(e) {\n    if (delayOpen) {\n      if (needConfirmButton) {\n        // when in dateTime mode, switching between two date input fields will trigger onCalendarChange.\n        // when onBlur is triggered, the input field has already switched, \n        // so it's necessary to obtain the value of the previous input field here.\n        var needTriggerIndex = mergedActivePickerIndex ? 0 : 1;\n        var selectedIndexValue = getValue(selectedValue, needTriggerIndex);\n        if (selectedIndexValue) {\n          triggerChange(selectedValue, needTriggerIndex, true);\n        }\n      } else if (changeOnBlur) {\n        var _selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n        if (_selectedIndexValue) {\n          triggerChange(selectedValue, mergedActivePickerIndex);\n        }\n      }\n    }\n    return onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n  };\n  var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n    return {\n      blurToCancel: !changeOnBlur && needConfirmButton,\n      changeOnBlur: changeOnBlur,\n      forwardKeyDown: forwardKeyDown,\n      onBlur: onInternalBlur,\n      isClickOutside: function isClickOutside(target) {\n        var elementsRefs = [startInputDivRef.current, endInputDivRef.current, containerRef.current];\n        return !elementsContains([].concat(_toConsumableArray(needConfirmButton ? [elementsRefs[mergedActivePickerIndex]] : elementsRefs), [panelDivRef.current]), target);\n      },\n      onFocus: function onFocus(e) {\n        if (_onFocus) {\n          _onFocus(e);\n        }\n      },\n      triggerOpen: function triggerOpen(newOpen) {\n        if (newOpen) {\n          _triggerOpen(newOpen, index, 'open');\n        } else {\n          _triggerOpen(newOpen,\n          // Close directly if no selected value provided\n          getValue(selectedValue, index) ? index : false, 'blur');\n        }\n      },\n      onSubmit: function onSubmit() {\n        if (\n        // When user typing disabledDate with keyboard and enter, this value will be empty\n        !selectedValue ||\n        // Normal disabled check\n        disabledDate && disabledDate(selectedValue[index])) {\n          return false;\n        }\n        triggerChange(selectedValue, index);\n        resetText();\n\n        // Switch\n        _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n      },\n      onCancel: function onCancel() {\n        _triggerOpen(false, index, 'cancel');\n        setSelectedValue(mergedValue);\n        resetText();\n      }\n    };\n  };\n  var sharedPickerInput = {\n    onKeyDown: function onKeyDown(e, preventDefault) {\n      _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n    }\n  };\n  var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n      open: startOpen,\n      value: startText\n    }, sharedPickerInput)),\n    _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n    startInputProps = _usePickerInput2[0],\n    _usePickerInput2$ = _usePickerInput2[1],\n    startFocused = _usePickerInput2$.focused,\n    startTyping = _usePickerInput2$.typing;\n  var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n      open: endOpen,\n      value: endText\n    }, sharedPickerInput)),\n    _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n    endInputProps = _usePickerInput4[0],\n    _usePickerInput4$ = _usePickerInput4[1],\n    endFocused = _usePickerInput4$.focused,\n    endTyping = _usePickerInput4$.typing;\n\n  // ========================== Click Picker ==========================\n  var onPickerClick = function onPickerClick(e) {\n    // When click inside the picker & outside the picker's input elements\n    // the panel should still be opened\n    if (onClick) {\n      onClick(e);\n    }\n    if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n      if (!mergedDisabled[0]) {\n        triggerOpenAndFocus(0);\n      } else if (!mergedDisabled[1]) {\n        triggerOpenAndFocus(1);\n      }\n    }\n  };\n  var onPickerMouseDown = function onPickerMouseDown(e) {\n    // shouldn't affect input elements if picker is active\n    if (onMouseDown) {\n      onMouseDown(e);\n    }\n    if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n      e.preventDefault();\n    }\n  };\n\n  // ============================= Sync ==============================\n  // Close should sync back with text value\n  var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n    locale: locale,\n    format: 'YYYYMMDDHHmmss',\n    generateConfig: generateConfig\n  }) : '';\n  var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n    locale: locale,\n    format: 'YYYYMMDDHHmmss',\n    generateConfig: generateConfig\n  }) : '';\n  useEffect(function () {\n    if (!mergedOpen) {\n      setSelectedValue(mergedValue);\n      if (!startValueTexts.length || startValueTexts[0] === '') {\n        triggerStartTextChange('');\n      } else if (firstStartValueText !== startText) {\n        resetStartText();\n      }\n      if (!endValueTexts.length || endValueTexts[0] === '') {\n        triggerEndTextChange('');\n      } else if (firstEndValueText !== endText) {\n        resetEndText();\n      }\n    }\n  }, [mergedOpen, startValueTexts, endValueTexts]);\n\n  // Sync innerValue with control mode\n  useEffect(function () {\n    setSelectedValue(mergedValue);\n  }, [startStr, endStr]);\n  var mergedCellRender = useCellRender({\n    cellRender: cellRender,\n    monthCellRender: monthCellRender,\n    dateRender: dateRender\n  });\n  var panelDateRender = React.useMemo(function () {\n    if (!mergedCellRender) return undefined;\n    return function (date, info) {\n      return mergedCellRender(date, _objectSpread(_objectSpread({}, info), {}, {\n        range: mergedActivePickerIndex ? 'end' : 'start'\n      }));\n    };\n  }, [mergedActivePickerIndex, mergedCellRender]);\n\n  // ============================ Warning ============================\n  if (process.env.NODE_ENV !== 'production') {\n    if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n      warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n    }\n    warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n    warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n    warning(!clearIcon, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n  }\n\n  // ============================ Private ============================\n  if (pickerRef) {\n    pickerRef.current = {\n      focus: function focus() {\n        if (startInputRef.current) {\n          startInputRef.current.focus();\n        }\n      },\n      blur: function blur() {\n        if (startInputRef.current) {\n          startInputRef.current.blur();\n        }\n        if (endInputRef.current) {\n          endInputRef.current.blur();\n        }\n      }\n    };\n  }\n\n  // ============================ Ranges =============================\n  var presetList = usePresets(presets, ranges);\n\n  // ============================= Panel =============================\n  function renderPanel() {\n    var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var panelHoverRangedValue = null;\n    if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n      panelHoverRangedValue = hoverRangedValue;\n    }\n    var panelShowTime = showTime;\n    if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n      var timeDefaultValues = showTime.defaultValue;\n      panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n        defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n      });\n    }\n    return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n      value: {\n        inRange: true,\n        panelPosition: panelPosition,\n        rangedValue: rangeHoverValue || selectedValue,\n        hoverRangedValue: panelHoverRangedValue\n      }\n    }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n      cellRender: panelDateRender,\n      showTime: panelShowTime,\n      mode: mergedModes[mergedActivePickerIndex],\n      generateConfig: generateConfig,\n      style: undefined,\n      direction: direction,\n      disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n      disabledTime: function disabledTime(date) {\n        if (_disabledTime) {\n          return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n        }\n        return false;\n      },\n      className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n      value: getValue(selectedValue, mergedActivePickerIndex),\n      locale: locale,\n      tabIndex: -1,\n      onPanelChange: function onPanelChange(date, newMode) {\n        // clear hover value when panel change\n        if (mergedActivePickerIndex === 0) {\n          onStartLeave(true);\n        }\n        if (mergedActivePickerIndex === 1) {\n          onEndLeave(true);\n        }\n        triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n        var viewDate = date;\n        if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n          viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n        }\n        setViewDate(viewDate, mergedActivePickerIndex);\n      },\n      onOk: null,\n      onSelect: undefined,\n      onChange: undefined,\n      defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0)\n      // defaultPickerValue={undefined}\n    })));\n  }\n\n  var arrowLeft = 0;\n  var panelLeft = 0;\n  if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current && arrowRef.current) {\n    // Arrow offset\n    arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n\n    // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n    // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n    var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n    var panelWidth = panelDivRef.current.offsetWidth;\n    var arrowWidth = arrowRef.current.offsetWidth;\n    if (panelWidth && arrowWidth && arrowLeft > panelWidth - arrowWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n      panelLeft = arrowLeft;\n    }\n  }\n  var arrowPositionStyle = direction === 'rtl' ? {\n    right: arrowLeft\n  } : {\n    left: arrowLeft\n  };\n  function renderPanels() {\n    var panels;\n    var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n    var rangesNode = getRanges({\n      prefixCls: prefixCls,\n      components: components,\n      needConfirmButton: needConfirmButton,\n      okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n      locale: locale,\n      // rangeList,\n      onOk: function onOk() {\n        var selectedIndexValue = getValue(selectedValue, mergedActivePickerIndex);\n        if (selectedIndexValue) {\n          triggerChange(selectedValue, mergedActivePickerIndex);\n          _onOk === null || _onOk === void 0 ? void 0 : _onOk(selectedValue);\n\n          // Switch\n          _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n        }\n      }\n    });\n    if (picker !== 'time' && !showTime) {\n      var viewDate = getViewDate(mergedActivePickerIndex);\n      var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n      var currentMode = mergedModes[mergedActivePickerIndex];\n      var showDoublePanel = currentMode === picker;\n      var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n        pickerValue: viewDate,\n        onPickerValueChange: function onPickerValueChange(newViewDate) {\n          setViewDate(newViewDate, mergedActivePickerIndex);\n        }\n      });\n      var rightPanel = renderPanel('right', {\n        pickerValue: nextViewDate,\n        onPickerValueChange: function onPickerValueChange(newViewDate) {\n          setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n        }\n      });\n      if (direction === 'rtl') {\n        panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n      } else {\n        panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n      }\n    } else {\n      panels = renderPanel();\n    }\n    var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-panel-layout\")\n    }, /*#__PURE__*/React.createElement(PresetPanel, {\n      prefixCls: prefixCls,\n      presets: presetList,\n      onClick: function onClick(nextValue) {\n        triggerChange(nextValue, null);\n        _triggerOpen(false, mergedActivePickerIndex, 'preset');\n      },\n      onHover: function onHover(hoverValue) {\n        setRangeHoverValue(hoverValue);\n      }\n    }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-panels\")\n    }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-footer\")\n    }, extraNode, rangesNode)));\n    if (panelRender) {\n      mergedNodes = panelRender(mergedNodes);\n    }\n    return /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-panel-container\"),\n      style: {\n        marginLeft: panelLeft\n      },\n      ref: panelDivRef,\n      onMouseDown: function onMouseDown(e) {\n        e.preventDefault();\n      }\n    }, mergedNodes);\n  }\n  var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n    style: {\n      minWidth: popupMinWidth\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: arrowRef,\n    className: \"\".concat(prefixCls, \"-range-arrow\"),\n    style: arrowPositionStyle\n  }), renderPanels());\n\n  // ============================= Icons =============================\n  var suffixNode;\n  if (suffixIcon) {\n    suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-suffix\"),\n      onMouseDown: function onMouseDown(e) {\n        // Not lost focus\n        e.preventDefault();\n      }\n    }, suffixIcon);\n  }\n  var mergedClearIcon = getClearIcon(prefixCls, allowClear, clearIcon);\n  var clearNode = /*#__PURE__*/React.createElement(\"span\", {\n    onMouseDown: function onMouseDown(e) {\n      e.preventDefault();\n      e.stopPropagation();\n    },\n    onMouseUp: function onMouseUp(e) {\n      e.preventDefault();\n      e.stopPropagation();\n      var values = mergedValue;\n      if (!mergedDisabled[0]) {\n        values = updateValues(values, null, 0);\n      }\n      if (!mergedDisabled[1]) {\n        values = updateValues(values, null, 1);\n      }\n      triggerChange(values, null);\n      _triggerOpen(false, mergedActivePickerIndex, 'clear');\n    },\n    className: \"\".concat(prefixCls, \"-clear\"),\n    role: \"button\"\n  }, mergedClearIcon);\n  var mergedAllowClear = allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1]);\n  var inputSharedProps = {\n    size: getInputSize(picker, formatList[0], generateConfig)\n  };\n  var activeBarLeft = 0;\n  var activeBarWidth = 0;\n  if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n    if (mergedActivePickerIndex === 0) {\n      activeBarWidth = startInputDivRef.current.offsetWidth;\n    } else {\n      activeBarLeft = arrowLeft;\n      activeBarWidth = endInputDivRef.current.offsetWidth;\n    }\n  }\n  var activeBarPositionStyle = direction === 'rtl' ? {\n    right: activeBarLeft\n  } : {\n    left: activeBarLeft\n  };\n  // ============================ Return =============================\n  var onContextSelect = function onContextSelect(date, type) {\n    var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n    if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n      // triggerChange will also update selected values\n      triggerChange(values, mergedActivePickerIndex);\n      // clear hover value style\n      if (mergedActivePickerIndex === 0) {\n        onStartLeave();\n      } else {\n        onEndLeave();\n      }\n\n      // Switch\n      var nextActivePickerIndex = mergedActivePickerIndex === 0 ? 1 : 0;\n      if (mergedDisabled[nextActivePickerIndex]) {\n        _triggerOpen(false, false, 'confirm');\n      } else {\n        _triggerOpen(false, mergedActivePickerIndex, 'confirm');\n      }\n    } else {\n      setSelectedValue(values);\n    }\n  };\n  return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n    value: {\n      operationRef: operationRef,\n      hideHeader: picker === 'time',\n      onDateMouseEnter: onDateMouseEnter,\n      onDateMouseLeave: onDateMouseLeave,\n      hideRanges: true,\n      onSelect: onContextSelect,\n      open: mergedOpen\n    }\n  }, /*#__PURE__*/React.createElement(PickerTrigger, {\n    visible: mergedOpen,\n    popupElement: rangePanel,\n    popupStyle: popupStyle,\n    prefixCls: prefixCls,\n    dropdownClassName: dropdownClassName,\n    dropdownAlign: dropdownAlign,\n    getPopupContainer: getPopupContainer,\n    transitionName: transitionName,\n    range: true,\n    direction: direction\n  }, /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: containerRef,\n    className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n    style: style,\n    onClick: onPickerClick,\n    onMouseEnter: onMouseEnter,\n    onMouseLeave: onMouseLeave,\n    onMouseDown: onPickerMouseDown,\n    onMouseUp: onMouseUp\n  }, pickAttrs(props, {\n    aria: true,\n    data: true\n  })), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n    ref: startInputDivRef\n  }, /*#__PURE__*/React.createElement(\"input\", _extends({\n    id: id,\n    disabled: mergedDisabled[0],\n    readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n    value: startHoverValue || startText,\n    onChange: function onChange(e) {\n      triggerStartTextChange(e.target.value);\n    },\n    autoFocus: autoFocus,\n    placeholder: getValue(placeholder, 0) || '',\n    ref: startInputRef\n  }, startInputProps, inputSharedProps, {\n    autoComplete: autoComplete\n  }))), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-range-separator\"),\n    ref: separatorRef\n  }, separator), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n    ref: endInputDivRef\n  }, /*#__PURE__*/React.createElement(\"input\", _extends({\n    disabled: mergedDisabled[1],\n    readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n    value: endHoverValue || endText,\n    onChange: function onChange(e) {\n      triggerEndTextChange(e.target.value);\n    },\n    placeholder: getValue(placeholder, 1) || '',\n    ref: endInputRef\n  }, endInputProps, inputSharedProps, {\n    autoComplete: autoComplete\n  }))), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-active-bar\"),\n    style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n      width: activeBarWidth,\n      position: 'absolute'\n    })\n  }), suffixNode, mergedAllowClear && clearNode)));\n}\n\n// Wrap with class component to enable pass generic with instance method\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n  _inherits(RangePicker, _React$Component);\n  var _super = _createSuper(RangePicker);\n  function RangePicker() {\n    var _this;\n    _classCallCheck(this, RangePicker);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(args));\n    _defineProperty(_assertThisInitialized(_this), \"pickerRef\", /*#__PURE__*/React.createRef());\n    _defineProperty(_assertThisInitialized(_this), \"focus\", function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.focus();\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"blur\", function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.blur();\n      }\n    });\n    return _this;\n  }\n  _createClass(RangePicker, [{\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n        pickerRef: this.pickerRef\n      }));\n    }\n  }]);\n  return RangePicker;\n}(React.Component);\nexport default RangePicker;"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}