{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PickerTrigger from \"../PickerTrigger\";\nimport { pickTriggerProps } from \"../PickerTrigger/util\";\nimport { fillIndex, getFromDate, toArray } from \"../utils/miscUtil\";\nimport PickerContext from \"./context\";\nimport useCellRender from \"./hooks/useCellRender\";\nimport useFieldsInvalidate from \"./hooks/useFieldsInvalidate\";\nimport useFilledProps from \"./hooks/useFilledProps\";\nimport useOpen from \"./hooks/useOpen\";\nimport usePickerRef from \"./hooks/usePickerRef\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeActive from \"./hooks/useRangeActive\";\nimport useRangeDisabledDate from \"./hooks/useRangeDisabledDate\";\nimport useRangePickerValue from \"./hooks/useRangePickerValue\";\nimport useRangeValue, { useInnerValue } from \"./hooks/useRangeValue\";\nimport useShowNow from \"./hooks/useShowNow\";\nimport Popup from \"./Popup\";\nimport RangeSelector from \"./Selector/RangeSelector\";\nfunction separateConfig(config, defaultConfig) {\n var singleConfig = config !== null && config !== void 0 ? config : defaultConfig;\n if (Array.isArray(singleConfig)) {\n return singleConfig;\n }\n return [singleConfig, singleConfig];\n}\n\n/** Used for change event, it should always be not undefined */\n\nfunction getActiveRange(activeIndex) {\n return activeIndex === 1 ? 'end' : 'start';\n}\nfunction RangePicker(props, ref) {\n // ========================= Prop =========================\n var _useFilledProps = useFilledProps(props, function () {\n var disabled = props.disabled,\n allowEmpty = props.allowEmpty;\n var mergedDisabled = separateConfig(disabled, false);\n var mergedAllowEmpty = separateConfig(allowEmpty, false);\n return {\n disabled: mergedDisabled,\n allowEmpty: mergedAllowEmpty\n };\n }),\n _useFilledProps2 = _slicedToArray(_useFilledProps, 6),\n filledProps = _useFilledProps2[0],\n internalPicker = _useFilledProps2[1],\n complexPicker = _useFilledProps2[2],\n formatList = _useFilledProps2[3],\n maskFormat = _useFilledProps2[4],\n isInvalidateDate = _useFilledProps2[5];\n var prefixCls = filledProps.prefixCls,\n styles = filledProps.styles,\n classNames = filledProps.classNames,\n placement = filledProps.placement,\n defaultValue = filledProps.defaultValue,\n value = filledProps.value,\n needConfirm = filledProps.needConfirm,\n onKeyDown = filledProps.onKeyDown,\n disabled = filledProps.disabled,\n allowEmpty = filledProps.allowEmpty,\n disabledDate = filledProps.disabledDate,\n minDate = filledProps.minDate,\n maxDate = filledProps.maxDate,\n defaultOpen = filledProps.defaultOpen,\n open = filledProps.open,\n onOpenChange = filledProps.onOpenChange,\n locale = filledProps.locale,\n generateConfig = filledProps.generateConfig,\n picker = filledProps.picker,\n showNow = filledProps.showNow,\n showToday = filledProps.showToday,\n showTime = filledProps.showTime,\n mode = filledProps.mode,\n onPanelChange = filledProps.onPanelChange,\n onCalendarChange = filledProps.onCalendarChange,\n onOk = filledProps.onOk,\n defaultPickerValue = filledProps.defaultPickerValue,\n pickerValue = filledProps.pickerValue,\n onPickerValueChange = filledProps.onPickerValueChange,\n inputReadOnly = filledProps.inputReadOnly,\n suffixIcon = filledProps.suffixIcon,\n onFocus = filledProps.onFocus,\n onBlur = filledProps.onBlur,\n presets = filledProps.presets,\n ranges = filledProps.ranges,\n components = filledProps.components,\n cellRender = filledProps.cellRender,\n dateRender = filledProps.dateRender,\n monthCellRender = filledProps.monthCellRender,\n onClick = filledProps.onClick;\n\n // ========================= Refs =========================\n var selectorRef = usePickerRef(ref);\n\n // ========================= Open =========================\n var _useOpen = useOpen(open, defaultOpen, disabled, onOpenChange),\n _useOpen2 = _slicedToArray(_useOpen, 2),\n mergedOpen = _useOpen2[0],\n setMergeOpen = _useOpen2[1];\n var triggerOpen = function triggerOpen(nextOpen, config) {\n // No need to open if all disabled\n if (disabled.some(function (fieldDisabled) {\n return !fieldDisabled;\n }) || !nextOpen) {\n setMergeOpen(nextOpen, config);\n }\n };\n\n // ======================== Values ========================\n var _useInnerValue = useInnerValue(generateConfig, locale, formatList, true, false, defaultValue, value, onCalendarChange, onOk),\n _useInnerValue2 = _slicedToArray(_useInnerValue, 5),\n mergedValue = _useInnerValue2[0],\n setInnerValue = _useInnerValue2[1],\n getCalendarValue = _useInnerValue2[2],\n triggerCalendarChange = _useInnerValue2[3],\n triggerOk = _useInnerValue2[4];\n var calendarValue = getCalendarValue();\n\n // ======================== Active ========================\n var _useRangeActive = useRangeActive(disabled, allowEmpty, mergedOpen),\n _useRangeActive2 = _slicedToArray(_useRangeActive, 7),\n focused = _useRangeActive2[0],\n triggerFocus = _useRangeActive2[1],\n lastOperation = _useRangeActive2[2],\n activeIndex = _useRangeActive2[3],\n setActiveIndex = _useRangeActive2[4],\n nextActiveIndex = _useRangeActive2[5],\n activeIndexList = _useRangeActive2[6];\n var onSharedFocus = function onSharedFocus(event, index) {\n triggerFocus(true);\n onFocus === null || onFocus === void 0 || onFocus(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n var onSharedBlur = function onSharedBlur(event, index) {\n triggerFocus(false);\n onBlur === null || onBlur === void 0 || onBlur(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n\n // ======================= ShowTime =======================\n /** Used for Popup panel */\n var mergedShowTime = React.useMemo(function () {\n if (!showTime) {\n return null;\n }\n var disabledTime = showTime.disabledTime;\n var proxyDisabledTime = disabledTime ? function (date) {\n var range = getActiveRange(activeIndex);\n var fromDate = getFromDate(calendarValue, activeIndexList, activeIndex);\n return disabledTime(date, range, {\n from: fromDate\n });\n } : undefined;\n return _objectSpread(_objectSpread({}, showTime), {}, {\n disabledTime: proxyDisabledTime\n });\n }, [showTime, activeIndex, calendarValue, activeIndexList]);\n\n // ========================= Mode =========================\n var _useMergedState = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n modes = _useMergedState2[0],\n setModes = _useMergedState2[1];\n var mergedMode = modes[activeIndex] || picker;\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ====================== PanelCount ======================\n var multiplePanel = internalMode === picker && internalMode !== 'time';\n\n // ======================= Show Now =======================\n var mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, true);\n\n // ======================== Value =========================\n var _useRangeValue = useRangeValue(filledProps, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, mergedOpen, isInvalidateDate),\n _useRangeValue2 = _slicedToArray(_useRangeValue, 2),\n /** Trigger `onChange` by check `disabledDate` */\n flushSubmit = _useRangeValue2[0],\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange = _useRangeValue2[1];\n\n // ===================== DisabledDate =====================\n var mergedDisabledDate = useRangeDisabledDate(calendarValue, disabled, activeIndexList, generateConfig, locale, disabledDate);\n\n // ======================= Validate =======================\n var _useFieldsInvalidate = useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty),\n _useFieldsInvalidate2 = _slicedToArray(_useFieldsInvalidate, 2),\n submitInvalidates = _useFieldsInvalidate2[0],\n onSelectorInvalid = _useFieldsInvalidate2[1];\n\n // ===================== Picker Value =====================\n var _useRangePickerValue = useRangePickerValue(generateConfig, locale, calendarValue, modes, mergedOpen, activeIndex, internalPicker, multiplePanel, defaultPickerValue, pickerValue, mergedShowTime === null || mergedShowTime === void 0 ? void 0 : mergedShowTime.defaultOpenValue, onPickerValueChange, minDate, maxDate),\n _useRangePickerValue2 = _slicedToArray(_useRangePickerValue, 2),\n currentPickerValue = _useRangePickerValue2[0],\n setCurrentPickerValue = _useRangePickerValue2[1];\n\n // >>> Mode need wait for `pickerValue`\n var triggerModeChange = useEvent(function (nextPickerValue, nextMode, triggerEvent) {\n var clone = fillIndex(modes, activeIndex, nextMode);\n if (clone[0] !== modes[0] || clone[1] !== modes[1]) {\n setModes(clone);\n }\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n var clonePickerValue = _toConsumableArray(calendarValue);\n if (nextPickerValue) {\n clonePickerValue[activeIndex] = nextPickerValue;\n }\n onPanelChange(clonePickerValue, clone);\n }\n });\n\n // ======================== Change ========================\n var fillCalendarValue = function fillCalendarValue(date, index) {\n return (\n // Trigger change only when date changed\n fillIndex(calendarValue, index, date)\n );\n };\n\n // ======================== Submit ========================\n /**\n * Trigger by confirm operation.\n * This function has already handle the `needConfirm` check logic.\n * - Selector: enter key\n * - Panel: OK button\n */\n var triggerPartConfirm = function triggerPartConfirm(date, skipFocus) {\n var nextValue = calendarValue;\n if (date) {\n nextValue = fillCalendarValue(date, activeIndex);\n }\n\n // Get next focus index\n var nextIndex = nextActiveIndex(nextValue);\n\n // Change calendar value and tell flush it\n triggerCalendarChange(nextValue);\n flushSubmit(activeIndex, nextIndex === null);\n if (nextIndex === null) {\n triggerOpen(false, {\n force: true\n });\n } else if (!skipFocus) {\n selectorRef.current.focus({\n index: nextIndex\n });\n }\n };\n\n // ======================== Click =========================\n var onSelectorClick = function onSelectorClick(event) {\n var _activeElement;\n var rootNode = event.target.getRootNode();\n if (!selectorRef.current.nativeElement.contains((_activeElement = rootNode.activeElement) !== null && _activeElement !== void 0 ? _activeElement : document.activeElement)) {\n // Click to focus the enabled input\n var enabledIndex = disabled.findIndex(function (d) {\n return !d;\n });\n if (enabledIndex >= 0) {\n selectorRef.current.focus({\n index: enabledIndex\n });\n }\n }\n triggerOpen(true);\n onClick === null || onClick === void 0 || onClick(event);\n };\n var onSelectorClear = function onSelectorClear() {\n triggerSubmitChange(null);\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Hover =========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hoverSource = _React$useState2[0],\n setHoverSource = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalHoverValues = _React$useState4[0],\n setInternalHoverValues = _React$useState4[1];\n var hoverValues = React.useMemo(function () {\n return internalHoverValues || calendarValue;\n }, [calendarValue, internalHoverValues]);\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(function () {\n if (!mergedOpen) {\n setInternalHoverValues(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // Save the offset with active bar position\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeOffset = _React$useState6[0],\n setActiveOffset = _React$useState6[1];\n\n // ======================= Presets ========================\n var presetList = usePresets(presets, ranges);\n var onPresetHover = function onPresetHover(nextValues) {\n setInternalHoverValues(nextValues);\n setHoverSource('preset');\n };\n var onPresetSubmit = function onPresetSubmit(nextValues) {\n var passed = triggerSubmitChange(nextValues);\n if (passed) {\n triggerOpen(false, {\n force: true\n });\n }\n };\n var onNow = function onNow(now) {\n triggerPartConfirm(now);\n };\n\n // ======================== Panel =========================\n var onPanelHover = function onPanelHover(date) {\n setInternalHoverValues(date ? fillCalendarValue(date, activeIndex) : null);\n setHoverSource('cell');\n };\n\n // >>> Focus\n var onPanelFocus = function onPanelFocus(event) {\n triggerOpen(true);\n onSharedFocus(event);\n };\n\n // >>> MouseDown\n var onPanelMouseDown = function onPanelMouseDown() {\n lastOperation('panel');\n };\n\n // >>> Calendar\n var onPanelSelect = function onPanelSelect(date) {\n var clone = fillIndex(calendarValue, activeIndex, date);\n\n // Only trigger calendar event but not update internal `calendarValue` state\n triggerCalendarChange(clone);\n\n // >>> Trigger next active if !needConfirm\n // Fully logic check `useRangeValue` hook\n if (!needConfirm && !complexPicker && internalPicker === internalMode) {\n triggerPartConfirm(date);\n }\n };\n\n // >>> Close\n var onPopupClose = function onPopupClose() {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender, getActiveRange(activeIndex));\n\n // >>> Value\n var panelValue = calendarValue[activeIndex] || null;\n\n // >>> invalid\n var isPopupInvalidateDate = useEvent(function (date) {\n return isInvalidateDate(date, {\n activeIndex: activeIndex\n });\n });\n var panelProps = React.useMemo(function () {\n var domProps = pickAttrs(filledProps, false);\n var restProps = omit(filledProps, [].concat(_toConsumableArray(Object.keys(domProps)), ['onChange', 'onCalendarChange', 'style', 'className', 'onPanelChange', 'disabledTime']));\n return restProps;\n }, [filledProps]);\n\n // >>> Render\n var panel = /*#__PURE__*/React.createElement(Popup, _extends({}, panelProps, {\n showNow: mergedShowNow,\n showTime: mergedShowTime\n // Range\n ,\n\n range: true,\n multiplePanel: multiplePanel,\n activeOffset: activeOffset,\n placement: placement\n // Disabled\n ,\n\n disabledDate: mergedDisabledDate\n // Focus\n ,\n\n onFocus: onPanelFocus,\n onBlur: onSharedBlur,\n onPanelMouseDown: onPanelMouseDown\n // Mode\n ,\n\n picker: picker,\n mode: mergedMode,\n internalMode: internalMode,\n onPanelChange: triggerModeChange\n // Value\n ,\n\n format: maskFormat,\n value: panelValue,\n isInvalid: isPopupInvalidateDate,\n onChange: null,\n onSelect: onPanelSelect\n // PickerValue\n ,\n\n pickerValue: currentPickerValue,\n defaultOpenValue: toArray(showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue)[activeIndex],\n onPickerValueChange: setCurrentPickerValue\n // Hover\n ,\n\n hoverValue: hoverValues,\n onHover: onPanelHover\n // Submit\n ,\n\n needConfirm: needConfirm,\n onSubmit: triggerPartConfirm,\n onOk: triggerOk\n // Preset\n ,\n\n presets: presetList,\n onPresetHover: onPresetHover,\n onPresetSubmit: onPresetSubmit\n // Now\n ,\n\n onNow: onNow\n // Render\n ,\n\n cellRender: onInternalCellRender\n }));\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n var onSelectorChange = function onSelectorChange(date, index) {\n var clone = fillCalendarValue(date, index);\n triggerCalendarChange(clone);\n };\n var onSelectorInputChange = function onSelectorInputChange() {\n lastOperation('input');\n };\n\n // ======================= Selector =======================\n var onSelectorFocus = function onSelectorFocus(event, index) {\n lastOperation('input');\n triggerOpen(true, {\n inherit: true\n });\n\n // When click input to switch the field, it will not trigger close.\n // Which means it will lose the part confirm and we need fill back.\n // ref: https://github.com/ant-design/ant-design/issues/49512\n if (activeIndex !== index && mergedOpen && !needConfirm && complexPicker) {\n triggerPartConfirm(null, true);\n }\n setActiveIndex(index);\n onSharedFocus(event, index);\n };\n var onSelectorBlur = function onSelectorBlur(event, index) {\n triggerOpen(false);\n if (!needConfirm && lastOperation() === 'input') {\n var nextIndex = nextActiveIndex(calendarValue);\n flushSubmit(activeIndex, nextIndex === null);\n }\n onSharedBlur(event, index);\n };\n var onSelectorKeyDown = function onSelectorKeyDown(event, preventDefault) {\n if (event.key === 'Tab') {\n triggerPartConfirm(null, true);\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event, preventDefault);\n };\n\n // ======================= Context ========================\n var context = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n locale: locale,\n generateConfig: generateConfig,\n button: components.button,\n input: components.input\n };\n }, [prefixCls, locale, generateConfig, components.button, components.input]);\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(function () {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // >>> For complex picker, we need check if need to focus next one\n useLayoutEffect(function () {\n var lastOp = lastOperation();\n\n // Trade as confirm on field leave\n if (!mergedOpen && lastOp === 'input') {\n triggerOpen(false);\n triggerPartConfirm(null, true);\n }\n\n // Submit with complex picker\n if (!mergedOpen && complexPicker && !needConfirm && lastOp === 'panel') {\n triggerOpen(true);\n triggerPartConfirm();\n }\n }, [mergedOpen]);\n\n // ====================== DevWarning ======================\n if (process.env.NODE_ENV !== 'production') {\n var isIndexEmpty = function isIndexEmpty(index) {\n return (\n // Value is empty\n !(value !== null && value !== void 0 && value[index]) &&\n // DefaultValue is empty\n !(defaultValue !== null && defaultValue !== void 0 && defaultValue[index])\n );\n };\n if (disabled.some(function (fieldDisabled, index) {\n return fieldDisabled && isIndexEmpty(index) && !allowEmpty[index];\n })) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(PickerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(PickerTrigger, _extends({}, pickTriggerProps(filledProps), {\n popupElement: panel,\n popupStyle: styles.popup,\n popupClassName: classNames.popup\n // Visible\n ,\n\n visible: mergedOpen,\n onClose: onPopupClose\n // Range\n ,\n\n range: true\n }), /*#__PURE__*/React.createElement(RangeSelector\n // Shared\n , _extends({}, filledProps, {\n // Ref\n ref: selectorRef\n // Icon\n ,\n\n suffixIcon: suffixIcon\n // Active\n ,\n\n activeIndex: focused || mergedOpen ? activeIndex : null,\n activeHelp: !!internalHoverValues,\n allHelp: !!internalHoverValues && hoverSource === 'preset',\n focused: focused,\n onFocus: onSelectorFocus,\n onBlur: onSelectorBlur,\n onKeyDown: onSelectorKeyDown,\n onSubmit: triggerPartConfirm\n // Change\n ,\n\n value: hoverValues,\n maskFormat: maskFormat,\n onChange: onSelectorChange,\n onInputChange: onSelectorInputChange\n // Format\n ,\n\n format: formatList,\n inputReadOnly: inputReadOnly\n // Disabled\n ,\n\n disabled: disabled\n // Open\n ,\n\n open: mergedOpen,\n onOpenChange: triggerOpen\n // Click\n ,\n\n onClick: onSelectorClick,\n onClear: onSelectorClear\n // Invalid\n ,\n\n invalid: submitInvalidates,\n onInvalid: onSelectorInvalid\n // Offset\n ,\n\n onActiveOffset: setActiveOffset\n }))));\n}\nvar RefRangePicker = /*#__PURE__*/React.forwardRef(RangePicker);\nif (process.env.NODE_ENV !== 'production') {\n RefRangePicker.displayName = 'RefRangePicker';\n}\nexport default RefRangePicker;","map":{"version":3,"names":["_extends","_toConsumableArray","_objectSpread","_slicedToArray","useEvent","useMergedState","useLayoutEffect","omit","pickAttrs","warning","React","PickerTrigger","pickTriggerProps","fillIndex","getFromDate","toArray","PickerContext","useCellRender","useFieldsInvalidate","useFilledProps","useOpen","usePickerRef","usePresets","useRangeActive","useRangeDisabledDate","useRangePickerValue","useRangeValue","useInnerValue","useShowNow","Popup","RangeSelector","separateConfig","config","defaultConfig","singleConfig","Array","isArray","getActiveRange","activeIndex","RangePicker","props","ref","_useFilledProps","disabled","allowEmpty","mergedDisabled","mergedAllowEmpty","_useFilledProps2","filledProps","internalPicker","complexPicker","formatList","maskFormat","isInvalidateDate","prefixCls","styles","classNames","placement","defaultValue","value","needConfirm","onKeyDown","disabledDate","minDate","maxDate","defaultOpen","open","onOpenChange","locale","generateConfig","picker","showNow","showToday","showTime","mode","onPanelChange","onCalendarChange","onOk","defaultPickerValue","pickerValue","onPickerValueChange","inputReadOnly","suffixIcon","onFocus","onBlur","presets","ranges","components","cellRender","dateRender","monthCellRender","onClick","selectorRef","_useOpen","_useOpen2","mergedOpen","setMergeOpen","triggerOpen","nextOpen","some","fieldDisabled","_useInnerValue","_useInnerValue2","mergedValue","setInnerValue","getCalendarValue","triggerCalendarChange","triggerOk","calendarValue","_useRangeActive","_useRangeActive2","focused","triggerFocus","lastOperation","setActiveIndex","nextActiveIndex","activeIndexList","onSharedFocus","event","index","range","onSharedBlur","mergedShowTime","useMemo","disabledTime","proxyDisabledTime","date","fromDate","from","undefined","_useMergedState","_useMergedState2","modes","setModes","mergedMode","internalMode","multiplePanel","mergedShowNow","_useRangeValue","_useRangeValue2","flushSubmit","triggerSubmitChange","mergedDisabledDate","_useFieldsInvalidate","_useFieldsInvalidate2","submitInvalidates","onSelectorInvalid","_useRangePickerValue","defaultOpenValue","_useRangePickerValue2","currentPickerValue","setCurrentPickerValue","triggerModeChange","nextPickerValue","nextMode","triggerEvent","clone","clonePickerValue","fillCalendarValue","triggerPartConfirm","skipFocus","nextValue","nextIndex","force","current","focus","onSelectorClick","_activeElement","rootNode","target","getRootNode","nativeElement","contains","activeElement","document","enabledIndex","findIndex","d","onSelectorClear","_React$useState","useState","_React$useState2","hoverSource","setHoverSource","_React$useState3","_React$useState4","internalHoverValues","setInternalHoverValues","hoverValues","useEffect","_React$useState5","_React$useState6","activeOffset","setActiveOffset","presetList","onPresetHover","nextValues","onPresetSubmit","passed","onNow","now","onPanelHover","onPanelFocus","onPanelMouseDown","onPanelSelect","onPopupClose","onInternalCellRender","panelValue","isPopupInvalidateDate","panelProps","domProps","restProps","concat","Object","keys","panel","createElement","format","isInvalid","onChange","onSelect","hoverValue","onHover","onSubmit","onSelectorChange","onSelectorInputChange","onSelectorFocus","inherit","onSelectorBlur","onSelectorKeyDown","preventDefault","key","context","button","input","lastOp","process","env","NODE_ENV","isIndexEmpty","Provider","popupElement","popupStyle","popup","popupClassName","visible","onClose","activeHelp","allHelp","onInputChange","onClear","invalid","onInvalid","onActiveOffset","RefRangePicker","forwardRef","displayName"],"sources":["C:/Users/Аришина)/source/repos/PromoCursed/node_modules/rc-picker/es/PickerInput/RangePicker.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PickerTrigger from \"../PickerTrigger\";\nimport { pickTriggerProps } from \"../PickerTrigger/util\";\nimport { fillIndex, getFromDate, toArray } from \"../utils/miscUtil\";\nimport PickerContext from \"./context\";\nimport useCellRender from \"./hooks/useCellRender\";\nimport useFieldsInvalidate from \"./hooks/useFieldsInvalidate\";\nimport useFilledProps from \"./hooks/useFilledProps\";\nimport useOpen from \"./hooks/useOpen\";\nimport usePickerRef from \"./hooks/usePickerRef\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeActive from \"./hooks/useRangeActive\";\nimport useRangeDisabledDate from \"./hooks/useRangeDisabledDate\";\nimport useRangePickerValue from \"./hooks/useRangePickerValue\";\nimport useRangeValue, { useInnerValue } from \"./hooks/useRangeValue\";\nimport useShowNow from \"./hooks/useShowNow\";\nimport Popup from \"./Popup\";\nimport RangeSelector from \"./Selector/RangeSelector\";\nfunction separateConfig(config, defaultConfig) {\n var singleConfig = config !== null && config !== void 0 ? config : defaultConfig;\n if (Array.isArray(singleConfig)) {\n return singleConfig;\n }\n return [singleConfig, singleConfig];\n}\n\n/** Used for change event, it should always be not undefined */\n\nfunction getActiveRange(activeIndex) {\n return activeIndex === 1 ? 'end' : 'start';\n}\nfunction RangePicker(props, ref) {\n // ========================= Prop =========================\n var _useFilledProps = useFilledProps(props, function () {\n var disabled = props.disabled,\n allowEmpty = props.allowEmpty;\n var mergedDisabled = separateConfig(disabled, false);\n var mergedAllowEmpty = separateConfig(allowEmpty, false);\n return {\n disabled: mergedDisabled,\n allowEmpty: mergedAllowEmpty\n };\n }),\n _useFilledProps2 = _slicedToArray(_useFilledProps, 6),\n filledProps = _useFilledProps2[0],\n internalPicker = _useFilledProps2[1],\n complexPicker = _useFilledProps2[2],\n formatList = _useFilledProps2[3],\n maskFormat = _useFilledProps2[4],\n isInvalidateDate = _useFilledProps2[5];\n var prefixCls = filledProps.prefixCls,\n styles = filledProps.styles,\n classNames = filledProps.classNames,\n placement = filledProps.placement,\n defaultValue = filledProps.defaultValue,\n value = filledProps.value,\n needConfirm = filledProps.needConfirm,\n onKeyDown = filledProps.onKeyDown,\n disabled = filledProps.disabled,\n allowEmpty = filledProps.allowEmpty,\n disabledDate = filledProps.disabledDate,\n minDate = filledProps.minDate,\n maxDate = filledProps.maxDate,\n defaultOpen = filledProps.defaultOpen,\n open = filledProps.open,\n onOpenChange = filledProps.onOpenChange,\n locale = filledProps.locale,\n generateConfig = filledProps.generateConfig,\n picker = filledProps.picker,\n showNow = filledProps.showNow,\n showToday = filledProps.showToday,\n showTime = filledProps.showTime,\n mode = filledProps.mode,\n onPanelChange = filledProps.onPanelChange,\n onCalendarChange = filledProps.onCalendarChange,\n onOk = filledProps.onOk,\n defaultPickerValue = filledProps.defaultPickerValue,\n pickerValue = filledProps.pickerValue,\n onPickerValueChange = filledProps.onPickerValueChange,\n inputReadOnly = filledProps.inputReadOnly,\n suffixIcon = filledProps.suffixIcon,\n onFocus = filledProps.onFocus,\n onBlur = filledProps.onBlur,\n presets = filledProps.presets,\n ranges = filledProps.ranges,\n components = filledProps.components,\n cellRender = filledProps.cellRender,\n dateRender = filledProps.dateRender,\n monthCellRender = filledProps.monthCellRender,\n onClick = filledProps.onClick;\n\n // ========================= Refs =========================\n var selectorRef = usePickerRef(ref);\n\n // ========================= Open =========================\n var _useOpen = useOpen(open, defaultOpen, disabled, onOpenChange),\n _useOpen2 = _slicedToArray(_useOpen, 2),\n mergedOpen = _useOpen2[0],\n setMergeOpen = _useOpen2[1];\n var triggerOpen = function triggerOpen(nextOpen, config) {\n // No need to open if all disabled\n if (disabled.some(function (fieldDisabled) {\n return !fieldDisabled;\n }) || !nextOpen) {\n setMergeOpen(nextOpen, config);\n }\n };\n\n // ======================== Values ========================\n var _useInnerValue = useInnerValue(generateConfig, locale, formatList, true, false, defaultValue, value, onCalendarChange, onOk),\n _useInnerValue2 = _slicedToArray(_useInnerValue, 5),\n mergedValue = _useInnerValue2[0],\n setInnerValue = _useInnerValue2[1],\n getCalendarValue = _useInnerValue2[2],\n triggerCalendarChange = _useInnerValue2[3],\n triggerOk = _useInnerValue2[4];\n var calendarValue = getCalendarValue();\n\n // ======================== Active ========================\n var _useRangeActive = useRangeActive(disabled, allowEmpty, mergedOpen),\n _useRangeActive2 = _slicedToArray(_useRangeActive, 7),\n focused = _useRangeActive2[0],\n triggerFocus = _useRangeActive2[1],\n lastOperation = _useRangeActive2[2],\n activeIndex = _useRangeActive2[3],\n setActiveIndex = _useRangeActive2[4],\n nextActiveIndex = _useRangeActive2[5],\n activeIndexList = _useRangeActive2[6];\n var onSharedFocus = function onSharedFocus(event, index) {\n triggerFocus(true);\n onFocus === null || onFocus === void 0 || onFocus(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n var onSharedBlur = function onSharedBlur(event, index) {\n triggerFocus(false);\n onBlur === null || onBlur === void 0 || onBlur(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n\n // ======================= ShowTime =======================\n /** Used for Popup panel */\n var mergedShowTime = React.useMemo(function () {\n if (!showTime) {\n return null;\n }\n var disabledTime = showTime.disabledTime;\n var proxyDisabledTime = disabledTime ? function (date) {\n var range = getActiveRange(activeIndex);\n var fromDate = getFromDate(calendarValue, activeIndexList, activeIndex);\n return disabledTime(date, range, {\n from: fromDate\n });\n } : undefined;\n return _objectSpread(_objectSpread({}, showTime), {}, {\n disabledTime: proxyDisabledTime\n });\n }, [showTime, activeIndex, calendarValue, activeIndexList]);\n\n // ========================= Mode =========================\n var _useMergedState = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n modes = _useMergedState2[0],\n setModes = _useMergedState2[1];\n var mergedMode = modes[activeIndex] || picker;\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ====================== PanelCount ======================\n var multiplePanel = internalMode === picker && internalMode !== 'time';\n\n // ======================= Show Now =======================\n var mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, true);\n\n // ======================== Value =========================\n var _useRangeValue = useRangeValue(filledProps, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, mergedOpen, isInvalidateDate),\n _useRangeValue2 = _slicedToArray(_useRangeValue, 2),\n /** Trigger `onChange` by check `disabledDate` */\n flushSubmit = _useRangeValue2[0],\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange = _useRangeValue2[1];\n\n // ===================== DisabledDate =====================\n var mergedDisabledDate = useRangeDisabledDate(calendarValue, disabled, activeIndexList, generateConfig, locale, disabledDate);\n\n // ======================= Validate =======================\n var _useFieldsInvalidate = useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty),\n _useFieldsInvalidate2 = _slicedToArray(_useFieldsInvalidate, 2),\n submitInvalidates = _useFieldsInvalidate2[0],\n onSelectorInvalid = _useFieldsInvalidate2[1];\n\n // ===================== Picker Value =====================\n var _useRangePickerValue = useRangePickerValue(generateConfig, locale, calendarValue, modes, mergedOpen, activeIndex, internalPicker, multiplePanel, defaultPickerValue, pickerValue, mergedShowTime === null || mergedShowTime === void 0 ? void 0 : mergedShowTime.defaultOpenValue, onPickerValueChange, minDate, maxDate),\n _useRangePickerValue2 = _slicedToArray(_useRangePickerValue, 2),\n currentPickerValue = _useRangePickerValue2[0],\n setCurrentPickerValue = _useRangePickerValue2[1];\n\n // >>> Mode need wait for `pickerValue`\n var triggerModeChange = useEvent(function (nextPickerValue, nextMode, triggerEvent) {\n var clone = fillIndex(modes, activeIndex, nextMode);\n if (clone[0] !== modes[0] || clone[1] !== modes[1]) {\n setModes(clone);\n }\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n var clonePickerValue = _toConsumableArray(calendarValue);\n if (nextPickerValue) {\n clonePickerValue[activeIndex] = nextPickerValue;\n }\n onPanelChange(clonePickerValue, clone);\n }\n });\n\n // ======================== Change ========================\n var fillCalendarValue = function fillCalendarValue(date, index) {\n return (\n // Trigger change only when date changed\n fillIndex(calendarValue, index, date)\n );\n };\n\n // ======================== Submit ========================\n /**\n * Trigger by confirm operation.\n * This function has already handle the `needConfirm` check logic.\n * - Selector: enter key\n * - Panel: OK button\n */\n var triggerPartConfirm = function triggerPartConfirm(date, skipFocus) {\n var nextValue = calendarValue;\n if (date) {\n nextValue = fillCalendarValue(date, activeIndex);\n }\n\n // Get next focus index\n var nextIndex = nextActiveIndex(nextValue);\n\n // Change calendar value and tell flush it\n triggerCalendarChange(nextValue);\n flushSubmit(activeIndex, nextIndex === null);\n if (nextIndex === null) {\n triggerOpen(false, {\n force: true\n });\n } else if (!skipFocus) {\n selectorRef.current.focus({\n index: nextIndex\n });\n }\n };\n\n // ======================== Click =========================\n var onSelectorClick = function onSelectorClick(event) {\n var _activeElement;\n var rootNode = event.target.getRootNode();\n if (!selectorRef.current.nativeElement.contains((_activeElement = rootNode.activeElement) !== null && _activeElement !== void 0 ? _activeElement : document.activeElement)) {\n // Click to focus the enabled input\n var enabledIndex = disabled.findIndex(function (d) {\n return !d;\n });\n if (enabledIndex >= 0) {\n selectorRef.current.focus({\n index: enabledIndex\n });\n }\n }\n triggerOpen(true);\n onClick === null || onClick === void 0 || onClick(event);\n };\n var onSelectorClear = function onSelectorClear() {\n triggerSubmitChange(null);\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Hover =========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hoverSource = _React$useState2[0],\n setHoverSource = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalHoverValues = _React$useState4[0],\n setInternalHoverValues = _React$useState4[1];\n var hoverValues = React.useMemo(function () {\n return internalHoverValues || calendarValue;\n }, [calendarValue, internalHoverValues]);\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(function () {\n if (!mergedOpen) {\n setInternalHoverValues(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // Save the offset with active bar position\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeOffset = _React$useState6[0],\n setActiveOffset = _React$useState6[1];\n\n // ======================= Presets ========================\n var presetList = usePresets(presets, ranges);\n var onPresetHover = function onPresetHover(nextValues) {\n setInternalHoverValues(nextValues);\n setHoverSource('preset');\n };\n var onPresetSubmit = function onPresetSubmit(nextValues) {\n var passed = triggerSubmitChange(nextValues);\n if (passed) {\n triggerOpen(false, {\n force: true\n });\n }\n };\n var onNow = function onNow(now) {\n triggerPartConfirm(now);\n };\n\n // ======================== Panel =========================\n var onPanelHover = function onPanelHover(date) {\n setInternalHoverValues(date ? fillCalendarValue(date, activeIndex) : null);\n setHoverSource('cell');\n };\n\n // >>> Focus\n var onPanelFocus = function onPanelFocus(event) {\n triggerOpen(true);\n onSharedFocus(event);\n };\n\n // >>> MouseDown\n var onPanelMouseDown = function onPanelMouseDown() {\n lastOperation('panel');\n };\n\n // >>> Calendar\n var onPanelSelect = function onPanelSelect(date) {\n var clone = fillIndex(calendarValue, activeIndex, date);\n\n // Only trigger calendar event but not update internal `calendarValue` state\n triggerCalendarChange(clone);\n\n // >>> Trigger next active if !needConfirm\n // Fully logic check `useRangeValue` hook\n if (!needConfirm && !complexPicker && internalPicker === internalMode) {\n triggerPartConfirm(date);\n }\n };\n\n // >>> Close\n var onPopupClose = function onPopupClose() {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender, getActiveRange(activeIndex));\n\n // >>> Value\n var panelValue = calendarValue[activeIndex] || null;\n\n // >>> invalid\n var isPopupInvalidateDate = useEvent(function (date) {\n return isInvalidateDate(date, {\n activeIndex: activeIndex\n });\n });\n var panelProps = React.useMemo(function () {\n var domProps = pickAttrs(filledProps, false);\n var restProps = omit(filledProps, [].concat(_toConsumableArray(Object.keys(domProps)), ['onChange', 'onCalendarChange', 'style', 'className', 'onPanelChange', 'disabledTime']));\n return restProps;\n }, [filledProps]);\n\n // >>> Render\n var panel = /*#__PURE__*/React.createElement(Popup, _extends({}, panelProps, {\n showNow: mergedShowNow,\n showTime: mergedShowTime\n // Range\n ,\n range: true,\n multiplePanel: multiplePanel,\n activeOffset: activeOffset,\n placement: placement\n // Disabled\n ,\n disabledDate: mergedDisabledDate\n // Focus\n ,\n onFocus: onPanelFocus,\n onBlur: onSharedBlur,\n onPanelMouseDown: onPanelMouseDown\n // Mode\n ,\n picker: picker,\n mode: mergedMode,\n internalMode: internalMode,\n onPanelChange: triggerModeChange\n // Value\n ,\n format: maskFormat,\n value: panelValue,\n isInvalid: isPopupInvalidateDate,\n onChange: null,\n onSelect: onPanelSelect\n // PickerValue\n ,\n pickerValue: currentPickerValue,\n defaultOpenValue: toArray(showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue)[activeIndex],\n onPickerValueChange: setCurrentPickerValue\n // Hover\n ,\n hoverValue: hoverValues,\n onHover: onPanelHover\n // Submit\n ,\n needConfirm: needConfirm,\n onSubmit: triggerPartConfirm,\n onOk: triggerOk\n // Preset\n ,\n presets: presetList,\n onPresetHover: onPresetHover,\n onPresetSubmit: onPresetSubmit\n // Now\n ,\n onNow: onNow\n // Render\n ,\n cellRender: onInternalCellRender\n }));\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n var onSelectorChange = function onSelectorChange(date, index) {\n var clone = fillCalendarValue(date, index);\n triggerCalendarChange(clone);\n };\n var onSelectorInputChange = function onSelectorInputChange() {\n lastOperation('input');\n };\n\n // ======================= Selector =======================\n var onSelectorFocus = function onSelectorFocus(event, index) {\n lastOperation('input');\n triggerOpen(true, {\n inherit: true\n });\n\n // When click input to switch the field, it will not trigger close.\n // Which means it will lose the part confirm and we need fill back.\n // ref: https://github.com/ant-design/ant-design/issues/49512\n if (activeIndex !== index && mergedOpen && !needConfirm && complexPicker) {\n triggerPartConfirm(null, true);\n }\n setActiveIndex(index);\n onSharedFocus(event, index);\n };\n var onSelectorBlur = function onSelectorBlur(event, index) {\n triggerOpen(false);\n if (!needConfirm && lastOperation() === 'input') {\n var nextIndex = nextActiveIndex(calendarValue);\n flushSubmit(activeIndex, nextIndex === null);\n }\n onSharedBlur(event, index);\n };\n var onSelectorKeyDown = function onSelectorKeyDown(event, preventDefault) {\n if (event.key === 'Tab') {\n triggerPartConfirm(null, true);\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event, preventDefault);\n };\n\n // ======================= Context ========================\n var context = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n locale: locale,\n generateConfig: generateConfig,\n button: components.button,\n input: components.input\n };\n }, [prefixCls, locale, generateConfig, components.button, components.input]);\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(function () {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // >>> For complex picker, we need check if need to focus next one\n useLayoutEffect(function () {\n var lastOp = lastOperation();\n\n // Trade as confirm on field leave\n if (!mergedOpen && lastOp === 'input') {\n triggerOpen(false);\n triggerPartConfirm(null, true);\n }\n\n // Submit with complex picker\n if (!mergedOpen && complexPicker && !needConfirm && lastOp === 'panel') {\n triggerOpen(true);\n triggerPartConfirm();\n }\n }, [mergedOpen]);\n\n // ====================== DevWarning ======================\n if (process.env.NODE_ENV !== 'production') {\n var isIndexEmpty = function isIndexEmpty(index) {\n return (\n // Value is empty\n !(value !== null && value !== void 0 && value[index]) &&\n // DefaultValue is empty\n !(defaultValue !== null && defaultValue !== void 0 && defaultValue[index])\n );\n };\n if (disabled.some(function (fieldDisabled, index) {\n return fieldDisabled && isIndexEmpty(index) && !allowEmpty[index];\n })) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(PickerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(PickerTrigger, _extends({}, pickTriggerProps(filledProps), {\n popupElement: panel,\n popupStyle: styles.popup,\n popupClassName: classNames.popup\n // Visible\n ,\n visible: mergedOpen,\n onClose: onPopupClose\n // Range\n ,\n range: true\n }), /*#__PURE__*/React.createElement(RangeSelector\n // Shared\n , _extends({}, filledProps, {\n // Ref\n ref: selectorRef\n // Icon\n ,\n suffixIcon: suffixIcon\n // Active\n ,\n activeIndex: focused || mergedOpen ? activeIndex : null,\n activeHelp: !!internalHoverValues,\n allHelp: !!internalHoverValues && hoverSource === 'preset',\n focused: focused,\n onFocus: onSelectorFocus,\n onBlur: onSelectorBlur,\n onKeyDown: onSelectorKeyDown,\n onSubmit: triggerPartConfirm\n // Change\n ,\n value: hoverValues,\n maskFormat: maskFormat,\n onChange: onSelectorChange,\n onInputChange: onSelectorInputChange\n // Format\n ,\n format: formatList,\n inputReadOnly: inputReadOnly\n // Disabled\n ,\n disabled: disabled\n // Open\n ,\n open: mergedOpen,\n onOpenChange: triggerOpen\n // Click\n ,\n onClick: onSelectorClick,\n onClear: onSelectorClear\n // Invalid\n ,\n invalid: submitInvalidates,\n onInvalid: onSelectorInvalid\n // Offset\n ,\n onActiveOffset: setActiveOffset\n }))));\n}\nvar RefRangePicker = /*#__PURE__*/React.forwardRef(RangePicker);\nif (process.env.NODE_ENV !== 'production') {\n RefRangePicker.displayName = 'RefRangePicker';\n}\nexport default RefRangePicker;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}