{"ast":null,"code":"\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { Button, Group } from '../radio';\nimport Select from '../select';\nconst YearSelectOffset = 10;\nconst YearSelectTotal = 20;\nfunction YearSelect(props) {\n  const {\n    fullscreen,\n    validRange,\n    generateConfig,\n    locale,\n    prefixCls,\n    value,\n    onChange,\n    divRef\n  } = props;\n  const year = generateConfig.getYear(value || generateConfig.getNow());\n  let start = year - YearSelectOffset;\n  let end = start + YearSelectTotal;\n  if (validRange) {\n    start = generateConfig.getYear(validRange[0]);\n    end = generateConfig.getYear(validRange[1]) + 1;\n  }\n  const suffix = locale && locale.year === '年' ? '年' : '';\n  const options = [];\n  for (let index = start; index < end; index++) {\n    options.push({\n      label: `${index}${suffix}`,\n      value: index\n    });\n  }\n  return /*#__PURE__*/React.createElement(Select, {\n    size: fullscreen ? undefined : 'small',\n    options: options,\n    value: year,\n    className: `${prefixCls}-year-select`,\n    onChange: numYear => {\n      let newDate = generateConfig.setYear(value, numYear);\n      if (validRange) {\n        const [startDate, endDate] = validRange;\n        const newYear = generateConfig.getYear(newDate);\n        const newMonth = generateConfig.getMonth(newDate);\n        if (newYear === generateConfig.getYear(endDate) && newMonth > generateConfig.getMonth(endDate)) {\n          newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(endDate));\n        }\n        if (newYear === generateConfig.getYear(startDate) && newMonth < generateConfig.getMonth(startDate)) {\n          newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(startDate));\n        }\n      }\n      onChange(newDate);\n    },\n    getPopupContainer: () => divRef.current\n  });\n}\nfunction MonthSelect(props) {\n  const {\n    prefixCls,\n    fullscreen,\n    validRange,\n    value,\n    generateConfig,\n    locale,\n    onChange,\n    divRef\n  } = props;\n  const month = generateConfig.getMonth(value || generateConfig.getNow());\n  let start = 0;\n  let end = 11;\n  if (validRange) {\n    const [rangeStart, rangeEnd] = validRange;\n    const currentYear = generateConfig.getYear(value);\n    if (generateConfig.getYear(rangeEnd) === currentYear) {\n      end = generateConfig.getMonth(rangeEnd);\n    }\n    if (generateConfig.getYear(rangeStart) === currentYear) {\n      start = generateConfig.getMonth(rangeStart);\n    }\n  }\n  const months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);\n  const options = [];\n  for (let index = start; index <= end; index += 1) {\n    options.push({\n      label: months[index],\n      value: index\n    });\n  }\n  return /*#__PURE__*/React.createElement(Select, {\n    size: fullscreen ? undefined : 'small',\n    className: `${prefixCls}-month-select`,\n    value: month,\n    options: options,\n    onChange: newMonth => {\n      onChange(generateConfig.setMonth(value, newMonth));\n    },\n    getPopupContainer: () => divRef.current\n  });\n}\nfunction ModeSwitch(props) {\n  const {\n    prefixCls,\n    locale,\n    mode,\n    fullscreen,\n    onModeChange\n  } = props;\n  return /*#__PURE__*/React.createElement(Group, {\n    onChange: _ref => {\n      let {\n        target: {\n          value\n        }\n      } = _ref;\n      onModeChange(value);\n    },\n    value: mode,\n    size: fullscreen ? undefined : 'small',\n    className: `${prefixCls}-mode-switch`\n  }, /*#__PURE__*/React.createElement(Button, {\n    value: \"month\"\n  }, locale.month), /*#__PURE__*/React.createElement(Button, {\n    value: \"year\"\n  }, locale.year));\n}\nfunction CalendarHeader(props) {\n  const {\n    prefixCls,\n    fullscreen,\n    mode,\n    onChange,\n    onModeChange\n  } = props;\n  const divRef = React.useRef(null);\n  const formItemInputContext = useContext(FormItemInputContext);\n  const mergedFormItemInputContext = useMemo(() => Object.assign(Object.assign({}, formItemInputContext), {\n    isFormItemInput: false\n  }), [formItemInputContext]);\n  const sharedProps = Object.assign(Object.assign({}, props), {\n    fullscreen,\n    divRef\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-header`,\n    ref: divRef\n  }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n    value: mergedFormItemInputContext\n  }, /*#__PURE__*/React.createElement(YearSelect, Object.assign({}, sharedProps, {\n    onChange: v => {\n      onChange(v, 'year');\n    }\n  })), mode === 'month' && /*#__PURE__*/React.createElement(MonthSelect, Object.assign({}, sharedProps, {\n    onChange: v => {\n      onChange(v, 'month');\n    }\n  }))), /*#__PURE__*/React.createElement(ModeSwitch, Object.assign({}, sharedProps, {\n    onModeChange: onModeChange\n  })));\n}\nexport default CalendarHeader;","map":{"version":3,"names":["React","useContext","useMemo","FormItemInputContext","Button","Group","Select","YearSelectOffset","YearSelectTotal","YearSelect","props","fullscreen","validRange","generateConfig","locale","prefixCls","value","onChange","divRef","year","getYear","getNow","start","end","suffix","options","index","push","label","createElement","size","undefined","className","numYear","newDate","setYear","startDate","endDate","newYear","newMonth","getMonth","setMonth","getPopupContainer","current","MonthSelect","month","rangeStart","rangeEnd","currentYear","months","shortMonths","getShortMonths","ModeSwitch","mode","onModeChange","_ref","target","CalendarHeader","useRef","formItemInputContext","mergedFormItemInputContext","Object","assign","isFormItemInput","sharedProps","ref","Provider","v"],"sources":["/var/www/gavt/node_modules/antd/es/calendar/Header.js"],"sourcesContent":["\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { Button, Group } from '../radio';\nimport Select from '../select';\nconst YearSelectOffset = 10;\nconst YearSelectTotal = 20;\nfunction YearSelect(props) {\n  const {\n    fullscreen,\n    validRange,\n    generateConfig,\n    locale,\n    prefixCls,\n    value,\n    onChange,\n    divRef\n  } = props;\n  const year = generateConfig.getYear(value || generateConfig.getNow());\n  let start = year - YearSelectOffset;\n  let end = start + YearSelectTotal;\n  if (validRange) {\n    start = generateConfig.getYear(validRange[0]);\n    end = generateConfig.getYear(validRange[1]) + 1;\n  }\n  const suffix = locale && locale.year === '年' ? '年' : '';\n  const options = [];\n  for (let index = start; index < end; index++) {\n    options.push({\n      label: `${index}${suffix}`,\n      value: index\n    });\n  }\n  return /*#__PURE__*/React.createElement(Select, {\n    size: fullscreen ? undefined : 'small',\n    options: options,\n    value: year,\n    className: `${prefixCls}-year-select`,\n    onChange: numYear => {\n      let newDate = generateConfig.setYear(value, numYear);\n      if (validRange) {\n        const [startDate, endDate] = validRange;\n        const newYear = generateConfig.getYear(newDate);\n        const newMonth = generateConfig.getMonth(newDate);\n        if (newYear === generateConfig.getYear(endDate) && newMonth > generateConfig.getMonth(endDate)) {\n          newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(endDate));\n        }\n        if (newYear === generateConfig.getYear(startDate) && newMonth < generateConfig.getMonth(startDate)) {\n          newDate = generateConfig.setMonth(newDate, generateConfig.getMonth(startDate));\n        }\n      }\n      onChange(newDate);\n    },\n    getPopupContainer: () => divRef.current\n  });\n}\nfunction MonthSelect(props) {\n  const {\n    prefixCls,\n    fullscreen,\n    validRange,\n    value,\n    generateConfig,\n    locale,\n    onChange,\n    divRef\n  } = props;\n  const month = generateConfig.getMonth(value || generateConfig.getNow());\n  let start = 0;\n  let end = 11;\n  if (validRange) {\n    const [rangeStart, rangeEnd] = validRange;\n    const currentYear = generateConfig.getYear(value);\n    if (generateConfig.getYear(rangeEnd) === currentYear) {\n      end = generateConfig.getMonth(rangeEnd);\n    }\n    if (generateConfig.getYear(rangeStart) === currentYear) {\n      start = generateConfig.getMonth(rangeStart);\n    }\n  }\n  const months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);\n  const options = [];\n  for (let index = start; index <= end; index += 1) {\n    options.push({\n      label: months[index],\n      value: index\n    });\n  }\n  return /*#__PURE__*/React.createElement(Select, {\n    size: fullscreen ? undefined : 'small',\n    className: `${prefixCls}-month-select`,\n    value: month,\n    options: options,\n    onChange: newMonth => {\n      onChange(generateConfig.setMonth(value, newMonth));\n    },\n    getPopupContainer: () => divRef.current\n  });\n}\nfunction ModeSwitch(props) {\n  const {\n    prefixCls,\n    locale,\n    mode,\n    fullscreen,\n    onModeChange\n  } = props;\n  return /*#__PURE__*/React.createElement(Group, {\n    onChange: _ref => {\n      let {\n        target: {\n          value\n        }\n      } = _ref;\n      onModeChange(value);\n    },\n    value: mode,\n    size: fullscreen ? undefined : 'small',\n    className: `${prefixCls}-mode-switch`\n  }, /*#__PURE__*/React.createElement(Button, {\n    value: \"month\"\n  }, locale.month), /*#__PURE__*/React.createElement(Button, {\n    value: \"year\"\n  }, locale.year));\n}\nfunction CalendarHeader(props) {\n  const {\n    prefixCls,\n    fullscreen,\n    mode,\n    onChange,\n    onModeChange\n  } = props;\n  const divRef = React.useRef(null);\n  const formItemInputContext = useContext(FormItemInputContext);\n  const mergedFormItemInputContext = useMemo(() => Object.assign(Object.assign({}, formItemInputContext), {\n    isFormItemInput: false\n  }), [formItemInputContext]);\n  const sharedProps = Object.assign(Object.assign({}, props), {\n    fullscreen,\n    divRef\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-header`,\n    ref: divRef\n  }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n    value: mergedFormItemInputContext\n  }, /*#__PURE__*/React.createElement(YearSelect, Object.assign({}, sharedProps, {\n    onChange: v => {\n      onChange(v, 'year');\n    }\n  })), mode === 'month' && /*#__PURE__*/React.createElement(MonthSelect, Object.assign({}, sharedProps, {\n    onChange: v => {\n      onChange(v, 'month');\n    }\n  }))), /*#__PURE__*/React.createElement(ModeSwitch, Object.assign({}, sharedProps, {\n    onModeChange: onModeChange\n  })));\n}\nexport default CalendarHeader;"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}