4aca794ec0c4e175b207bc56a4dcb0cc.json 112 KB
{"ast":null,"code":"import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport PickerTrigger from './PickerTrigger';\nimport PickerPanel from './PickerPanel';\nimport usePickerInput from './hooks/usePickerInput';\nimport getDataOrAriaProps, { toArray, getValue, updateValues } from './utils/miscUtil';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport PanelContext from './PanelContext';\nimport { isEqual, getClosingViewDate, isSameDate, isSameWeek, isSameQuarter, formatValue, parseValue } from './utils/dateUtil';\nimport useValueTexts from './hooks/useValueTexts';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport RangeContext from './RangeContext';\nimport useRangeDisabled from './hooks/useRangeDisabled';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport useRangeViewDates from './hooks/useRangeViewDates';\nimport useHoverValue from './hooks/useHoverValue';\n\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\n  return values;\n}\n\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n  if (value) {\n    return true;\n  }\n\n  if (allowEmpty && allowEmpty[index]) {\n    return true;\n  }\n\n  if (disabled[(index + 1) % 2]) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction InnerRangePicker(props) {\n  var _classNames2, _classNames3, _classNames4;\n\n  var _props$prefixCls = props.prefixCls,\n      prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n      id = props.id,\n      style = props.style,\n      className = props.className,\n      popupStyle = props.popupStyle,\n      dropdownClassName = props.dropdownClassName,\n      transitionName = props.transitionName,\n      dropdownAlign = props.dropdownAlign,\n      getPopupContainer = props.getPopupContainer,\n      generateConfig = props.generateConfig,\n      locale = props.locale,\n      placeholder = props.placeholder,\n      autoFocus = props.autoFocus,\n      disabled = props.disabled,\n      format = props.format,\n      _props$picker = props.picker,\n      picker = _props$picker === void 0 ? 'date' : _props$picker,\n      showTime = props.showTime,\n      use12Hours = props.use12Hours,\n      _props$separator = props.separator,\n      separator = _props$separator === void 0 ? '~' : _props$separator,\n      value = props.value,\n      defaultValue = props.defaultValue,\n      defaultPickerValue = props.defaultPickerValue,\n      open = props.open,\n      defaultOpen = props.defaultOpen,\n      disabledDate = props.disabledDate,\n      _disabledTime = props.disabledTime,\n      dateRender = props.dateRender,\n      panelRender = props.panelRender,\n      ranges = props.ranges,\n      allowEmpty = props.allowEmpty,\n      allowClear = props.allowClear,\n      suffixIcon = props.suffixIcon,\n      clearIcon = props.clearIcon,\n      pickerRef = props.pickerRef,\n      inputReadOnly = props.inputReadOnly,\n      mode = props.mode,\n      renderExtraFooter = props.renderExtraFooter,\n      onChange = props.onChange,\n      onOpenChange = props.onOpenChange,\n      onPanelChange = props.onPanelChange,\n      onCalendarChange = props.onCalendarChange,\n      _onFocus = props.onFocus,\n      onBlur = props.onBlur,\n      _onOk = props.onOk,\n      components = props.components,\n      order = props.order,\n      direction = props.direction,\n      activePickerIndex = props.activePickerIndex,\n      _props$autoComplete = props.autoComplete,\n      autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete;\n  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time'; // We record opened status here in case repeat open with picker\n\n  var openRecordsRef = useRef({});\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); // ============================= Misc ==============================\n\n  var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours)); // Active picker\n\n  var _useMergedState = useMergedState(0, {\n    value: activePickerIndex\n  }),\n      _useMergedState2 = _slicedToArray(_useMergedState, 2),\n      mergedActivePickerIndex = _useMergedState2[0],\n      setMergedActivePickerIndex = _useMergedState2[1]; // Operation ref\n\n\n  var operationRef = useRef(null);\n  var mergedDisabled = React.useMemo(function () {\n    if (Array.isArray(disabled)) {\n      return disabled;\n    }\n\n    return [disabled || false, disabled || false];\n  }, [disabled]); // ============================= Value =============================\n\n  var _useMergedState3 = 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      _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n      mergedValue = _useMergedState4[0],\n      setInnerValue = _useMergedState4[1]; // =========================== View Date ===========================\n  // Config view panel\n\n\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]; // ========================= Select Values =========================\n\n\n  var _useMergedState5 = useMergedState(mergedValue, {\n    postState: function postState(values) {\n      var postValues = values;\n\n      if (mergedDisabled[0] && mergedDisabled[1]) {\n        return postValues;\n      } // Fill disabled unit\n\n\n      for (var i = 0; i < 2; i += 1) {\n        if (mergedDisabled[i] && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n          postValues = updateValues(postValues, generateConfig.getNow(), i);\n        }\n      }\n\n      return postValues;\n    }\n  }),\n      _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n      selectedValue = _useMergedState6[0],\n      setSelectedValue = _useMergedState6[1]; // ============================= Modes =============================\n\n\n  var _useMergedState7 = useMergedState([picker, picker], {\n    value: mode\n  }),\n      _useMergedState8 = _slicedToArray(_useMergedState7, 2),\n      mergedModes = _useMergedState8[0],\n      setInnerModes = _useMergedState8[1];\n\n  useEffect(function () {\n    setInnerModes([picker, picker]);\n  }, [picker]);\n\n  var triggerModesChange = function triggerModesChange(modes, values) {\n    setInnerModes(modes);\n\n    if (onPanelChange) {\n      onPanelChange(values, modes);\n    }\n  }; // ========================= Disable Date ==========================\n\n\n  var _useRangeDisabled = useRangeDisabled({\n    picker: picker,\n    selectedValue: selectedValue,\n    locale: locale,\n    disabled: mergedDisabled,\n    disabledDate: disabledDate,\n    generateConfig: generateConfig\n  }, openRecordsRef.current[1], openRecordsRef.current[0]),\n      _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n      disabledStartDate = _useRangeDisabled2[0],\n      disabledEndDate = _useRangeDisabled2[1]; // ============================= Open ==============================\n\n\n  var _useMergedState9 = useMergedState(false, {\n    value: open,\n    defaultValue: defaultOpen,\n    postState: function postState(postOpen) {\n      return mergedDisabled[mergedActivePickerIndex] ? false : postOpen;\n    },\n    onChange: function onChange(newOpen) {\n      if (onOpenChange) {\n        onOpenChange(newOpen);\n      }\n\n      if (!newOpen && operationRef.current && operationRef.current.onClose) {\n        operationRef.current.onClose();\n      }\n    }\n  }),\n      _useMergedState10 = _slicedToArray(_useMergedState9, 2),\n      mergedOpen = _useMergedState10[0],\n      triggerInnerOpen = _useMergedState10[1];\n\n  var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n  var endOpen = mergedOpen && mergedActivePickerIndex === 1; // ============================= Popup =============================\n  // Popup min width\n\n  var _useState = useState(0),\n      _useState2 = _slicedToArray(_useState, 2),\n      popupMinWidth = _useState2[0],\n      setPopupMinWidth = _useState2[1];\n\n  useEffect(function () {\n    if (!mergedOpen && containerRef.current) {\n      setPopupMinWidth(containerRef.current.offsetWidth);\n    }\n  }, [mergedOpen]); // ============================ Trigger ============================\n\n  var triggerRef = React.useRef();\n\n  function _triggerOpen(newOpen, index) {\n    if (newOpen) {\n      clearTimeout(triggerRef.current);\n      openRecordsRef.current[index] = true;\n      setMergedActivePickerIndex(index);\n      triggerInnerOpen(newOpen); // Open to reset view date\n\n      if (!mergedOpen) {\n        setViewDate(null, index);\n      }\n    } else if (mergedActivePickerIndex === index) {\n      triggerInnerOpen(newOpen); // Clean up async\n      // This makes ref not quick refresh in case user open another input with blur trigger\n\n      var openRecords = openRecordsRef.current;\n      triggerRef.current = setTimeout(function () {\n        if (openRecords === openRecordsRef.current) {\n          openRecordsRef.current = {};\n        }\n      });\n    }\n  }\n\n  function triggerOpenAndFocus(index) {\n    _triggerOpen(true, index); // Use setTimeout to make sure panel DOM exists\n\n\n    setTimeout(function () {\n      var inputRef = [startInputRef, endInputRef][index];\n\n      if (inputRef.current) {\n        inputRef.current.focus();\n      }\n    }, 0);\n  }\n\n  function triggerChange(newValue, sourceIndex) {\n    var values = newValue;\n    var startValue = getValue(values, 0);\n    var endValue = getValue(values, 1); // >>>>> Format start & end values\n\n    if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n      if ( // WeekPicker only compare week\n      picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) || // QuotaPicker only compare week\n      picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) || // 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        } // Clean up cache since invalidate\n\n\n        openRecordsRef.current = _defineProperty({}, sourceIndex, true);\n      } else if (picker !== 'time' || order !== false) {\n        // Reorder when in same date\n        values = reorderValues(values, generateConfig);\n      }\n    }\n\n    setSelectedValue(values);\n    var startStr = values && values[0] ? formatValue(values[0], {\n      generateConfig: generateConfig,\n      locale: locale,\n      format: formatList[0]\n    }) : '';\n    var endStr = values && values[1] ? formatValue(values[1], {\n      generateConfig: generateConfig,\n      locale: locale,\n      format: formatList[0]\n    }) : '';\n\n    if (onCalendarChange) {\n      var info = {\n        range: sourceIndex === 0 ? 'start' : 'end'\n      };\n      onCalendarChange(values, [startStr, endStr], info);\n    } // >>>>> Trigger `onChange` event\n\n\n    var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n    var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n    var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n\n    if (canTrigger) {\n      // Trigger onChange only when value is validate\n      setInnerValue(values);\n\n      if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n        onChange(values, [startStr, endStr]);\n      }\n    } // >>>>> Open picker when\n    // Always open another picker if possible\n\n\n    var nextOpenIndex = null;\n\n    if (sourceIndex === 0 && !mergedDisabled[1]) {\n      nextOpenIndex = 1;\n    } else if (sourceIndex === 1 && !mergedDisabled[0]) {\n      nextOpenIndex = 0;\n    }\n\n    if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {\n      // Delay to focus to avoid input blur trigger expired selectedValues\n      triggerOpenAndFocus(nextOpenIndex);\n    } else {\n      _triggerOpen(false, sourceIndex);\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    /* istanbul ignore next */\n\n    /* eslint-disable no-lone-blocks */\n\n\n    {\n      warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n      return false;\n    }\n  }; // ============================= Text ==============================\n\n\n  var sharedTextHooksProps = {\n    formatList: formatList,\n    generateConfig: generateConfig,\n    locale: locale\n  };\n\n  var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n      _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n      startValueTexts = _useValueTexts2[0],\n      firstStartValueText = _useValueTexts2[1];\n\n  var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n      _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n      endValueTexts = _useValueTexts4[0],\n      firstEndValueText = _useValueTexts4[1];\n\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\n    if (inputDate && !disabledFunc(inputDate)) {\n      setSelectedValue(updateValues(selectedValue, inputDate, index));\n      setViewDate(inputDate, index);\n    }\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\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\n  var _useState3 = useState(null),\n      _useState4 = _slicedToArray(_useState3, 2),\n      rangeHoverValue = _useState4[0],\n      setRangeHoverValue = _useState4[1]; // ========================== Hover Range ==========================\n\n\n  var _useState5 = useState(null),\n      _useState6 = _slicedToArray(_useState5, 2),\n      hoverRangedValue = _useState6[0],\n      setHoverRangedValue = _useState6[1];\n\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\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\n  var onDateMouseEnter = function onDateMouseEnter(date) {\n    setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n\n    if (mergedActivePickerIndex === 0) {\n      onStartEnter(date);\n    } else {\n      onEndEnter(date);\n    }\n  };\n\n  var onDateMouseLeave = function onDateMouseLeave() {\n    setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n\n    if (mergedActivePickerIndex === 0) {\n      onStartLeave();\n    } else {\n      onEndLeave();\n    }\n  }; // ============================= Input =============================\n\n\n  var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n    return {\n      blurToCancel: needConfirmButton,\n      forwardKeyDown: forwardKeyDown,\n      onBlur: onBlur,\n      isClickOutside: function isClickOutside(target) {\n        return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current], target);\n      },\n      onFocus: function onFocus(e) {\n        setMergedActivePickerIndex(index);\n\n        if (_onFocus) {\n          _onFocus(e);\n        }\n      },\n      triggerOpen: function triggerOpen(newOpen) {\n        _triggerOpen(newOpen, index);\n      },\n      onSubmit: function onSubmit() {\n        triggerChange(selectedValue, index);\n        resetText();\n      },\n      onCancel: function onCancel() {\n        _triggerOpen(false, index);\n\n        setSelectedValue(mergedValue);\n        resetText();\n      }\n    };\n  };\n\n  var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n    open: startOpen,\n    value: startText\n  })),\n      _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n      startInputProps = _usePickerInput2[0],\n      _usePickerInput2$ = _usePickerInput2[1],\n      startFocused = _usePickerInput2$.focused,\n      startTyping = _usePickerInput2$.typing;\n\n  var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n    open: endOpen,\n    value: endText\n  })),\n      _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n      endInputProps = _usePickerInput4[0],\n      _usePickerInput4$ = _usePickerInput4[1],\n      endFocused = _usePickerInput4$.focused,\n      endTyping = _usePickerInput4$.typing; // ========================== Click Picker ==========================\n\n\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 (!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\n  var onPickerMouseDown = function onPickerMouseDown(e) {\n    // shouldn't affect input elements if picker is active\n    if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n      e.preventDefault();\n    }\n  }; // ============================= Sync ==============================\n  // Close should sync back with text value\n\n\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\n      if (!startValueTexts.length || startValueTexts[0] === '') {\n        triggerStartTextChange('');\n      } else if (firstStartValueText !== startText) {\n        resetStartText();\n      }\n\n      if (!endValueTexts.length || endValueTexts[0] === '') {\n        triggerEndTextChange('');\n      } else if (firstEndValueText !== endText) {\n        resetEndText();\n      }\n    }\n  }, [mergedOpen, startValueTexts, endValueTexts]); // Sync innerValue with control mode\n\n  useEffect(function () {\n    setSelectedValue(mergedValue);\n  }, [startStr, endStr]); // ============================ Warning ============================\n\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  } // ============================ Private ============================\n\n\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\n        if (endInputRef.current) {\n          endInputRef.current.blur();\n        }\n      }\n    };\n  } // ============================ Ranges =============================\n\n\n  var rangeLabels = Object.keys(ranges || {});\n  var rangeList = rangeLabels.map(function (label) {\n    var range = ranges[label];\n    var newValues = typeof range === 'function' ? range() : range;\n    return {\n      label: label,\n      onClick: function onClick() {\n        triggerChange(newValues, null);\n\n        _triggerOpen(false, mergedActivePickerIndex);\n      },\n      onMouseEnter: function onMouseEnter() {\n        setRangeHoverValue(newValues);\n      },\n      onMouseLeave: function onMouseLeave() {\n        setRangeHoverValue(null);\n      }\n    };\n  }); // ============================= Panel =============================\n\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\n    if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n      panelHoverRangedValue = hoverRangedValue;\n    }\n\n    var panelShowTime = showTime;\n\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\n    var panelDateRender = null;\n\n    if (dateRender) {\n      panelDateRender = function panelDateRender(date, today) {\n        return dateRender(date, today, {\n          range: mergedActivePickerIndex ? 'end' : 'start'\n        });\n      };\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, Object.assign({}, props, panelProps, {\n      dateRender: 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\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        triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n        var viewDate = date;\n\n        if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n          viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n        }\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\n  if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current) {\n    // Arrow offset\n    arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n\n    if (panelDivRef.current.offsetWidth && arrowLeft > panelDivRef.current.offsetWidth) {\n      panelLeft = arrowLeft;\n    }\n  }\n\n  var arrowPositionStyle = direction === 'rtl' ? {\n    right: arrowLeft\n  } : {\n    left: arrowLeft\n  };\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: rangeList,\n      onOk: function onOk() {\n        if (getValue(selectedValue, mergedActivePickerIndex)) {\n          // triggerChangeOld(selectedValue);\n          triggerChange(selectedValue, mergedActivePickerIndex);\n\n          if (_onOk) {\n            _onOk(selectedValue);\n          }\n        }\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\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\n    var mergedNodes = /*#__PURE__*/React.createElement(React.Fragment, 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\n    if (panelRender) {\n      mergedNodes = panelRender(mergedNodes);\n    }\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\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    className: \"\".concat(prefixCls, \"-range-arrow\"),\n    style: arrowPositionStyle\n  }), renderPanels()); // ============================= Icons =============================\n\n  var suffixNode;\n\n  if (suffixIcon) {\n    suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-suffix\")\n    }, suffixIcon);\n  }\n\n  var clearNode;\n\n  if (allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1])) {\n    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\n        if (!mergedDisabled[0]) {\n          values = updateValues(values, null, 0);\n        }\n\n        if (!mergedDisabled[1]) {\n          values = updateValues(values, null, 1);\n        }\n\n        triggerChange(values, null);\n\n        _triggerOpen(false, mergedActivePickerIndex);\n      },\n      className: \"\".concat(prefixCls, \"-clear\")\n    }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-clear-btn\")\n    }));\n  }\n\n  var inputSharedProps = {\n    size: getInputSize(picker, formatList[0], generateConfig)\n  };\n  var activeBarLeft = 0;\n  var activeBarWidth = 0;\n\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\n  var activeBarPositionStyle = direction === 'rtl' ? {\n    right: activeBarLeft\n  } : {\n    left: activeBarLeft\n  }; // ============================ Return =============================\n\n  var onContextSelect = function onContextSelect(date, type) {\n    var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n\n    if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n      // triggerChange will also update selected values\n      triggerChange(values, mergedActivePickerIndex); // clear hover value style\n\n      if (mergedActivePickerIndex === 0) {\n        onStartLeave();\n      } else {\n        onEndLeave();\n      }\n    } else {\n      setSelectedValue(values);\n    }\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\", Object.assign({\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    onMouseDown: onPickerMouseDown\n  }, getDataOrAriaProps(props)), /*#__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\", Object.assign({\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\", Object.assign({\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, clearNode)));\n} // Wrap with class component to enable pass generic with instance method\n\n\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n  _inherits(RangePicker, _React$Component);\n\n  var _super = _createSuper(RangePicker);\n\n  function RangePicker() {\n    var _this;\n\n    _classCallCheck(this, RangePicker);\n\n    _this = _super.apply(this, arguments);\n    _this.pickerRef = /*#__PURE__*/React.createRef();\n\n    _this.focus = function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.focus();\n      }\n    };\n\n    _this.blur = function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.blur();\n      }\n    };\n\n    return _this;\n  }\n\n  _createClass(RangePicker, [{\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(InnerRangePicker, Object.assign({}, this.props, {\n        pickerRef: this.pickerRef\n      }));\n    }\n  }]);\n\n  return RangePicker;\n}(React.Component);\n\nexport default RangePicker;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-picker/es/RangePicker.js"],"names":["_classCallCheck","_createClass","_inherits","_createSuper","_typeof","_objectSpread","_defineProperty","_slicedToArray","React","useRef","useEffect","useState","classNames","warning","useMergedState","PickerTrigger","PickerPanel","usePickerInput","getDataOrAriaProps","toArray","getValue","updateValues","getDefaultFormat","getInputSize","elementsContains","PanelContext","isEqual","getClosingViewDate","isSameDate","isSameWeek","isSameQuarter","formatValue","parseValue","useValueTexts","useTextValueMapping","RangeContext","useRangeDisabled","getExtraFooter","getRanges","useRangeViewDates","useHoverValue","reorderValues","values","generateConfig","isAfter","canValueTrigger","value","index","disabled","allowEmpty","InnerRangePicker","props","_classNames2","_classNames3","_classNames4","_props$prefixCls","prefixCls","id","style","className","popupStyle","dropdownClassName","transitionName","dropdownAlign","getPopupContainer","locale","placeholder","autoFocus","format","_props$picker","picker","showTime","use12Hours","_props$separator","separator","defaultValue","defaultPickerValue","open","defaultOpen","disabledDate","_disabledTime","disabledTime","dateRender","panelRender","ranges","allowClear","suffixIcon","clearIcon","pickerRef","inputReadOnly","mode","renderExtraFooter","onChange","onOpenChange","onPanelChange","onCalendarChange","_onFocus","onFocus","onBlur","_onOk","onOk","components","order","direction","activePickerIndex","_props$autoComplete","autoComplete","needConfirmButton","openRecordsRef","containerRef","panelDivRef","startInputDivRef","endInputDivRef","separatorRef","startInputRef","endInputRef","formatList","_useMergedState","_useMergedState2","mergedActivePickerIndex","setMergedActivePickerIndex","operationRef","mergedDisabled","useMemo","Array","isArray","_useMergedState3","postState","_useMergedState4","mergedValue","setInnerValue","_useRangeViewDates","defaultDates","_useRangeViewDates2","getViewDate","setViewDate","_useMergedState5","postValues","i","getNow","_useMergedState6","selectedValue","setSelectedValue","_useMergedState7","_useMergedState8","mergedModes","setInnerModes","triggerModesChange","modes","_useRangeDisabled","current","_useRangeDisabled2","disabledStartDate","disabledEndDate","_useMergedState9","postOpen","newOpen","onClose","_useMergedState10","mergedOpen","triggerInnerOpen","startOpen","endOpen","_useState","_useState2","popupMinWidth","setPopupMinWidth","offsetWidth","triggerRef","_triggerOpen","clearTimeout","openRecords","setTimeout","triggerOpenAndFocus","inputRef","focus","triggerChange","newValue","sourceIndex","startValue","endValue","startStr","endStr","info","range","canStartValueTrigger","canEndValueTrigger","canTrigger","nextOpenIndex","forwardKeyDown","e","onKeyDown","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","getSharedInputHookProps","resetText","blurToCancel","isClickOutside","target","triggerOpen","onSubmit","onCancel","_usePickerInput","_usePickerInput2","startInputProps","_usePickerInput2$","startFocused","focused","startTyping","typing","_usePickerInput3","_usePickerInput4","endInputProps","_usePickerInput4$","endFocused","endTyping","onPickerClick","contains","onPickerMouseDown","preventDefault","length","process","env","NODE_ENV","blur","rangeLabels","Object","keys","rangeList","map","label","newValues","onClick","onMouseEnter","onMouseLeave","renderPanel","panelPosition","arguments","undefined","panelProps","panelHoverRangedValue","panelShowTime","timeDefaultValues","panelDateRender","today","createElement","Provider","inRange","rangedValue","assign","concat","tabIndex","newMode","viewDate","onSelect","arrowLeft","panelLeft","arrowPositionStyle","right","left","renderPanels","panels","extraNode","rangesNode","okDisabled","nextViewDate","currentMode","showDoublePanel","leftPanel","pickerValue","onPickerValueChange","newViewDate","rightPanel","Fragment","mergedNodes","marginLeft","ref","onMouseDown","rangePanel","minWidth","suffixNode","clearNode","stopPropagation","onMouseUp","inputSharedProps","size","activeBarLeft","activeBarWidth","activeBarPositionStyle","onContextSelect","type","hideHeader","hideRanges","visible","popupElement","readOnly","width","position","RangePicker","_React$Component","_super","_this","apply","createRef","key","render","Component"],"mappings":"AAAA,OAAOA,eAAP,MAA4B,2CAA5B;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,SAAP,MAAsB,qCAAtB;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,OAAP,MAAoB,mCAApB;AACA,OAAOC,aAAP,MAA0B,0CAA1B;AACA,OAAOC,eAAP,MAA4B,2CAA5B;AACA,OAAOC,cAAP,MAA2B,0CAA3B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SAASC,MAAT,EAAiBC,SAAjB,EAA4BC,QAA5B,QAA4C,OAA5C;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,OAAP,MAAoB,oBAApB;AACA,OAAOC,cAAP,MAA2B,iCAA3B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,cAAP,MAA2B,wBAA3B;AACA,OAAOC,kBAAP,IAA6BC,OAA7B,EAAsCC,QAAtC,EAAgDC,YAAhD,QAAoE,kBAApE;AACA,SAASC,gBAAT,EAA2BC,YAA3B,EAAyCC,gBAAzC,QAAiE,gBAAjE;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,SAASC,OAAT,EAAkBC,kBAAlB,EAAsCC,UAAtC,EAAkDC,UAAlD,EAA8DC,aAA9D,EAA6EC,WAA7E,EAA0FC,UAA1F,QAA4G,kBAA5G;AACA,OAAOC,aAAP,MAA0B,uBAA1B;AACA,OAAOC,mBAAP,MAAgC,6BAAhC;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,cAAP,MAA2B,wBAA3B;AACA,OAAOC,SAAP,MAAsB,mBAAtB;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AACA,OAAOC,aAAP,MAA0B,uBAA1B;;AAEA,SAASC,aAAT,CAAuBC,MAAvB,EAA+BC,cAA/B,EAA+C;AAC7C,MAAID,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAhB,IAAuBA,MAAM,CAAC,CAAD,CAA7B,IAAoCC,cAAc,CAACC,OAAf,CAAuBF,MAAM,CAAC,CAAD,CAA7B,EAAkCA,MAAM,CAAC,CAAD,CAAxC,CAAxC,EAAsF;AACpF,WAAO,CAACA,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,CAAP;AACD;;AAED,SAAOA,MAAP;AACD;;AAED,SAASG,eAAT,CAAyBC,KAAzB,EAAgCC,KAAhC,EAAuCC,QAAvC,EAAiDC,UAAjD,EAA6D;AAC3D,MAAIH,KAAJ,EAAW;AACT,WAAO,IAAP;AACD;;AAED,MAAIG,UAAU,IAAIA,UAAU,CAACF,KAAD,CAA5B,EAAqC;AACnC,WAAO,IAAP;AACD;;AAED,MAAIC,QAAQ,CAAC,CAACD,KAAK,GAAG,CAAT,IAAc,CAAf,CAAZ,EAA+B;AAC7B,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD;;AAED,SAASG,gBAAT,CAA0BC,KAA1B,EAAiC;AAC/B,MAAIC,YAAJ,EAAkBC,YAAlB,EAAgCC,YAAhC;;AAEA,MAAIC,gBAAgB,GAAGJ,KAAK,CAACK,SAA7B;AAAA,MACIA,SAAS,GAAGD,gBAAgB,KAAK,KAAK,CAA1B,GAA8B,WAA9B,GAA4CA,gBAD5D;AAAA,MAEIE,EAAE,GAAGN,KAAK,CAACM,EAFf;AAAA,MAGIC,KAAK,GAAGP,KAAK,CAACO,KAHlB;AAAA,MAIIC,SAAS,GAAGR,KAAK,CAACQ,SAJtB;AAAA,MAKIC,UAAU,GAAGT,KAAK,CAACS,UALvB;AAAA,MAMIC,iBAAiB,GAAGV,KAAK,CAACU,iBAN9B;AAAA,MAOIC,cAAc,GAAGX,KAAK,CAACW,cAP3B;AAAA,MAQIC,aAAa,GAAGZ,KAAK,CAACY,aAR1B;AAAA,MASIC,iBAAiB,GAAGb,KAAK,CAACa,iBAT9B;AAAA,MAUIrB,cAAc,GAAGQ,KAAK,CAACR,cAV3B;AAAA,MAWIsB,MAAM,GAAGd,KAAK,CAACc,MAXnB;AAAA,MAYIC,WAAW,GAAGf,KAAK,CAACe,WAZxB;AAAA,MAaIC,SAAS,GAAGhB,KAAK,CAACgB,SAbtB;AAAA,MAcInB,QAAQ,GAAGG,KAAK,CAACH,QAdrB;AAAA,MAeIoB,MAAM,GAAGjB,KAAK,CAACiB,MAfnB;AAAA,MAgBIC,aAAa,GAAGlB,KAAK,CAACmB,MAhB1B;AAAA,MAiBIA,MAAM,GAAGD,aAAa,KAAK,KAAK,CAAvB,GAA2B,MAA3B,GAAoCA,aAjBjD;AAAA,MAkBIE,QAAQ,GAAGpB,KAAK,CAACoB,QAlBrB;AAAA,MAmBIC,UAAU,GAAGrB,KAAK,CAACqB,UAnBvB;AAAA,MAoBIC,gBAAgB,GAAGtB,KAAK,CAACuB,SApB7B;AAAA,MAqBIA,SAAS,GAAGD,gBAAgB,KAAK,KAAK,CAA1B,GAA8B,GAA9B,GAAoCA,gBArBpD;AAAA,MAsBI3B,KAAK,GAAGK,KAAK,CAACL,KAtBlB;AAAA,MAuBI6B,YAAY,GAAGxB,KAAK,CAACwB,YAvBzB;AAAA,MAwBIC,kBAAkB,GAAGzB,KAAK,CAACyB,kBAxB/B;AAAA,MAyBIC,IAAI,GAAG1B,KAAK,CAAC0B,IAzBjB;AAAA,MA0BIC,WAAW,GAAG3B,KAAK,CAAC2B,WA1BxB;AAAA,MA2BIC,YAAY,GAAG5B,KAAK,CAAC4B,YA3BzB;AAAA,MA4BIC,aAAa,GAAG7B,KAAK,CAAC8B,YA5B1B;AAAA,MA6BIC,UAAU,GAAG/B,KAAK,CAAC+B,UA7BvB;AAAA,MA8BIC,WAAW,GAAGhC,KAAK,CAACgC,WA9BxB;AAAA,MA+BIC,MAAM,GAAGjC,KAAK,CAACiC,MA/BnB;AAAA,MAgCInC,UAAU,GAAGE,KAAK,CAACF,UAhCvB;AAAA,MAiCIoC,UAAU,GAAGlC,KAAK,CAACkC,UAjCvB;AAAA,MAkCIC,UAAU,GAAGnC,KAAK,CAACmC,UAlCvB;AAAA,MAmCIC,SAAS,GAAGpC,KAAK,CAACoC,SAnCtB;AAAA,MAoCIC,SAAS,GAAGrC,KAAK,CAACqC,SApCtB;AAAA,MAqCIC,aAAa,GAAGtC,KAAK,CAACsC,aArC1B;AAAA,MAsCIC,IAAI,GAAGvC,KAAK,CAACuC,IAtCjB;AAAA,MAuCIC,iBAAiB,GAAGxC,KAAK,CAACwC,iBAvC9B;AAAA,MAwCIC,QAAQ,GAAGzC,KAAK,CAACyC,QAxCrB;AAAA,MAyCIC,YAAY,GAAG1C,KAAK,CAAC0C,YAzCzB;AAAA,MA0CIC,aAAa,GAAG3C,KAAK,CAAC2C,aA1C1B;AAAA,MA2CIC,gBAAgB,GAAG5C,KAAK,CAAC4C,gBA3C7B;AAAA,MA4CIC,QAAQ,GAAG7C,KAAK,CAAC8C,OA5CrB;AAAA,MA6CIC,MAAM,GAAG/C,KAAK,CAAC+C,MA7CnB;AAAA,MA8CIC,KAAK,GAAGhD,KAAK,CAACiD,IA9ClB;AAAA,MA+CIC,UAAU,GAAGlD,KAAK,CAACkD,UA/CvB;AAAA,MAgDIC,KAAK,GAAGnD,KAAK,CAACmD,KAhDlB;AAAA,MAiDIC,SAAS,GAAGpD,KAAK,CAACoD,SAjDtB;AAAA,MAkDIC,iBAAiB,GAAGrD,KAAK,CAACqD,iBAlD9B;AAAA,MAmDIC,mBAAmB,GAAGtD,KAAK,CAACuD,YAnDhC;AAAA,MAoDIA,YAAY,GAAGD,mBAAmB,KAAK,KAAK,CAA7B,GAAiC,KAAjC,GAAyCA,mBApD5D;AAqDA,MAAIE,iBAAiB,GAAGrC,MAAM,KAAK,MAAX,IAAqB,CAAC,CAACC,QAAvB,IAAmCD,MAAM,KAAK,MAAtE,CAxD+B,CAwD+C;;AAE9E,MAAIsC,cAAc,GAAGnG,MAAM,CAAC,EAAD,CAA3B;AACA,MAAIoG,YAAY,GAAGpG,MAAM,CAAC,IAAD,CAAzB;AACA,MAAIqG,WAAW,GAAGrG,MAAM,CAAC,IAAD,CAAxB;AACA,MAAIsG,gBAAgB,GAAGtG,MAAM,CAAC,IAAD,CAA7B;AACA,MAAIuG,cAAc,GAAGvG,MAAM,CAAC,IAAD,CAA3B;AACA,MAAIwG,YAAY,GAAGxG,MAAM,CAAC,IAAD,CAAzB;AACA,MAAIyG,aAAa,GAAGzG,MAAM,CAAC,IAAD,CAA1B;AACA,MAAI0G,WAAW,GAAG1G,MAAM,CAAC,IAAD,CAAxB,CAjE+B,CAiEC;;AAEhC,MAAI2G,UAAU,GAAGjG,OAAO,CAACG,gBAAgB,CAAC8C,MAAD,EAASE,MAAT,EAAiBC,QAAjB,EAA2BC,UAA3B,CAAjB,CAAxB,CAnE+B,CAmEmD;;AAElF,MAAI6C,eAAe,GAAGvG,cAAc,CAAC,CAAD,EAAI;AACtCgC,IAAAA,KAAK,EAAE0D;AAD+B,GAAJ,CAApC;AAAA,MAGIc,gBAAgB,GAAG/G,cAAc,CAAC8G,eAAD,EAAkB,CAAlB,CAHrC;AAAA,MAIIE,uBAAuB,GAAGD,gBAAgB,CAAC,CAAD,CAJ9C;AAAA,MAKIE,0BAA0B,GAAGF,gBAAgB,CAAC,CAAD,CALjD,CArE+B,CA0EuB;;;AAGtD,MAAIG,YAAY,GAAGhH,MAAM,CAAC,IAAD,CAAzB;AACA,MAAIiH,cAAc,GAAGlH,KAAK,CAACmH,OAAN,CAAc,YAAY;AAC7C,QAAIC,KAAK,CAACC,OAAN,CAAc7E,QAAd,CAAJ,EAA6B;AAC3B,aAAOA,QAAP;AACD;;AAED,WAAO,CAACA,QAAQ,IAAI,KAAb,EAAoBA,QAAQ,IAAI,KAAhC,CAAP;AACD,GANoB,EAMlB,CAACA,QAAD,CANkB,CAArB,CA9E+B,CAoFf;;AAEhB,MAAI8E,gBAAgB,GAAGhH,cAAc,CAAC,IAAD,EAAO;AAC1CgC,IAAAA,KAAK,EAAEA,KADmC;AAE1C6B,IAAAA,YAAY,EAAEA,YAF4B;AAG1CoD,IAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBrF,MAAnB,EAA2B;AACpC,aAAO4B,MAAM,KAAK,MAAX,IAAqB,CAACgC,KAAtB,GAA8B5D,MAA9B,GAAuCD,aAAa,CAACC,MAAD,EAASC,cAAT,CAA3D;AACD;AALyC,GAAP,CAArC;AAAA,MAOIqF,gBAAgB,GAAGzH,cAAc,CAACuH,gBAAD,EAAmB,CAAnB,CAPrC;AAAA,MAQIG,WAAW,GAAGD,gBAAgB,CAAC,CAAD,CARlC;AAAA,MASIE,aAAa,GAAGF,gBAAgB,CAAC,CAAD,CATpC,CAtF+B,CA+FU;AACzC;;;AAGA,MAAIG,kBAAkB,GAAG5F,iBAAiB,CAAC;AACzCG,IAAAA,MAAM,EAAEuF,WADiC;AAEzC3D,IAAAA,MAAM,EAAEA,MAFiC;AAGzC8D,IAAAA,YAAY,EAAExD,kBAH2B;AAIzCjC,IAAAA,cAAc,EAAEA;AAJyB,GAAD,CAA1C;AAAA,MAMI0F,mBAAmB,GAAG9H,cAAc,CAAC4H,kBAAD,EAAqB,CAArB,CANxC;AAAA,MAOIG,WAAW,GAAGD,mBAAmB,CAAC,CAAD,CAPrC;AAAA,MAQIE,WAAW,GAAGF,mBAAmB,CAAC,CAAD,CARrC,CAnG+B,CA2GW;;;AAG1C,MAAIG,gBAAgB,GAAG1H,cAAc,CAACmH,WAAD,EAAc;AACjDF,IAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBrF,MAAnB,EAA2B;AACpC,UAAI+F,UAAU,GAAG/F,MAAjB;;AAEA,UAAIgF,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAc,CAAC,CAAD,CAAvC,EAA4C;AAC1C,eAAOe,UAAP;AACD,OALmC,CAKlC;;;AAGF,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,IAAI,CAA5B,EAA+B;AAC7B,YAAIhB,cAAc,CAACgB,CAAD,CAAd,IAAqB,CAACtH,QAAQ,CAACqH,UAAD,EAAaC,CAAb,CAA9B,IAAiD,CAACtH,QAAQ,CAAC6B,UAAD,EAAayF,CAAb,CAA9D,EAA+E;AAC7ED,UAAAA,UAAU,GAAGpH,YAAY,CAACoH,UAAD,EAAa9F,cAAc,CAACgG,MAAf,EAAb,EAAsCD,CAAtC,CAAzB;AACD;AACF;;AAED,aAAOD,UAAP;AACD;AAhBgD,GAAd,CAArC;AAAA,MAkBIG,gBAAgB,GAAGrI,cAAc,CAACiI,gBAAD,EAAmB,CAAnB,CAlBrC;AAAA,MAmBIK,aAAa,GAAGD,gBAAgB,CAAC,CAAD,CAnBpC;AAAA,MAoBIE,gBAAgB,GAAGF,gBAAgB,CAAC,CAAD,CApBvC,CA9G+B,CAkIa;;;AAG5C,MAAIG,gBAAgB,GAAGjI,cAAc,CAAC,CAACwD,MAAD,EAASA,MAAT,CAAD,EAAmB;AACtDxB,IAAAA,KAAK,EAAE4C;AAD+C,GAAnB,CAArC;AAAA,MAGIsD,gBAAgB,GAAGzI,cAAc,CAACwI,gBAAD,EAAmB,CAAnB,CAHrC;AAAA,MAIIE,WAAW,GAAGD,gBAAgB,CAAC,CAAD,CAJlC;AAAA,MAKIE,aAAa,GAAGF,gBAAgB,CAAC,CAAD,CALpC;;AAOAtI,EAAAA,SAAS,CAAC,YAAY;AACpBwI,IAAAA,aAAa,CAAC,CAAC5E,MAAD,EAASA,MAAT,CAAD,CAAb;AACD,GAFQ,EAEN,CAACA,MAAD,CAFM,CAAT;;AAIA,MAAI6E,kBAAkB,GAAG,SAASA,kBAAT,CAA4BC,KAA5B,EAAmC1G,MAAnC,EAA2C;AAClEwG,IAAAA,aAAa,CAACE,KAAD,CAAb;;AAEA,QAAItD,aAAJ,EAAmB;AACjBA,MAAAA,aAAa,CAACpD,MAAD,EAAS0G,KAAT,CAAb;AACD;AACF,GAND,CAhJ+B,CAsJ5B;;;AAGH,MAAIC,iBAAiB,GAAGjH,gBAAgB,CAAC;AACvCkC,IAAAA,MAAM,EAAEA,MAD+B;AAEvCuE,IAAAA,aAAa,EAAEA,aAFwB;AAGvC5E,IAAAA,MAAM,EAAEA,MAH+B;AAIvCjB,IAAAA,QAAQ,EAAE0E,cAJ6B;AAKvC3C,IAAAA,YAAY,EAAEA,YALyB;AAMvCpC,IAAAA,cAAc,EAAEA;AANuB,GAAD,EAOrCiE,cAAc,CAAC0C,OAAf,CAAuB,CAAvB,CAPqC,EAOV1C,cAAc,CAAC0C,OAAf,CAAuB,CAAvB,CAPU,CAAxC;AAAA,MAQIC,kBAAkB,GAAGhJ,cAAc,CAAC8I,iBAAD,EAAoB,CAApB,CARvC;AAAA,MASIG,iBAAiB,GAAGD,kBAAkB,CAAC,CAAD,CAT1C;AAAA,MAUIE,eAAe,GAAGF,kBAAkB,CAAC,CAAD,CAVxC,CAzJ+B,CAmKc;;;AAG7C,MAAIG,gBAAgB,GAAG5I,cAAc,CAAC,KAAD,EAAQ;AAC3CgC,IAAAA,KAAK,EAAE+B,IADoC;AAE3CF,IAAAA,YAAY,EAAEG,WAF6B;AAG3CiD,IAAAA,SAAS,EAAE,SAASA,SAAT,CAAmB4B,QAAnB,EAA6B;AACtC,aAAOjC,cAAc,CAACH,uBAAD,CAAd,GAA0C,KAA1C,GAAkDoC,QAAzD;AACD,KAL0C;AAM3C/D,IAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBgE,OAAlB,EAA2B;AACnC,UAAI/D,YAAJ,EAAkB;AAChBA,QAAAA,YAAY,CAAC+D,OAAD,CAAZ;AACD;;AAED,UAAI,CAACA,OAAD,IAAYnC,YAAY,CAAC6B,OAAzB,IAAoC7B,YAAY,CAAC6B,OAAb,CAAqBO,OAA7D,EAAsE;AACpEpC,QAAAA,YAAY,CAAC6B,OAAb,CAAqBO,OAArB;AACD;AACF;AAd0C,GAAR,CAArC;AAAA,MAgBIC,iBAAiB,GAAGvJ,cAAc,CAACmJ,gBAAD,EAAmB,CAAnB,CAhBtC;AAAA,MAiBIK,UAAU,GAAGD,iBAAiB,CAAC,CAAD,CAjBlC;AAAA,MAkBIE,gBAAgB,GAAGF,iBAAiB,CAAC,CAAD,CAlBxC;;AAoBA,MAAIG,SAAS,GAAGF,UAAU,IAAIxC,uBAAuB,KAAK,CAA1D;AACA,MAAI2C,OAAO,GAAGH,UAAU,IAAIxC,uBAAuB,KAAK,CAAxD,CA3L+B,CA2L4B;AAC3D;;AAEA,MAAI4C,SAAS,GAAGxJ,QAAQ,CAAC,CAAD,CAAxB;AAAA,MACIyJ,UAAU,GAAG7J,cAAc,CAAC4J,SAAD,EAAY,CAAZ,CAD/B;AAAA,MAEIE,aAAa,GAAGD,UAAU,CAAC,CAAD,CAF9B;AAAA,MAGIE,gBAAgB,GAAGF,UAAU,CAAC,CAAD,CAHjC;;AAKA1J,EAAAA,SAAS,CAAC,YAAY;AACpB,QAAI,CAACqJ,UAAD,IAAelD,YAAY,CAACyC,OAAhC,EAAyC;AACvCgB,MAAAA,gBAAgB,CAACzD,YAAY,CAACyC,OAAb,CAAqBiB,WAAtB,CAAhB;AACD;AACF,GAJQ,EAIN,CAACR,UAAD,CAJM,CAAT,CAnM+B,CAuMb;;AAElB,MAAIS,UAAU,GAAGhK,KAAK,CAACC,MAAN,EAAjB;;AAEA,WAASgK,YAAT,CAAsBb,OAAtB,EAA+B7G,KAA/B,EAAsC;AACpC,QAAI6G,OAAJ,EAAa;AACXc,MAAAA,YAAY,CAACF,UAAU,CAAClB,OAAZ,CAAZ;AACA1C,MAAAA,cAAc,CAAC0C,OAAf,CAAuBvG,KAAvB,IAAgC,IAAhC;AACAyE,MAAAA,0BAA0B,CAACzE,KAAD,CAA1B;AACAiH,MAAAA,gBAAgB,CAACJ,OAAD,CAAhB,CAJW,CAIgB;;AAE3B,UAAI,CAACG,UAAL,EAAiB;AACfxB,QAAAA,WAAW,CAAC,IAAD,EAAOxF,KAAP,CAAX;AACD;AACF,KATD,MASO,IAAIwE,uBAAuB,KAAKxE,KAAhC,EAAuC;AAC5CiH,MAAAA,gBAAgB,CAACJ,OAAD,CAAhB,CAD4C,CACjB;AAC3B;;AAEA,UAAIe,WAAW,GAAG/D,cAAc,CAAC0C,OAAjC;AACAkB,MAAAA,UAAU,CAAClB,OAAX,GAAqBsB,UAAU,CAAC,YAAY;AAC1C,YAAID,WAAW,KAAK/D,cAAc,CAAC0C,OAAnC,EAA4C;AAC1C1C,UAAAA,cAAc,CAAC0C,OAAf,GAAyB,EAAzB;AACD;AACF,OAJ8B,CAA/B;AAKD;AACF;;AAED,WAASuB,mBAAT,CAA6B9H,KAA7B,EAAoC;AAClC0H,IAAAA,YAAY,CAAC,IAAD,EAAO1H,KAAP,CAAZ,CADkC,CACP;;;AAG3B6H,IAAAA,UAAU,CAAC,YAAY;AACrB,UAAIE,QAAQ,GAAG,CAAC5D,aAAD,EAAgBC,WAAhB,EAA6BpE,KAA7B,CAAf;;AAEA,UAAI+H,QAAQ,CAACxB,OAAb,EAAsB;AACpBwB,QAAAA,QAAQ,CAACxB,OAAT,CAAiByB,KAAjB;AACD;AACF,KANS,EAMP,CANO,CAAV;AAOD;;AAED,WAASC,aAAT,CAAuBC,QAAvB,EAAiCC,WAAjC,EAA8C;AAC5C,QAAIxI,MAAM,GAAGuI,QAAb;AACA,QAAIE,UAAU,GAAG/J,QAAQ,CAACsB,MAAD,EAAS,CAAT,CAAzB;AACA,QAAI0I,QAAQ,GAAGhK,QAAQ,CAACsB,MAAD,EAAS,CAAT,CAAvB,CAH4C,CAGR;;AAEpC,QAAIyI,UAAU,IAAIC,QAAd,IAA0BzI,cAAc,CAACC,OAAf,CAAuBuI,UAAvB,EAAmCC,QAAnC,CAA9B,EAA4E;AAC1E,WAAK;AACL9G,MAAAA,MAAM,KAAK,MAAX,IAAqB,CAACzC,UAAU,CAACc,cAAD,EAAiBsB,MAAM,CAACA,MAAxB,EAAgCkH,UAAhC,EAA4CC,QAA5C,CAAhC,IAAyF;AACzF9G,MAAAA,MAAM,KAAK,SAAX,IAAwB,CAACxC,aAAa,CAACa,cAAD,EAAiBwI,UAAjB,EAA6BC,QAA7B,CADtC,IACgF;AAChF9G,MAAAA,MAAM,KAAK,MAAX,IAAqBA,MAAM,KAAK,SAAhC,IAA6CA,MAAM,KAAK,MAAxD,IAAkE,CAAC1C,UAAU,CAACe,cAAD,EAAiBwI,UAAjB,EAA6BC,QAA7B,CAH7E,EAGqH;AACnH;AACA,YAAIF,WAAW,KAAK,CAApB,EAAuB;AACrBxI,UAAAA,MAAM,GAAG,CAACyI,UAAD,EAAa,IAAb,CAAT;AACAC,UAAAA,QAAQ,GAAG,IAAX;AACD,SAHD,MAGO;AACLD,UAAAA,UAAU,GAAG,IAAb;AACAzI,UAAAA,MAAM,GAAG,CAAC,IAAD,EAAO0I,QAAP,CAAT;AACD,SARkH,CAQjH;;;AAGFxE,QAAAA,cAAc,CAAC0C,OAAf,GAAyBhJ,eAAe,CAAC,EAAD,EAAK4K,WAAL,EAAkB,IAAlB,CAAxC;AACD,OAfD,MAeO,IAAI5G,MAAM,KAAK,MAAX,IAAqBgC,KAAK,KAAK,KAAnC,EAA0C;AAC/C;AACA5D,QAAAA,MAAM,GAAGD,aAAa,CAACC,MAAD,EAASC,cAAT,CAAtB;AACD;AACF;;AAEDmG,IAAAA,gBAAgB,CAACpG,MAAD,CAAhB;AACA,QAAI2I,QAAQ,GAAG3I,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAhB,GAAsBX,WAAW,CAACW,MAAM,CAAC,CAAD,CAAP,EAAY;AAC1DC,MAAAA,cAAc,EAAEA,cAD0C;AAE1DsB,MAAAA,MAAM,EAAEA,MAFkD;AAG1DG,MAAAA,MAAM,EAAEgD,UAAU,CAAC,CAAD;AAHwC,KAAZ,CAAjC,GAIV,EAJL;AAKA,QAAIkE,MAAM,GAAG5I,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAhB,GAAsBX,WAAW,CAACW,MAAM,CAAC,CAAD,CAAP,EAAY;AACxDC,MAAAA,cAAc,EAAEA,cADwC;AAExDsB,MAAAA,MAAM,EAAEA,MAFgD;AAGxDG,MAAAA,MAAM,EAAEgD,UAAU,CAAC,CAAD;AAHsC,KAAZ,CAAjC,GAIR,EAJL;;AAMA,QAAIrB,gBAAJ,EAAsB;AACpB,UAAIwF,IAAI,GAAG;AACTC,QAAAA,KAAK,EAAEN,WAAW,KAAK,CAAhB,GAAoB,OAApB,GAA8B;AAD5B,OAAX;AAGAnF,MAAAA,gBAAgB,CAACrD,MAAD,EAAS,CAAC2I,QAAD,EAAWC,MAAX,CAAT,EAA6BC,IAA7B,CAAhB;AACD,KA5C2C,CA4C1C;;;AAGF,QAAIE,oBAAoB,GAAG5I,eAAe,CAACsI,UAAD,EAAa,CAAb,EAAgBzD,cAAhB,EAAgCzE,UAAhC,CAA1C;AACA,QAAIyI,kBAAkB,GAAG7I,eAAe,CAACuI,QAAD,EAAW,CAAX,EAAc1D,cAAd,EAA8BzE,UAA9B,CAAxC;AACA,QAAI0I,UAAU,GAAGjJ,MAAM,KAAK,IAAX,IAAmB+I,oBAAoB,IAAIC,kBAA5D;;AAEA,QAAIC,UAAJ,EAAgB;AACd;AACAzD,MAAAA,aAAa,CAACxF,MAAD,CAAb;;AAEA,UAAIkD,QAAQ,KAAK,CAAClE,OAAO,CAACiB,cAAD,EAAiBvB,QAAQ,CAAC6G,WAAD,EAAc,CAAd,CAAzB,EAA2CkD,UAA3C,CAAR,IAAkE,CAACzJ,OAAO,CAACiB,cAAD,EAAiBvB,QAAQ,CAAC6G,WAAD,EAAc,CAAd,CAAzB,EAA2CmD,QAA3C,CAA/E,CAAZ,EAAkJ;AAChJxF,QAAAA,QAAQ,CAAClD,MAAD,EAAS,CAAC2I,QAAD,EAAWC,MAAX,CAAT,CAAR;AACD;AACF,KA1D2C,CA0D1C;AACF;;;AAGA,QAAIM,aAAa,GAAG,IAApB;;AAEA,QAAIV,WAAW,KAAK,CAAhB,IAAqB,CAACxD,cAAc,CAAC,CAAD,CAAxC,EAA6C;AAC3CkE,MAAAA,aAAa,GAAG,CAAhB;AACD,KAFD,MAEO,IAAIV,WAAW,KAAK,CAAhB,IAAqB,CAACxD,cAAc,CAAC,CAAD,CAAxC,EAA6C;AAClDkE,MAAAA,aAAa,GAAG,CAAhB;AACD;;AAED,QAAIA,aAAa,KAAK,IAAlB,IAA0BA,aAAa,KAAKrE,uBAA5C,KAAwE,CAACX,cAAc,CAAC0C,OAAf,CAAuBsC,aAAvB,CAAD,IAA0C,CAACxK,QAAQ,CAACsB,MAAD,EAASkJ,aAAT,CAA3H,KAAuJxK,QAAQ,CAACsB,MAAD,EAASwI,WAAT,CAAnK,EAA0L;AACxL;AACAL,MAAAA,mBAAmB,CAACe,aAAD,CAAnB;AACD,KAHD,MAGO;AACLnB,MAAAA,YAAY,CAAC,KAAD,EAAQS,WAAR,CAAZ;AACD;AACF;;AAED,MAAIW,cAAc,GAAG,SAASA,cAAT,CAAwBC,CAAxB,EAA2B;AAC9C,QAAI/B,UAAU,IAAItC,YAAY,CAAC6B,OAA3B,IAAsC7B,YAAY,CAAC6B,OAAb,CAAqByC,SAA/D,EAA0E;AACxE;AACA,aAAOtE,YAAY,CAAC6B,OAAb,CAAqByC,SAArB,CAA+BD,CAA/B,CAAP;AACD;AACD;;AAEA;;;AAGA;AACEjL,MAAAA,OAAO,CAAC,KAAD,EAAQ,qFAAR,CAAP;AACA,aAAO,KAAP;AACD;AACF,GAdD,CA7T+B,CA2U5B;;;AAGH,MAAImL,oBAAoB,GAAG;AACzB5E,IAAAA,UAAU,EAAEA,UADa;AAEzBzE,IAAAA,cAAc,EAAEA,cAFS;AAGzBsB,IAAAA,MAAM,EAAEA;AAHiB,GAA3B;;AAMA,MAAIgI,cAAc,GAAGhK,aAAa,CAACb,QAAQ,CAACyH,aAAD,EAAgB,CAAhB,CAAT,EAA6BmD,oBAA7B,CAAlC;AAAA,MACIE,eAAe,GAAG3L,cAAc,CAAC0L,cAAD,EAAiB,CAAjB,CADpC;AAAA,MAEIE,eAAe,GAAGD,eAAe,CAAC,CAAD,CAFrC;AAAA,MAGIE,mBAAmB,GAAGF,eAAe,CAAC,CAAD,CAHzC;;AAKA,MAAIG,eAAe,GAAGpK,aAAa,CAACb,QAAQ,CAACyH,aAAD,EAAgB,CAAhB,CAAT,EAA6BmD,oBAA7B,CAAnC;AAAA,MACIM,eAAe,GAAG/L,cAAc,CAAC8L,eAAD,EAAkB,CAAlB,CADpC;AAAA,MAEIE,aAAa,GAAGD,eAAe,CAAC,CAAD,CAFnC;AAAA,MAGIE,iBAAiB,GAAGF,eAAe,CAAC,CAAD,CAHvC;;AAKA,MAAIG,aAAa,GAAG,SAASC,YAAT,CAAsBC,OAAtB,EAA+B5J,KAA/B,EAAsC;AACxD,QAAI6J,SAAS,GAAG5K,UAAU,CAAC2K,OAAD,EAAU;AAClC1I,MAAAA,MAAM,EAAEA,MAD0B;AAElCmD,MAAAA,UAAU,EAAEA,UAFsB;AAGlCzE,MAAAA,cAAc,EAAEA;AAHkB,KAAV,CAA1B;AAKA,QAAIkK,YAAY,GAAG9J,KAAK,KAAK,CAAV,GAAcyG,iBAAd,GAAkCC,eAArD;;AAEA,QAAImD,SAAS,IAAI,CAACC,YAAY,CAACD,SAAD,CAA9B,EAA2C;AACzC9D,MAAAA,gBAAgB,CAACzH,YAAY,CAACwH,aAAD,EAAgB+D,SAAhB,EAA2B7J,KAA3B,CAAb,CAAhB;AACAwF,MAAAA,WAAW,CAACqE,SAAD,EAAY7J,KAAZ,CAAX;AACD;AACF,GAZD;;AAcA,MAAI+J,oBAAoB,GAAG5K,mBAAmB,CAAC;AAC7C6K,IAAAA,UAAU,EAAEZ,eADiC;AAE7CO,IAAAA,YAAY,EAAE,SAASA,YAAT,CAAsBC,OAAtB,EAA+B;AAC3C,aAAOF,aAAa,CAACE,OAAD,EAAU,CAAV,CAApB;AACD;AAJ4C,GAAD,CAA9C;AAAA,MAMIK,qBAAqB,GAAGzM,cAAc,CAACuM,oBAAD,EAAuB,CAAvB,CAN1C;AAAA,MAOIG,SAAS,GAAGD,qBAAqB,CAAC,CAAD,CAPrC;AAAA,MAQIE,sBAAsB,GAAGF,qBAAqB,CAAC,CAAD,CARlD;AAAA,MASIG,cAAc,GAAGH,qBAAqB,CAAC,CAAD,CAT1C;;AAWA,MAAII,qBAAqB,GAAGlL,mBAAmB,CAAC;AAC9C6K,IAAAA,UAAU,EAAER,aADkC;AAE9CG,IAAAA,YAAY,EAAE,SAASA,YAAT,CAAsBC,OAAtB,EAA+B;AAC3C,aAAOF,aAAa,CAACE,OAAD,EAAU,CAAV,CAApB;AACD;AAJ6C,GAAD,CAA/C;AAAA,MAMIU,qBAAqB,GAAG9M,cAAc,CAAC6M,qBAAD,EAAwB,CAAxB,CAN1C;AAAA,MAOIE,OAAO,GAAGD,qBAAqB,CAAC,CAAD,CAPnC;AAAA,MAQIE,oBAAoB,GAAGF,qBAAqB,CAAC,CAAD,CARhD;AAAA,MASIG,YAAY,GAAGH,qBAAqB,CAAC,CAAD,CATxC;;AAWA,MAAII,UAAU,GAAG9M,QAAQ,CAAC,IAAD,CAAzB;AAAA,MACI+M,UAAU,GAAGnN,cAAc,CAACkN,UAAD,EAAa,CAAb,CAD/B;AAAA,MAEIE,eAAe,GAAGD,UAAU,CAAC,CAAD,CAFhC;AAAA,MAGIE,kBAAkB,GAAGF,UAAU,CAAC,CAAD,CAHnC,CAlY+B,CAqYS;;;AAGxC,MAAIG,UAAU,GAAGlN,QAAQ,CAAC,IAAD,CAAzB;AAAA,MACImN,UAAU,GAAGvN,cAAc,CAACsN,UAAD,EAAa,CAAb,CAD/B;AAAA,MAEIE,gBAAgB,GAAGD,UAAU,CAAC,CAAD,CAFjC;AAAA,MAGIE,mBAAmB,GAAGF,UAAU,CAAC,CAAD,CAHpC;;AAKA,MAAIG,cAAc,GAAGzL,aAAa,CAACyK,SAAD,EAAY;AAC5C7F,IAAAA,UAAU,EAAEA,UADgC;AAE5CzE,IAAAA,cAAc,EAAEA,cAF4B;AAG5CsB,IAAAA,MAAM,EAAEA;AAHoC,GAAZ,CAAlC;AAAA,MAKIiK,eAAe,GAAG3N,cAAc,CAAC0N,cAAD,EAAiB,CAAjB,CALpC;AAAA,MAMIE,eAAe,GAAGD,eAAe,CAAC,CAAD,CANrC;AAAA,MAOIE,YAAY,GAAGF,eAAe,CAAC,CAAD,CAPlC;AAAA,MAQIG,YAAY,GAAGH,eAAe,CAAC,CAAD,CARlC;;AAUA,MAAII,eAAe,GAAG9L,aAAa,CAAC8K,OAAD,EAAU;AAC3ClG,IAAAA,UAAU,EAAEA,UAD+B;AAE3CzE,IAAAA,cAAc,EAAEA,cAF2B;AAG3CsB,IAAAA,MAAM,EAAEA;AAHmC,GAAV,CAAnC;AAAA,MAKIsK,eAAe,GAAGhO,cAAc,CAAC+N,eAAD,EAAkB,CAAlB,CALpC;AAAA,MAMIE,aAAa,GAAGD,eAAe,CAAC,CAAD,CANnC;AAAA,MAOIE,UAAU,GAAGF,eAAe,CAAC,CAAD,CAPhC;AAAA,MAQIG,UAAU,GAAGH,eAAe,CAAC,CAAD,CARhC;;AAUA,MAAII,gBAAgB,GAAG,SAASA,gBAAT,CAA0BC,IAA1B,EAAgC;AACrDZ,IAAAA,mBAAmB,CAAC3M,YAAY,CAACwH,aAAD,EAAgB+F,IAAhB,EAAsBrH,uBAAtB,CAAb,CAAnB;;AAEA,QAAIA,uBAAuB,KAAK,CAAhC,EAAmC;AACjC6G,MAAAA,YAAY,CAACQ,IAAD,CAAZ;AACD,KAFD,MAEO;AACLH,MAAAA,UAAU,CAACG,IAAD,CAAV;AACD;AACF,GARD;;AAUA,MAAIC,gBAAgB,GAAG,SAASA,gBAAT,GAA4B;AACjDb,IAAAA,mBAAmB,CAAC3M,YAAY,CAACwH,aAAD,EAAgB,IAAhB,EAAsBtB,uBAAtB,CAAb,CAAnB;;AAEA,QAAIA,uBAAuB,KAAK,CAAhC,EAAmC;AACjC8G,MAAAA,YAAY;AACb,KAFD,MAEO;AACLK,MAAAA,UAAU;AACX;AACF,GARD,CA3a+B,CAmb5B;;;AAGH,MAAII,uBAAuB,GAAG,SAASA,uBAAT,CAAiC/L,KAAjC,EAAwCgM,SAAxC,EAAmD;AAC/E,WAAO;AACLC,MAAAA,YAAY,EAAErI,iBADT;AAELkF,MAAAA,cAAc,EAAEA,cAFX;AAGL3F,MAAAA,MAAM,EAAEA,MAHH;AAIL+I,MAAAA,cAAc,EAAE,SAASA,cAAT,CAAwBC,MAAxB,EAAgC;AAC9C,eAAO,CAAC1N,gBAAgB,CAAC,CAACsF,WAAW,CAACwC,OAAb,EAAsBvC,gBAAgB,CAACuC,OAAvC,EAAgDtC,cAAc,CAACsC,OAA/D,CAAD,EAA0E4F,MAA1E,CAAxB;AACD,OANI;AAOLjJ,MAAAA,OAAO,EAAE,SAASA,OAAT,CAAiB6F,CAAjB,EAAoB;AAC3BtE,QAAAA,0BAA0B,CAACzE,KAAD,CAA1B;;AAEA,YAAIiD,QAAJ,EAAc;AACZA,UAAAA,QAAQ,CAAC8F,CAAD,CAAR;AACD;AACF,OAbI;AAcLqD,MAAAA,WAAW,EAAE,SAASA,WAAT,CAAqBvF,OAArB,EAA8B;AACzCa,QAAAA,YAAY,CAACb,OAAD,EAAU7G,KAAV,CAAZ;AACD,OAhBI;AAiBLqM,MAAAA,QAAQ,EAAE,SAASA,QAAT,GAAoB;AAC5BpE,QAAAA,aAAa,CAACnC,aAAD,EAAgB9F,KAAhB,CAAb;AACAgM,QAAAA,SAAS;AACV,OApBI;AAqBLM,MAAAA,QAAQ,EAAE,SAASA,QAAT,GAAoB;AAC5B5E,QAAAA,YAAY,CAAC,KAAD,EAAQ1H,KAAR,CAAZ;;AAEA+F,QAAAA,gBAAgB,CAACb,WAAD,CAAhB;AACA8G,QAAAA,SAAS;AACV;AA1BI,KAAP;AA4BD,GA7BD;;AA+BA,MAAIO,eAAe,GAAGrO,cAAc,CAACZ,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKyO,uBAAuB,CAAC,CAAD,EAAI3B,cAAJ,CAA5B,CAAd,EAAgE,EAAhE,EAAoE;AACpHtI,IAAAA,IAAI,EAAEoF,SAD8G;AAEpHnH,IAAAA,KAAK,EAAEmK;AAF6G,GAApE,CAAd,CAApC;AAAA,MAIIsC,gBAAgB,GAAGhP,cAAc,CAAC+O,eAAD,EAAkB,CAAlB,CAJrC;AAAA,MAKIE,eAAe,GAAGD,gBAAgB,CAAC,CAAD,CALtC;AAAA,MAMIE,iBAAiB,GAAGF,gBAAgB,CAAC,CAAD,CANxC;AAAA,MAOIG,YAAY,GAAGD,iBAAiB,CAACE,OAPrC;AAAA,MAQIC,WAAW,GAAGH,iBAAiB,CAACI,MARpC;;AAUA,MAAIC,gBAAgB,GAAG7O,cAAc,CAACZ,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKyO,uBAAuB,CAAC,CAAD,EAAItB,YAAJ,CAA5B,CAAd,EAA8D,EAA9D,EAAkE;AACnH3I,IAAAA,IAAI,EAAEqF,OAD6G;AAEnHpH,IAAAA,KAAK,EAAEwK;AAF4G,GAAlE,CAAd,CAArC;AAAA,MAIIyC,gBAAgB,GAAGxP,cAAc,CAACuP,gBAAD,EAAmB,CAAnB,CAJrC;AAAA,MAKIE,aAAa,GAAGD,gBAAgB,CAAC,CAAD,CALpC;AAAA,MAMIE,iBAAiB,GAAGF,gBAAgB,CAAC,CAAD,CANxC;AAAA,MAOIG,UAAU,GAAGD,iBAAiB,CAACN,OAPnC;AAAA,MAQIQ,SAAS,GAAGF,iBAAiB,CAACJ,MARlC,CA/d+B,CAueW;;;AAG1C,MAAIO,aAAa,GAAG,SAASA,aAAT,CAAuBtE,CAAvB,EAA0B;AAC5C;AACA;AACA,QAAI,CAAC/B,UAAD,IAAe,CAAC7C,aAAa,CAACoC,OAAd,CAAsB+G,QAAtB,CAA+BvE,CAAC,CAACoD,MAAjC,CAAhB,IAA4D,CAAC/H,WAAW,CAACmC,OAAZ,CAAoB+G,QAApB,CAA6BvE,CAAC,CAACoD,MAA/B,CAAjE,EAAyG;AACvG,UAAI,CAACxH,cAAc,CAAC,CAAD,CAAnB,EAAwB;AACtBmD,QAAAA,mBAAmB,CAAC,CAAD,CAAnB;AACD,OAFD,MAEO,IAAI,CAACnD,cAAc,CAAC,CAAD,CAAnB,EAAwB;AAC7BmD,QAAAA,mBAAmB,CAAC,CAAD,CAAnB;AACD;AACF;AACF,GAVD;;AAYA,MAAIyF,iBAAiB,GAAG,SAASA,iBAAT,CAA2BxE,CAA3B,EAA8B;AACpD;AACA,QAAI/B,UAAU,KAAK2F,YAAY,IAAIQ,UAArB,CAAV,IAA8C,CAAChJ,aAAa,CAACoC,OAAd,CAAsB+G,QAAtB,CAA+BvE,CAAC,CAACoD,MAAjC,CAA/C,IAA2F,CAAC/H,WAAW,CAACmC,OAAZ,CAAoB+G,QAApB,CAA6BvE,CAAC,CAACoD,MAA/B,CAAhG,EAAwI;AACtIpD,MAAAA,CAAC,CAACyE,cAAF;AACD;AACF,GALD,CAtf+B,CA2f5B;AACH;;;AAGA,MAAIlF,QAAQ,GAAGpD,WAAW,IAAIA,WAAW,CAAC,CAAD,CAA1B,GAAgClG,WAAW,CAACkG,WAAW,CAAC,CAAD,CAAZ,EAAiB;AACzEhE,IAAAA,MAAM,EAAEA,MADiE;AAEzEG,IAAAA,MAAM,EAAE,gBAFiE;AAGzEzB,IAAAA,cAAc,EAAEA;AAHyD,GAAjB,CAA3C,GAIV,EAJL;AAKA,MAAI2I,MAAM,GAAGrD,WAAW,IAAIA,WAAW,CAAC,CAAD,CAA1B,GAAgClG,WAAW,CAACkG,WAAW,CAAC,CAAD,CAAZ,EAAiB;AACvEhE,IAAAA,MAAM,EAAEA,MAD+D;AAEvEG,IAAAA,MAAM,EAAE,gBAF+D;AAGvEzB,IAAAA,cAAc,EAAEA;AAHuD,GAAjB,CAA3C,GAIR,EAJL;AAKAjC,EAAAA,SAAS,CAAC,YAAY;AACpB,QAAI,CAACqJ,UAAL,EAAiB;AACfjB,MAAAA,gBAAgB,CAACb,WAAD,CAAhB;;AAEA,UAAI,CAACkE,eAAe,CAACqE,MAAjB,IAA2BrE,eAAe,CAAC,CAAD,CAAf,KAAuB,EAAtD,EAA0D;AACxDe,QAAAA,sBAAsB,CAAC,EAAD,CAAtB;AACD,OAFD,MAEO,IAAId,mBAAmB,KAAKa,SAA5B,EAAuC;AAC5CE,QAAAA,cAAc;AACf;;AAED,UAAI,CAACZ,aAAa,CAACiE,MAAf,IAAyBjE,aAAa,CAAC,CAAD,CAAb,KAAqB,EAAlD,EAAsD;AACpDgB,QAAAA,oBAAoB,CAAC,EAAD,CAApB;AACD,OAFD,MAEO,IAAIf,iBAAiB,KAAKc,OAA1B,EAAmC;AACxCE,QAAAA,YAAY;AACb;AACF;AACF,GAhBQ,EAgBN,CAACzD,UAAD,EAAaoC,eAAb,EAA8BI,aAA9B,CAhBM,CAAT,CAzgB+B,CAyhBmB;;AAElD7L,EAAAA,SAAS,CAAC,YAAY;AACpBoI,IAAAA,gBAAgB,CAACb,WAAD,CAAhB;AACD,GAFQ,EAEN,CAACoD,QAAD,EAAWC,MAAX,CAFM,CAAT,CA3hB+B,CA6hBP;;AAExB,MAAImF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAI7N,KAAK,IAAI8E,KAAK,CAACC,OAAN,CAAc7E,QAAd,CAAT,KAAqC5B,QAAQ,CAAC4B,QAAD,EAAW,CAAX,CAAR,IAAyB,CAAC5B,QAAQ,CAAC0B,KAAD,EAAQ,CAAR,CAAlC,IAAgD1B,QAAQ,CAAC4B,QAAD,EAAW,CAAX,CAAR,IAAyB,CAAC5B,QAAQ,CAAC0B,KAAD,EAAQ,CAAR,CAAvH,CAAJ,EAAwI;AACtIjC,MAAAA,OAAO,CAAC,KAAD,EAAQ,+FAAR,CAAP;AACD;AACF,GAniB8B,CAmiB7B;;;AAGF,MAAI2E,SAAJ,EAAe;AACbA,IAAAA,SAAS,CAAC8D,OAAV,GAAoB;AAClByB,MAAAA,KAAK,EAAE,SAASA,KAAT,GAAiB;AACtB,YAAI7D,aAAa,CAACoC,OAAlB,EAA2B;AACzBpC,UAAAA,aAAa,CAACoC,OAAd,CAAsByB,KAAtB;AACD;AACF,OALiB;AAMlB6F,MAAAA,IAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,YAAI1J,aAAa,CAACoC,OAAlB,EAA2B;AACzBpC,UAAAA,aAAa,CAACoC,OAAd,CAAsBsH,IAAtB;AACD;;AAED,YAAIzJ,WAAW,CAACmC,OAAhB,EAAyB;AACvBnC,UAAAA,WAAW,CAACmC,OAAZ,CAAoBsH,IAApB;AACD;AACF;AAdiB,KAApB;AAgBD,GAvjB8B,CAujB7B;;;AAGF,MAAIC,WAAW,GAAGC,MAAM,CAACC,IAAP,CAAY3L,MAAM,IAAI,EAAtB,CAAlB;AACA,MAAI4L,SAAS,GAAGH,WAAW,CAACI,GAAZ,CAAgB,UAAUC,KAAV,EAAiB;AAC/C,QAAI1F,KAAK,GAAGpG,MAAM,CAAC8L,KAAD,CAAlB;AACA,QAAIC,SAAS,GAAG,OAAO3F,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,EAAnC,GAAwCA,KAAxD;AACA,WAAO;AACL0F,MAAAA,KAAK,EAAEA,KADF;AAELE,MAAAA,OAAO,EAAE,SAASA,OAAT,GAAmB;AAC1BpG,QAAAA,aAAa,CAACmG,SAAD,EAAY,IAAZ,CAAb;;AAEA1G,QAAAA,YAAY,CAAC,KAAD,EAAQlD,uBAAR,CAAZ;AACD,OANI;AAOL8J,MAAAA,YAAY,EAAE,SAASA,YAAT,GAAwB;AACpCzD,QAAAA,kBAAkB,CAACuD,SAAD,CAAlB;AACD,OATI;AAULG,MAAAA,YAAY,EAAE,SAASA,YAAT,GAAwB;AACpC1D,QAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACD;AAZI,KAAP;AAcD,GAjBe,CAAhB,CA3jB+B,CA4kB3B;;AAEJ,WAAS2D,WAAT,GAAuB;AACrB,QAAIC,aAAa,GAAGC,SAAS,CAACjB,MAAV,GAAmB,CAAnB,IAAwBiB,SAAS,CAAC,CAAD,CAAT,KAAiBC,SAAzC,GAAqDD,SAAS,CAAC,CAAD,CAA9D,GAAoE,KAAxF;AACA,QAAIE,UAAU,GAAGF,SAAS,CAACjB,MAAV,GAAmB,CAAnB,IAAwBiB,SAAS,CAAC,CAAD,CAAT,KAAiBC,SAAzC,GAAqDD,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAArF;AACA,QAAIG,qBAAqB,GAAG,IAA5B;;AAEA,QAAI7H,UAAU,IAAIgE,gBAAd,IAAkCA,gBAAgB,CAAC,CAAD,CAAlD,IAAyDA,gBAAgB,CAAC,CAAD,CAAzE,IAAgFpL,cAAc,CAACC,OAAf,CAAuBmL,gBAAgB,CAAC,CAAD,CAAvC,EAA4CA,gBAAgB,CAAC,CAAD,CAA5D,CAApF,EAAsJ;AACpJ6D,MAAAA,qBAAqB,GAAG7D,gBAAxB;AACD;;AAED,QAAI8D,aAAa,GAAGtN,QAApB;;AAEA,QAAIA,QAAQ,IAAInE,OAAO,CAACmE,QAAD,CAAP,KAAsB,QAAlC,IAA8CA,QAAQ,CAACI,YAA3D,EAAyE;AACvE,UAAImN,iBAAiB,GAAGvN,QAAQ,CAACI,YAAjC;AACAkN,MAAAA,aAAa,GAAGxR,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKkE,QAAL,CAAd,EAA8B,EAA9B,EAAkC;AAC7DI,QAAAA,YAAY,EAAEvD,QAAQ,CAAC0Q,iBAAD,EAAoBvK,uBAApB,CAAR,IAAwDmK;AADT,OAAlC,CAA7B;AAGD;;AAED,QAAIK,eAAe,GAAG,IAAtB;;AAEA,QAAI7M,UAAJ,EAAgB;AACd6M,MAAAA,eAAe,GAAG,SAASA,eAAT,CAAyBnD,IAAzB,EAA+BoD,KAA/B,EAAsC;AACtD,eAAO9M,UAAU,CAAC0J,IAAD,EAAOoD,KAAP,EAAc;AAC7BxG,UAAAA,KAAK,EAAEjE,uBAAuB,GAAG,KAAH,GAAW;AADZ,SAAd,CAAjB;AAGD,OAJD;AAKD;;AAED,WAAO,aAAa/G,KAAK,CAACyR,aAAN,CAAoB9P,YAAY,CAAC+P,QAAjC,EAA2C;AAC7DpP,MAAAA,KAAK,EAAE;AACLqP,QAAAA,OAAO,EAAE,IADJ;AAELX,QAAAA,aAAa,EAAEA,aAFV;AAGLY,QAAAA,WAAW,EAAEzE,eAAe,IAAI9E,aAH3B;AAILkF,QAAAA,gBAAgB,EAAE6D;AAJb;AADsD,KAA3C,EAOjB,aAAapR,KAAK,CAACyR,aAAN,CAAoBjR,WAApB,EAAiC8P,MAAM,CAACuB,MAAP,CAAc,EAAd,EAAkBlP,KAAlB,EAAyBwO,UAAzB,EAAqC;AACpFzM,MAAAA,UAAU,EAAE6M,eADwE;AAEpFxN,MAAAA,QAAQ,EAAEsN,aAF0E;AAGpFnM,MAAAA,IAAI,EAAEuD,WAAW,CAAC1B,uBAAD,CAHmE;AAIpF5E,MAAAA,cAAc,EAAEA,cAJoE;AAKpFe,MAAAA,KAAK,EAAEgO,SAL6E;AAMpFnL,MAAAA,SAAS,EAAEA,SANyE;AAOpFxB,MAAAA,YAAY,EAAEwC,uBAAuB,KAAK,CAA5B,GAAgCiC,iBAAhC,GAAoDC,eAPkB;AAQpFxE,MAAAA,YAAY,EAAE,SAASA,YAAT,CAAsB2J,IAAtB,EAA4B;AACxC,YAAI5J,aAAJ,EAAmB;AACjB,iBAAOA,aAAa,CAAC4J,IAAD,EAAOrH,uBAAuB,KAAK,CAA5B,GAAgC,OAAhC,GAA0C,KAAjD,CAApB;AACD;;AAED,eAAO,KAAP;AACD,OAdmF;AAepF5D,MAAAA,SAAS,EAAE/C,UAAU,CAACN,eAAe,CAAC,EAAD,EAAK,GAAGgS,MAAH,CAAU9O,SAAV,EAAqB,gBAArB,CAAL,EAA6C+D,uBAAuB,KAAK,CAA5B,GAAgC,CAACqI,WAAjC,GAA+C,CAACO,SAA7F,CAAhB,CAf+D;AAgBpFrN,MAAAA,KAAK,EAAE1B,QAAQ,CAACyH,aAAD,EAAgBtB,uBAAhB,CAhBqE;AAiBpFtD,MAAAA,MAAM,EAAEA,MAjB4E;AAkBpFsO,MAAAA,QAAQ,EAAE,CAAC,CAlByE;AAmBpFzM,MAAAA,aAAa,EAAE,SAASA,aAAT,CAAuB8I,IAAvB,EAA6B4D,OAA7B,EAAsC;AACnDrJ,QAAAA,kBAAkB,CAAC9H,YAAY,CAAC4H,WAAD,EAAcuJ,OAAd,EAAuBjL,uBAAvB,CAAb,EAA8DlG,YAAY,CAACwH,aAAD,EAAgB+F,IAAhB,EAAsBrH,uBAAtB,CAA1E,CAAlB;AACA,YAAIkL,QAAQ,GAAG7D,IAAf;;AAEA,YAAI4C,aAAa,KAAK,OAAlB,IAA6BvI,WAAW,CAAC1B,uBAAD,CAAX,KAAyCiL,OAA1E,EAAmF;AACjFC,UAAAA,QAAQ,GAAG9Q,kBAAkB,CAAC8Q,QAAD,EAAWD,OAAX,EAAoB7P,cAApB,EAAoC,CAAC,CAArC,CAA7B;AACD;;AAED4F,QAAAA,WAAW,CAACkK,QAAD,EAAWlL,uBAAX,CAAX;AACD,OA5BmF;AA6BpFnB,MAAAA,IAAI,EAAE,IA7B8E;AA8BpFsM,MAAAA,QAAQ,EAAEhB,SA9B0E;AA+BpF9L,MAAAA,QAAQ,EAAE8L,SA/B0E;AAgCpF/M,MAAAA,YAAY,EAAE4C,uBAAuB,KAAK,CAA5B,GAAgCnG,QAAQ,CAACyH,aAAD,EAAgB,CAAhB,CAAxC,GAA6DzH,QAAQ,CAACyH,aAAD,EAAgB,CAAhB,CAhCC;AAiCpFjE,MAAAA,kBAAkB,EAAE8M;AAjCgE,KAArC,CAAjC,CAPI,CAApB;AA0CD;;AAED,MAAIiB,SAAS,GAAG,CAAhB;AACA,MAAIC,SAAS,GAAG,CAAhB;;AAEA,MAAIrL,uBAAuB,IAAIR,gBAAgB,CAACuC,OAA5C,IAAuDrC,YAAY,CAACqC,OAApE,IAA+ExC,WAAW,CAACwC,OAA/F,EAAwG;AACtG;AACAqJ,IAAAA,SAAS,GAAG5L,gBAAgB,CAACuC,OAAjB,CAAyBiB,WAAzB,GAAuCtD,YAAY,CAACqC,OAAb,CAAqBiB,WAAxE;;AAEA,QAAIzD,WAAW,CAACwC,OAAZ,CAAoBiB,WAApB,IAAmCoI,SAAS,GAAG7L,WAAW,CAACwC,OAAZ,CAAoBiB,WAAvE,EAAoF;AAClFqI,MAAAA,SAAS,GAAGD,SAAZ;AACD;AACF;;AAED,MAAIE,kBAAkB,GAAGtM,SAAS,KAAK,KAAd,GAAsB;AAC7CuM,IAAAA,KAAK,EAAEH;AADsC,GAAtB,GAErB;AACFI,IAAAA,IAAI,EAAEJ;AADJ,GAFJ;;AAMA,WAASK,YAAT,GAAwB;AACtB,QAAIC,MAAJ;AACA,QAAIC,SAAS,GAAG7Q,cAAc,CAACmB,SAAD,EAAYyF,WAAW,CAAC1B,uBAAD,CAAvB,EAAkD5B,iBAAlD,CAA9B;AACA,QAAIwN,UAAU,GAAG7Q,SAAS,CAAC;AACzBkB,MAAAA,SAAS,EAAEA,SADc;AAEzB6C,MAAAA,UAAU,EAAEA,UAFa;AAGzBM,MAAAA,iBAAiB,EAAEA,iBAHM;AAIzByM,MAAAA,UAAU,EAAE,CAAChS,QAAQ,CAACyH,aAAD,EAAgBtB,uBAAhB,CAAT,IAAqDxC,YAAY,IAAIA,YAAY,CAAC8D,aAAa,CAACtB,uBAAD,CAAd,CAJpE;AAKzBtD,MAAAA,MAAM,EAAEA,MALiB;AAMzB+M,MAAAA,SAAS,EAAEA,SANc;AAOzB5K,MAAAA,IAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,YAAIhF,QAAQ,CAACyH,aAAD,EAAgBtB,uBAAhB,CAAZ,EAAsD;AACpD;AACAyD,UAAAA,aAAa,CAACnC,aAAD,EAAgBtB,uBAAhB,CAAb;;AAEA,cAAIpB,KAAJ,EAAW;AACTA,YAAAA,KAAK,CAAC0C,aAAD,CAAL;AACD;AACF;AACF;AAhBwB,KAAD,CAA1B;;AAmBA,QAAIvE,MAAM,KAAK,MAAX,IAAqB,CAACC,QAA1B,EAAoC;AAClC,UAAIkO,QAAQ,GAAGnK,WAAW,CAACf,uBAAD,CAA1B;AACA,UAAI8L,YAAY,GAAG1R,kBAAkB,CAAC8Q,QAAD,EAAWnO,MAAX,EAAmB3B,cAAnB,CAArC;AACA,UAAI2Q,WAAW,GAAGrK,WAAW,CAAC1B,uBAAD,CAA7B;AACA,UAAIgM,eAAe,GAAGD,WAAW,KAAKhP,MAAtC;AACA,UAAIkP,SAAS,GAAGjC,WAAW,CAACgC,eAAe,GAAG,MAAH,GAAY,KAA5B,EAAmC;AAC5DE,QAAAA,WAAW,EAAEhB,QAD+C;AAE5DiB,QAAAA,mBAAmB,EAAE,SAASA,mBAAT,CAA6BC,WAA7B,EAA0C;AAC7DpL,UAAAA,WAAW,CAACoL,WAAD,EAAcpM,uBAAd,CAAX;AACD;AAJ2D,OAAnC,CAA3B;AAMA,UAAIqM,UAAU,GAAGrC,WAAW,CAAC,OAAD,EAAU;AACpCkC,QAAAA,WAAW,EAAEJ,YADuB;AAEpCK,QAAAA,mBAAmB,EAAE,SAASA,mBAAT,CAA6BC,WAA7B,EAA0C;AAC7DpL,UAAAA,WAAW,CAAC5G,kBAAkB,CAACgS,WAAD,EAAcrP,MAAd,EAAsB3B,cAAtB,EAAsC,CAAC,CAAvC,CAAnB,EAA8D4E,uBAA9D,CAAX;AACD;AAJmC,OAAV,CAA5B;;AAOA,UAAIhB,SAAS,KAAK,KAAlB,EAAyB;AACvB0M,QAAAA,MAAM,GAAG,aAAazS,KAAK,CAACyR,aAAN,CAAoBzR,KAAK,CAACqT,QAA1B,EAAoC,IAApC,EAA0CD,UAA1C,EAAsDL,eAAe,IAAIC,SAAzE,CAAtB;AACD,OAFD,MAEO;AACLP,QAAAA,MAAM,GAAG,aAAazS,KAAK,CAACyR,aAAN,CAAoBzR,KAAK,CAACqT,QAA1B,EAAoC,IAApC,EAA0CL,SAA1C,EAAqDD,eAAe,IAAIK,UAAxE,CAAtB;AACD;AACF,KAvBD,MAuBO;AACLX,MAAAA,MAAM,GAAG1B,WAAW,EAApB;AACD;;AAED,QAAIuC,WAAW,GAAG,aAAatT,KAAK,CAACyR,aAAN,CAAoBzR,KAAK,CAACqT,QAA1B,EAAoC,IAApC,EAA0C,aAAarT,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AAC/GtO,MAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,SAArB;AADoG,KAA3B,EAEnFyP,MAFmF,CAAvD,EAEnB,CAACC,SAAS,IAAIC,UAAd,KAA6B,aAAa3S,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AAC/EtO,MAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,SAArB;AADoE,KAA3B,EAEnD0P,SAFmD,EAExCC,UAFwC,CAFvB,CAA/B;;AAMA,QAAIhO,WAAJ,EAAiB;AACf2O,MAAAA,WAAW,GAAG3O,WAAW,CAAC2O,WAAD,CAAzB;AACD;;AAED,WAAO,aAAatT,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AAC7CtO,MAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,kBAArB,CADkC;AAE7CE,MAAAA,KAAK,EAAE;AACLqQ,QAAAA,UAAU,EAAEnB;AADP,OAFsC;AAK7CoB,MAAAA,GAAG,EAAElN,WALwC;AAM7CmN,MAAAA,WAAW,EAAE,SAASA,WAAT,CAAqBnI,CAArB,EAAwB;AACnCA,QAAAA,CAAC,CAACyE,cAAF;AACD;AAR4C,KAA3B,EASjBuD,WATiB,CAApB;AAUD;;AAED,MAAII,UAAU,GAAG,aAAa1T,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AACvDtO,IAAAA,SAAS,EAAE/C,UAAU,CAAC,GAAG0R,MAAH,CAAU9O,SAAV,EAAqB,gBAArB,CAAD,EAAyC,GAAG8O,MAAH,CAAU9O,SAAV,EAAqB,GAArB,EAA0B8O,MAA1B,CAAiChO,MAAjC,EAAyC,gBAAzC,CAAzC,CADkC;AAEvDZ,IAAAA,KAAK,EAAE;AACLyQ,MAAAA,QAAQ,EAAE9J;AADL;AAFgD,GAA3B,EAK3B,aAAa7J,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AACzCtO,IAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,cAArB,CAD8B;AAEzCE,IAAAA,KAAK,EAAEmP;AAFkC,GAA3B,CALc,EAQ1BG,YAAY,EARc,CAA9B,CA/uB+B,CAuvBV;;AAErB,MAAIoB,UAAJ;;AAEA,MAAI9O,UAAJ,EAAgB;AACd8O,IAAAA,UAAU,GAAG,aAAa5T,KAAK,CAACyR,aAAN,CAAoB,MAApB,EAA4B;AACpDtO,MAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,SAArB;AADyC,KAA5B,EAEvB8B,UAFuB,CAA1B;AAGD;;AAED,MAAI+O,SAAJ;;AAEA,MAAIhP,UAAU,KAAKjE,QAAQ,CAAC6G,WAAD,EAAc,CAAd,CAAR,IAA4B,CAACP,cAAc,CAAC,CAAD,CAA3C,IAAkDtG,QAAQ,CAAC6G,WAAD,EAAc,CAAd,CAAR,IAA4B,CAACP,cAAc,CAAC,CAAD,CAAlG,CAAd,EAAsH;AACpH2M,IAAAA,SAAS,GAAG,aAAa7T,KAAK,CAACyR,aAAN,CAAoB,MAApB,EAA4B;AACnDgC,MAAAA,WAAW,EAAE,SAASA,WAAT,CAAqBnI,CAArB,EAAwB;AACnCA,QAAAA,CAAC,CAACyE,cAAF;AACAzE,QAAAA,CAAC,CAACwI,eAAF;AACD,OAJkD;AAKnDC,MAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBzI,CAAnB,EAAsB;AAC/BA,QAAAA,CAAC,CAACyE,cAAF;AACAzE,QAAAA,CAAC,CAACwI,eAAF;AACA,YAAI5R,MAAM,GAAGuF,WAAb;;AAEA,YAAI,CAACP,cAAc,CAAC,CAAD,CAAnB,EAAwB;AACtBhF,UAAAA,MAAM,GAAGrB,YAAY,CAACqB,MAAD,EAAS,IAAT,EAAe,CAAf,CAArB;AACD;;AAED,YAAI,CAACgF,cAAc,CAAC,CAAD,CAAnB,EAAwB;AACtBhF,UAAAA,MAAM,GAAGrB,YAAY,CAACqB,MAAD,EAAS,IAAT,EAAe,CAAf,CAArB;AACD;;AAEDsI,QAAAA,aAAa,CAACtI,MAAD,EAAS,IAAT,CAAb;;AAEA+H,QAAAA,YAAY,CAAC,KAAD,EAAQlD,uBAAR,CAAZ;AACD,OArBkD;AAsBnD5D,MAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,QAArB;AAtBwC,KAA5B,EAuBtB+B,SAAS,IAAI,aAAa/E,KAAK,CAACyR,aAAN,CAAoB,MAApB,EAA4B;AACvDtO,MAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,YAArB;AAD4C,KAA5B,CAvBJ,CAAzB;AA0BD;;AAED,MAAIgR,gBAAgB,GAAG;AACrBC,IAAAA,IAAI,EAAElT,YAAY,CAAC+C,MAAD,EAAS8C,UAAU,CAAC,CAAD,CAAnB,EAAwBzE,cAAxB;AADG,GAAvB;AAGA,MAAI+R,aAAa,GAAG,CAApB;AACA,MAAIC,cAAc,GAAG,CAArB;;AAEA,MAAI5N,gBAAgB,CAACuC,OAAjB,IAA4BtC,cAAc,CAACsC,OAA3C,IAAsDrC,YAAY,CAACqC,OAAvE,EAAgF;AAC9E,QAAI/B,uBAAuB,KAAK,CAAhC,EAAmC;AACjCoN,MAAAA,cAAc,GAAG5N,gBAAgB,CAACuC,OAAjB,CAAyBiB,WAA1C;AACD,KAFD,MAEO;AACLmK,MAAAA,aAAa,GAAG/B,SAAhB;AACAgC,MAAAA,cAAc,GAAG3N,cAAc,CAACsC,OAAf,CAAuBiB,WAAxC;AACD;AACF;;AAED,MAAIqK,sBAAsB,GAAGrO,SAAS,KAAK,KAAd,GAAsB;AACjDuM,IAAAA,KAAK,EAAE4B;AAD0C,GAAtB,GAEzB;AACF3B,IAAAA,IAAI,EAAE2B;AADJ,GAFJ,CA/yB+B,CAmzB5B;;AAEH,MAAIG,eAAe,GAAG,SAASA,eAAT,CAAyBjG,IAAzB,EAA+BkG,IAA/B,EAAqC;AACzD,QAAIpS,MAAM,GAAGrB,YAAY,CAACwH,aAAD,EAAgB+F,IAAhB,EAAsBrH,uBAAtB,CAAzB;;AAEA,QAAIuN,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,KAAT,IAAkB,CAACnO,iBAA5C,EAA+D;AAC7D;AACAqE,MAAAA,aAAa,CAACtI,MAAD,EAAS6E,uBAAT,CAAb,CAF6D,CAEb;;AAEhD,UAAIA,uBAAuB,KAAK,CAAhC,EAAmC;AACjC8G,QAAAA,YAAY;AACb,OAFD,MAEO;AACLK,QAAAA,UAAU;AACX;AACF,KATD,MASO;AACL5F,MAAAA,gBAAgB,CAACpG,MAAD,CAAhB;AACD;AACF,GAfD;;AAiBA,SAAO,aAAalC,KAAK,CAACyR,aAAN,CAAoBxQ,YAAY,CAACyQ,QAAjC,EAA2C;AAC7DpP,IAAAA,KAAK,EAAE;AACL2E,MAAAA,YAAY,EAAEA,YADT;AAELsN,MAAAA,UAAU,EAAEzQ,MAAM,KAAK,MAFlB;AAGLqK,MAAAA,gBAAgB,EAAEA,gBAHb;AAILE,MAAAA,gBAAgB,EAAEA,gBAJb;AAKLmG,MAAAA,UAAU,EAAE,IALP;AAMLtC,MAAAA,QAAQ,EAAEmC,eANL;AAOLhQ,MAAAA,IAAI,EAAEkF;AAPD;AADsD,GAA3C,EAUjB,aAAavJ,KAAK,CAACyR,aAAN,CAAoBlR,aAApB,EAAmC;AACjDkU,IAAAA,OAAO,EAAElL,UADwC;AAEjDmL,IAAAA,YAAY,EAAEhB,UAFmC;AAGjDtQ,IAAAA,UAAU,EAAEA,UAHqC;AAIjDJ,IAAAA,SAAS,EAAEA,SAJsC;AAKjDK,IAAAA,iBAAiB,EAAEA,iBAL8B;AAMjDE,IAAAA,aAAa,EAAEA,aANkC;AAOjDC,IAAAA,iBAAiB,EAAEA,iBAP8B;AAQjDF,IAAAA,cAAc,EAAEA,cARiC;AASjD0H,IAAAA,KAAK,EAAE,IAT0C;AAUjDjF,IAAAA,SAAS,EAAEA;AAVsC,GAAnC,EAWb,aAAa/F,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2BnB,MAAM,CAACuB,MAAP,CAAc;AACvD2B,IAAAA,GAAG,EAAEnN,YADkD;AAEvDlD,IAAAA,SAAS,EAAE/C,UAAU,CAAC4C,SAAD,EAAY,GAAG8O,MAAH,CAAU9O,SAAV,EAAqB,QAArB,CAAZ,EAA4CG,SAA5C,GAAwDP,YAAY,GAAG,EAAf,EAAmB9C,eAAe,CAAC8C,YAAD,EAAe,GAAGkP,MAAH,CAAU9O,SAAV,EAAqB,WAArB,CAAf,EAAkDkE,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAc,CAAC,CAAD,CAArF,CAAlC,EAA6HpH,eAAe,CAAC8C,YAAD,EAAe,GAAGkP,MAAH,CAAU9O,SAAV,EAAqB,UAArB,CAAf,EAAiD+D,uBAAuB,KAAK,CAA5B,GAAgCmI,YAAhC,GAA+CQ,UAAhG,CAA5I,EAAyP5P,eAAe,CAAC8C,YAAD,EAAe,GAAGkP,MAAH,CAAU9O,SAAV,EAAqB,MAArB,CAAf,EAA6C+C,SAAS,KAAK,KAA3D,CAAxQ,EAA2UnD,YAAnY,EAFkC;AAGvDM,IAAAA,KAAK,EAAEA,KAHgD;AAIvD0N,IAAAA,OAAO,EAAEhB,aAJ8C;AAKvD6D,IAAAA,WAAW,EAAE3D;AAL0C,GAAd,EAMxCpP,kBAAkB,CAACiC,KAAD,CANsB,CAA3B,EAMe,aAAa3C,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AACrEtO,IAAAA,SAAS,EAAE/C,UAAU,CAAC,GAAG0R,MAAH,CAAU9O,SAAV,EAAqB,QAArB,CAAD,GAAkCH,YAAY,GAAG,EAAf,EAAmB/C,eAAe,CAAC+C,YAAD,EAAe,GAAGiP,MAAH,CAAU9O,SAAV,EAAqB,eAArB,CAAf,EAAsD+D,uBAAuB,KAAK,CAAlF,CAAlC,EAAwHjH,eAAe,CAAC+C,YAAD,EAAe,GAAGiP,MAAH,CAAU9O,SAAV,EAAqB,oBAArB,CAAf,EAA2D,CAAC,CAAC2K,eAA7D,CAAvI,EAAsN9K,YAAxP,EADgD;AAErE2Q,IAAAA,GAAG,EAAEjN;AAFgE,GAA3B,EAGzC,aAAavG,KAAK,CAACyR,aAAN,CAAoB,OAApB,EAA6BnB,MAAM,CAACuB,MAAP,CAAc;AACzD5O,IAAAA,EAAE,EAAEA,EADqD;AAEzDT,IAAAA,QAAQ,EAAE0E,cAAc,CAAC,CAAD,CAFiC;AAGzDyN,IAAAA,QAAQ,EAAE1P,aAAa,IAAI,OAAO2B,UAAU,CAAC,CAAD,CAAjB,KAAyB,UAA1C,IAAwD,CAACwI,WAHV;AAIzD9M,IAAAA,KAAK,EAAEqL,eAAe,IAAIlB,SAJ+B;AAKzDrH,IAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBkG,CAAlB,EAAqB;AAC7BoB,MAAAA,sBAAsB,CAACpB,CAAC,CAACoD,MAAF,CAASpM,KAAV,CAAtB;AACD,KAPwD;AAQzDqB,IAAAA,SAAS,EAAEA,SAR8C;AASzDD,IAAAA,WAAW,EAAE9C,QAAQ,CAAC8C,WAAD,EAAc,CAAd,CAAR,IAA4B,EATgB;AAUzD8P,IAAAA,GAAG,EAAE9M;AAVoD,GAAd,EAW1CsI,eAX0C,EAWzBgF,gBAXyB,EAWP;AACpC9N,IAAAA,YAAY,EAAEA;AADsB,GAXO,CAA7B,CAH4B,CAN5B,EAsBV,aAAalG,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AAC5CtO,IAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,kBAArB,CADiC;AAE5CwQ,IAAAA,GAAG,EAAE/M;AAFuC,GAA3B,EAGhBvC,SAHgB,CAtBH,EAyBD,aAAalE,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AACrDtO,IAAAA,SAAS,EAAE/C,UAAU,CAAC,GAAG0R,MAAH,CAAU9O,SAAV,EAAqB,QAArB,CAAD,GAAkCF,YAAY,GAAG,EAAf,EAAmBhD,eAAe,CAACgD,YAAD,EAAe,GAAGgP,MAAH,CAAU9O,SAAV,EAAqB,eAArB,CAAf,EAAsD+D,uBAAuB,KAAK,CAAlF,CAAlC,EAAwHjH,eAAe,CAACgD,YAAD,EAAe,GAAGgP,MAAH,CAAU9O,SAAV,EAAqB,oBAArB,CAAf,EAA2D,CAAC,CAACgL,aAA7D,CAAvI,EAAoNlL,YAAtP,EADgC;AAErD0Q,IAAAA,GAAG,EAAEhN;AAFgD,GAA3B,EAGzB,aAAaxG,KAAK,CAACyR,aAAN,CAAoB,OAApB,EAA6BnB,MAAM,CAACuB,MAAP,CAAc;AACzDrP,IAAAA,QAAQ,EAAE0E,cAAc,CAAC,CAAD,CADiC;AAEzDyN,IAAAA,QAAQ,EAAE1P,aAAa,IAAI,OAAO2B,UAAU,CAAC,CAAD,CAAjB,KAAyB,UAA1C,IAAwD,CAAC+I,SAFV;AAGzDrN,IAAAA,KAAK,EAAE0L,aAAa,IAAIlB,OAHiC;AAIzD1H,IAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBkG,CAAlB,EAAqB;AAC7ByB,MAAAA,oBAAoB,CAACzB,CAAC,CAACoD,MAAF,CAASpM,KAAV,CAApB;AACD,KANwD;AAOzDoB,IAAAA,WAAW,EAAE9C,QAAQ,CAAC8C,WAAD,EAAc,CAAd,CAAR,IAA4B,EAPgB;AAQzD8P,IAAAA,GAAG,EAAE7M;AARoD,GAAd,EAS1C6I,aAT0C,EAS3BwE,gBAT2B,EAST;AAClC9N,IAAAA,YAAY,EAAEA;AADoB,GATS,CAA7B,CAHY,CAzBZ,EAuCV,aAAalG,KAAK,CAACyR,aAAN,CAAoB,KAApB,EAA2B;AAC5CtO,IAAAA,SAAS,EAAE,GAAG2O,MAAH,CAAU9O,SAAV,EAAqB,aAArB,CADiC;AAE5CE,IAAAA,KAAK,EAAErD,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKuU,sBAAL,CAAd,EAA4C,EAA5C,EAAgD;AAClEQ,MAAAA,KAAK,EAAET,cAD2D;AAElEU,MAAAA,QAAQ,EAAE;AAFwD,KAAhD;AAFwB,GAA3B,CAvCH,EA6CZjB,UA7CY,EA6CAC,SA7CA,CAXA,CAVI,CAApB;AAmED,C,CAAC;;;AAGF,IAAIiB,WAAW,GAAG,aAAa,UAAUC,gBAAV,EAA4B;AACzDrV,EAAAA,SAAS,CAACoV,WAAD,EAAcC,gBAAd,CAAT;;AAEA,MAAIC,MAAM,GAAGrV,YAAY,CAACmV,WAAD,CAAzB;;AAEA,WAASA,WAAT,GAAuB;AACrB,QAAIG,KAAJ;;AAEAzV,IAAAA,eAAe,CAAC,IAAD,EAAOsV,WAAP,CAAf;;AAEAG,IAAAA,KAAK,GAAGD,MAAM,CAACE,KAAP,CAAa,IAAb,EAAmBjE,SAAnB,CAAR;AACAgE,IAAAA,KAAK,CAACjQ,SAAN,GAAkB,aAAahF,KAAK,CAACmV,SAAN,EAA/B;;AAEAF,IAAAA,KAAK,CAAC1K,KAAN,GAAc,YAAY;AACxB,UAAI0K,KAAK,CAACjQ,SAAN,CAAgB8D,OAApB,EAA6B;AAC3BmM,QAAAA,KAAK,CAACjQ,SAAN,CAAgB8D,OAAhB,CAAwByB,KAAxB;AACD;AACF,KAJD;;AAMA0K,IAAAA,KAAK,CAAC7E,IAAN,GAAa,YAAY;AACvB,UAAI6E,KAAK,CAACjQ,SAAN,CAAgB8D,OAApB,EAA6B;AAC3BmM,QAAAA,KAAK,CAACjQ,SAAN,CAAgB8D,OAAhB,CAAwBsH,IAAxB;AACD;AACF,KAJD;;AAMA,WAAO6E,KAAP;AACD;;AAEDxV,EAAAA,YAAY,CAACqV,WAAD,EAAc,CAAC;AACzBM,IAAAA,GAAG,EAAE,QADoB;AAEzB9S,IAAAA,KAAK,EAAE,SAAS+S,MAAT,GAAkB;AACvB,aAAO,aAAarV,KAAK,CAACyR,aAAN,CAAoB/O,gBAApB,EAAsC4N,MAAM,CAACuB,MAAP,CAAc,EAAd,EAAkB,KAAKlP,KAAvB,EAA8B;AACtFqC,QAAAA,SAAS,EAAE,KAAKA;AADsE,OAA9B,CAAtC,CAApB;AAGD;AANwB,GAAD,CAAd,CAAZ;;AASA,SAAO8P,WAAP;AACD,CAtC8B,CAsC7B9U,KAAK,CAACsV,SAtCuB,CAA/B;;AAwCA,eAAeR,WAAf","sourcesContent":["import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport PickerTrigger from './PickerTrigger';\nimport PickerPanel from './PickerPanel';\nimport usePickerInput from './hooks/usePickerInput';\nimport getDataOrAriaProps, { toArray, getValue, updateValues } from './utils/miscUtil';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport PanelContext from './PanelContext';\nimport { isEqual, getClosingViewDate, isSameDate, isSameWeek, isSameQuarter, formatValue, parseValue } from './utils/dateUtil';\nimport useValueTexts from './hooks/useValueTexts';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport RangeContext from './RangeContext';\nimport useRangeDisabled from './hooks/useRangeDisabled';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport useRangeViewDates from './hooks/useRangeViewDates';\nimport useHoverValue from './hooks/useHoverValue';\n\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\n  return values;\n}\n\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n  if (value) {\n    return true;\n  }\n\n  if (allowEmpty && allowEmpty[index]) {\n    return true;\n  }\n\n  if (disabled[(index + 1) % 2]) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction InnerRangePicker(props) {\n  var _classNames2, _classNames3, _classNames4;\n\n  var _props$prefixCls = props.prefixCls,\n      prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n      id = props.id,\n      style = props.style,\n      className = props.className,\n      popupStyle = props.popupStyle,\n      dropdownClassName = props.dropdownClassName,\n      transitionName = props.transitionName,\n      dropdownAlign = props.dropdownAlign,\n      getPopupContainer = props.getPopupContainer,\n      generateConfig = props.generateConfig,\n      locale = props.locale,\n      placeholder = props.placeholder,\n      autoFocus = props.autoFocus,\n      disabled = props.disabled,\n      format = props.format,\n      _props$picker = props.picker,\n      picker = _props$picker === void 0 ? 'date' : _props$picker,\n      showTime = props.showTime,\n      use12Hours = props.use12Hours,\n      _props$separator = props.separator,\n      separator = _props$separator === void 0 ? '~' : _props$separator,\n      value = props.value,\n      defaultValue = props.defaultValue,\n      defaultPickerValue = props.defaultPickerValue,\n      open = props.open,\n      defaultOpen = props.defaultOpen,\n      disabledDate = props.disabledDate,\n      _disabledTime = props.disabledTime,\n      dateRender = props.dateRender,\n      panelRender = props.panelRender,\n      ranges = props.ranges,\n      allowEmpty = props.allowEmpty,\n      allowClear = props.allowClear,\n      suffixIcon = props.suffixIcon,\n      clearIcon = props.clearIcon,\n      pickerRef = props.pickerRef,\n      inputReadOnly = props.inputReadOnly,\n      mode = props.mode,\n      renderExtraFooter = props.renderExtraFooter,\n      onChange = props.onChange,\n      onOpenChange = props.onOpenChange,\n      onPanelChange = props.onPanelChange,\n      onCalendarChange = props.onCalendarChange,\n      _onFocus = props.onFocus,\n      onBlur = props.onBlur,\n      _onOk = props.onOk,\n      components = props.components,\n      order = props.order,\n      direction = props.direction,\n      activePickerIndex = props.activePickerIndex,\n      _props$autoComplete = props.autoComplete,\n      autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete;\n  var needConfirmButton = picker === 'date' && !!showTime || picker === 'time'; // We record opened status here in case repeat open with picker\n\n  var openRecordsRef = useRef({});\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); // ============================= Misc ==============================\n\n  var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours)); // Active picker\n\n  var _useMergedState = useMergedState(0, {\n    value: activePickerIndex\n  }),\n      _useMergedState2 = _slicedToArray(_useMergedState, 2),\n      mergedActivePickerIndex = _useMergedState2[0],\n      setMergedActivePickerIndex = _useMergedState2[1]; // Operation ref\n\n\n  var operationRef = useRef(null);\n  var mergedDisabled = React.useMemo(function () {\n    if (Array.isArray(disabled)) {\n      return disabled;\n    }\n\n    return [disabled || false, disabled || false];\n  }, [disabled]); // ============================= Value =============================\n\n  var _useMergedState3 = 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      _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n      mergedValue = _useMergedState4[0],\n      setInnerValue = _useMergedState4[1]; // =========================== View Date ===========================\n  // Config view panel\n\n\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]; // ========================= Select Values =========================\n\n\n  var _useMergedState5 = useMergedState(mergedValue, {\n    postState: function postState(values) {\n      var postValues = values;\n\n      if (mergedDisabled[0] && mergedDisabled[1]) {\n        return postValues;\n      } // Fill disabled unit\n\n\n      for (var i = 0; i < 2; i += 1) {\n        if (mergedDisabled[i] && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n          postValues = updateValues(postValues, generateConfig.getNow(), i);\n        }\n      }\n\n      return postValues;\n    }\n  }),\n      _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n      selectedValue = _useMergedState6[0],\n      setSelectedValue = _useMergedState6[1]; // ============================= Modes =============================\n\n\n  var _useMergedState7 = useMergedState([picker, picker], {\n    value: mode\n  }),\n      _useMergedState8 = _slicedToArray(_useMergedState7, 2),\n      mergedModes = _useMergedState8[0],\n      setInnerModes = _useMergedState8[1];\n\n  useEffect(function () {\n    setInnerModes([picker, picker]);\n  }, [picker]);\n\n  var triggerModesChange = function triggerModesChange(modes, values) {\n    setInnerModes(modes);\n\n    if (onPanelChange) {\n      onPanelChange(values, modes);\n    }\n  }; // ========================= Disable Date ==========================\n\n\n  var _useRangeDisabled = useRangeDisabled({\n    picker: picker,\n    selectedValue: selectedValue,\n    locale: locale,\n    disabled: mergedDisabled,\n    disabledDate: disabledDate,\n    generateConfig: generateConfig\n  }, openRecordsRef.current[1], openRecordsRef.current[0]),\n      _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n      disabledStartDate = _useRangeDisabled2[0],\n      disabledEndDate = _useRangeDisabled2[1]; // ============================= Open ==============================\n\n\n  var _useMergedState9 = useMergedState(false, {\n    value: open,\n    defaultValue: defaultOpen,\n    postState: function postState(postOpen) {\n      return mergedDisabled[mergedActivePickerIndex] ? false : postOpen;\n    },\n    onChange: function onChange(newOpen) {\n      if (onOpenChange) {\n        onOpenChange(newOpen);\n      }\n\n      if (!newOpen && operationRef.current && operationRef.current.onClose) {\n        operationRef.current.onClose();\n      }\n    }\n  }),\n      _useMergedState10 = _slicedToArray(_useMergedState9, 2),\n      mergedOpen = _useMergedState10[0],\n      triggerInnerOpen = _useMergedState10[1];\n\n  var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n  var endOpen = mergedOpen && mergedActivePickerIndex === 1; // ============================= Popup =============================\n  // Popup min width\n\n  var _useState = useState(0),\n      _useState2 = _slicedToArray(_useState, 2),\n      popupMinWidth = _useState2[0],\n      setPopupMinWidth = _useState2[1];\n\n  useEffect(function () {\n    if (!mergedOpen && containerRef.current) {\n      setPopupMinWidth(containerRef.current.offsetWidth);\n    }\n  }, [mergedOpen]); // ============================ Trigger ============================\n\n  var triggerRef = React.useRef();\n\n  function _triggerOpen(newOpen, index) {\n    if (newOpen) {\n      clearTimeout(triggerRef.current);\n      openRecordsRef.current[index] = true;\n      setMergedActivePickerIndex(index);\n      triggerInnerOpen(newOpen); // Open to reset view date\n\n      if (!mergedOpen) {\n        setViewDate(null, index);\n      }\n    } else if (mergedActivePickerIndex === index) {\n      triggerInnerOpen(newOpen); // Clean up async\n      // This makes ref not quick refresh in case user open another input with blur trigger\n\n      var openRecords = openRecordsRef.current;\n      triggerRef.current = setTimeout(function () {\n        if (openRecords === openRecordsRef.current) {\n          openRecordsRef.current = {};\n        }\n      });\n    }\n  }\n\n  function triggerOpenAndFocus(index) {\n    _triggerOpen(true, index); // Use setTimeout to make sure panel DOM exists\n\n\n    setTimeout(function () {\n      var inputRef = [startInputRef, endInputRef][index];\n\n      if (inputRef.current) {\n        inputRef.current.focus();\n      }\n    }, 0);\n  }\n\n  function triggerChange(newValue, sourceIndex) {\n    var values = newValue;\n    var startValue = getValue(values, 0);\n    var endValue = getValue(values, 1); // >>>>> Format start & end values\n\n    if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n      if ( // WeekPicker only compare week\n      picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) || // QuotaPicker only compare week\n      picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) || // 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        } // Clean up cache since invalidate\n\n\n        openRecordsRef.current = _defineProperty({}, sourceIndex, true);\n      } else if (picker !== 'time' || order !== false) {\n        // Reorder when in same date\n        values = reorderValues(values, generateConfig);\n      }\n    }\n\n    setSelectedValue(values);\n    var startStr = values && values[0] ? formatValue(values[0], {\n      generateConfig: generateConfig,\n      locale: locale,\n      format: formatList[0]\n    }) : '';\n    var endStr = values && values[1] ? formatValue(values[1], {\n      generateConfig: generateConfig,\n      locale: locale,\n      format: formatList[0]\n    }) : '';\n\n    if (onCalendarChange) {\n      var info = {\n        range: sourceIndex === 0 ? 'start' : 'end'\n      };\n      onCalendarChange(values, [startStr, endStr], info);\n    } // >>>>> Trigger `onChange` event\n\n\n    var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n    var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n    var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n\n    if (canTrigger) {\n      // Trigger onChange only when value is validate\n      setInnerValue(values);\n\n      if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n        onChange(values, [startStr, endStr]);\n      }\n    } // >>>>> Open picker when\n    // Always open another picker if possible\n\n\n    var nextOpenIndex = null;\n\n    if (sourceIndex === 0 && !mergedDisabled[1]) {\n      nextOpenIndex = 1;\n    } else if (sourceIndex === 1 && !mergedDisabled[0]) {\n      nextOpenIndex = 0;\n    }\n\n    if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {\n      // Delay to focus to avoid input blur trigger expired selectedValues\n      triggerOpenAndFocus(nextOpenIndex);\n    } else {\n      _triggerOpen(false, sourceIndex);\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    /* istanbul ignore next */\n\n    /* eslint-disable no-lone-blocks */\n\n\n    {\n      warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n      return false;\n    }\n  }; // ============================= Text ==============================\n\n\n  var sharedTextHooksProps = {\n    formatList: formatList,\n    generateConfig: generateConfig,\n    locale: locale\n  };\n\n  var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n      _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n      startValueTexts = _useValueTexts2[0],\n      firstStartValueText = _useValueTexts2[1];\n\n  var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n      _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n      endValueTexts = _useValueTexts4[0],\n      firstEndValueText = _useValueTexts4[1];\n\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\n    if (inputDate && !disabledFunc(inputDate)) {\n      setSelectedValue(updateValues(selectedValue, inputDate, index));\n      setViewDate(inputDate, index);\n    }\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\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\n  var _useState3 = useState(null),\n      _useState4 = _slicedToArray(_useState3, 2),\n      rangeHoverValue = _useState4[0],\n      setRangeHoverValue = _useState4[1]; // ========================== Hover Range ==========================\n\n\n  var _useState5 = useState(null),\n      _useState6 = _slicedToArray(_useState5, 2),\n      hoverRangedValue = _useState6[0],\n      setHoverRangedValue = _useState6[1];\n\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\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\n  var onDateMouseEnter = function onDateMouseEnter(date) {\n    setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n\n    if (mergedActivePickerIndex === 0) {\n      onStartEnter(date);\n    } else {\n      onEndEnter(date);\n    }\n  };\n\n  var onDateMouseLeave = function onDateMouseLeave() {\n    setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n\n    if (mergedActivePickerIndex === 0) {\n      onStartLeave();\n    } else {\n      onEndLeave();\n    }\n  }; // ============================= Input =============================\n\n\n  var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n    return {\n      blurToCancel: needConfirmButton,\n      forwardKeyDown: forwardKeyDown,\n      onBlur: onBlur,\n      isClickOutside: function isClickOutside(target) {\n        return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current], target);\n      },\n      onFocus: function onFocus(e) {\n        setMergedActivePickerIndex(index);\n\n        if (_onFocus) {\n          _onFocus(e);\n        }\n      },\n      triggerOpen: function triggerOpen(newOpen) {\n        _triggerOpen(newOpen, index);\n      },\n      onSubmit: function onSubmit() {\n        triggerChange(selectedValue, index);\n        resetText();\n      },\n      onCancel: function onCancel() {\n        _triggerOpen(false, index);\n\n        setSelectedValue(mergedValue);\n        resetText();\n      }\n    };\n  };\n\n  var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n    open: startOpen,\n    value: startText\n  })),\n      _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n      startInputProps = _usePickerInput2[0],\n      _usePickerInput2$ = _usePickerInput2[1],\n      startFocused = _usePickerInput2$.focused,\n      startTyping = _usePickerInput2$.typing;\n\n  var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n    open: endOpen,\n    value: endText\n  })),\n      _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n      endInputProps = _usePickerInput4[0],\n      _usePickerInput4$ = _usePickerInput4[1],\n      endFocused = _usePickerInput4$.focused,\n      endTyping = _usePickerInput4$.typing; // ========================== Click Picker ==========================\n\n\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 (!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\n  var onPickerMouseDown = function onPickerMouseDown(e) {\n    // shouldn't affect input elements if picker is active\n    if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n      e.preventDefault();\n    }\n  }; // ============================= Sync ==============================\n  // Close should sync back with text value\n\n\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\n      if (!startValueTexts.length || startValueTexts[0] === '') {\n        triggerStartTextChange('');\n      } else if (firstStartValueText !== startText) {\n        resetStartText();\n      }\n\n      if (!endValueTexts.length || endValueTexts[0] === '') {\n        triggerEndTextChange('');\n      } else if (firstEndValueText !== endText) {\n        resetEndText();\n      }\n    }\n  }, [mergedOpen, startValueTexts, endValueTexts]); // Sync innerValue with control mode\n\n  useEffect(function () {\n    setSelectedValue(mergedValue);\n  }, [startStr, endStr]); // ============================ Warning ============================\n\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  } // ============================ Private ============================\n\n\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\n        if (endInputRef.current) {\n          endInputRef.current.blur();\n        }\n      }\n    };\n  } // ============================ Ranges =============================\n\n\n  var rangeLabels = Object.keys(ranges || {});\n  var rangeList = rangeLabels.map(function (label) {\n    var range = ranges[label];\n    var newValues = typeof range === 'function' ? range() : range;\n    return {\n      label: label,\n      onClick: function onClick() {\n        triggerChange(newValues, null);\n\n        _triggerOpen(false, mergedActivePickerIndex);\n      },\n      onMouseEnter: function onMouseEnter() {\n        setRangeHoverValue(newValues);\n      },\n      onMouseLeave: function onMouseLeave() {\n        setRangeHoverValue(null);\n      }\n    };\n  }); // ============================= Panel =============================\n\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\n    if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n      panelHoverRangedValue = hoverRangedValue;\n    }\n\n    var panelShowTime = showTime;\n\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\n    var panelDateRender = null;\n\n    if (dateRender) {\n      panelDateRender = function panelDateRender(date, today) {\n        return dateRender(date, today, {\n          range: mergedActivePickerIndex ? 'end' : 'start'\n        });\n      };\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, Object.assign({}, props, panelProps, {\n      dateRender: 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\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        triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n        var viewDate = date;\n\n        if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n          viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n        }\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\n  if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current) {\n    // Arrow offset\n    arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n\n    if (panelDivRef.current.offsetWidth && arrowLeft > panelDivRef.current.offsetWidth) {\n      panelLeft = arrowLeft;\n    }\n  }\n\n  var arrowPositionStyle = direction === 'rtl' ? {\n    right: arrowLeft\n  } : {\n    left: arrowLeft\n  };\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: rangeList,\n      onOk: function onOk() {\n        if (getValue(selectedValue, mergedActivePickerIndex)) {\n          // triggerChangeOld(selectedValue);\n          triggerChange(selectedValue, mergedActivePickerIndex);\n\n          if (_onOk) {\n            _onOk(selectedValue);\n          }\n        }\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\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\n    var mergedNodes = /*#__PURE__*/React.createElement(React.Fragment, 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\n    if (panelRender) {\n      mergedNodes = panelRender(mergedNodes);\n    }\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\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    className: \"\".concat(prefixCls, \"-range-arrow\"),\n    style: arrowPositionStyle\n  }), renderPanels()); // ============================= Icons =============================\n\n  var suffixNode;\n\n  if (suffixIcon) {\n    suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-suffix\")\n    }, suffixIcon);\n  }\n\n  var clearNode;\n\n  if (allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1])) {\n    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\n        if (!mergedDisabled[0]) {\n          values = updateValues(values, null, 0);\n        }\n\n        if (!mergedDisabled[1]) {\n          values = updateValues(values, null, 1);\n        }\n\n        triggerChange(values, null);\n\n        _triggerOpen(false, mergedActivePickerIndex);\n      },\n      className: \"\".concat(prefixCls, \"-clear\")\n    }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-clear-btn\")\n    }));\n  }\n\n  var inputSharedProps = {\n    size: getInputSize(picker, formatList[0], generateConfig)\n  };\n  var activeBarLeft = 0;\n  var activeBarWidth = 0;\n\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\n  var activeBarPositionStyle = direction === 'rtl' ? {\n    right: activeBarLeft\n  } : {\n    left: activeBarLeft\n  }; // ============================ Return =============================\n\n  var onContextSelect = function onContextSelect(date, type) {\n    var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n\n    if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n      // triggerChange will also update selected values\n      triggerChange(values, mergedActivePickerIndex); // clear hover value style\n\n      if (mergedActivePickerIndex === 0) {\n        onStartLeave();\n      } else {\n        onEndLeave();\n      }\n    } else {\n      setSelectedValue(values);\n    }\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\", Object.assign({\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    onMouseDown: onPickerMouseDown\n  }, getDataOrAriaProps(props)), /*#__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\", Object.assign({\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\", Object.assign({\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, clearNode)));\n} // Wrap with class component to enable pass generic with instance method\n\n\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n  _inherits(RangePicker, _React$Component);\n\n  var _super = _createSuper(RangePicker);\n\n  function RangePicker() {\n    var _this;\n\n    _classCallCheck(this, RangePicker);\n\n    _this = _super.apply(this, arguments);\n    _this.pickerRef = /*#__PURE__*/React.createRef();\n\n    _this.focus = function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.focus();\n      }\n    };\n\n    _this.blur = function () {\n      if (_this.pickerRef.current) {\n        _this.pickerRef.current.blur();\n      }\n    };\n\n    return _this;\n  }\n\n  _createClass(RangePicker, [{\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(InnerRangePicker, Object.assign({}, this.props, {\n        pickerRef: this.pickerRef\n      }));\n    }\n  }]);\n\n  return RangePicker;\n}(React.Component);\n\nexport default RangePicker;"]},"metadata":{},"sourceType":"module"}