{"version":3,"file":"DateHeader.mjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/DatePanel/DateHeader.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { GenerateConfig } from '../../generate';\nimport type { Locale } from '../../interface';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport { useInjectPanel } from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nimport Header from '../Header';\n\nexport interface DateHeaderProps<DateType> {\n  prefixCls: string;\n  viewDate: DateType;\n  value?: DateType | null;\n  locale: Locale;\n  generateConfig: GenerateConfig<DateType>;\n\n  onPrevYear: () => void;\n  onNextYear: () => void;\n  onPrevMonth: () => void;\n  onNextMonth: () => void;\n  onYearClick: () => void;\n  onMonthClick: () => void;\n}\n\nfunction DateHeader<DateType>(_props: DateHeaderProps<DateType>) {\n  const props = useMergeProps(_props);\n  const {\n    prefixCls,\n    generateConfig,\n    locale,\n    viewDate,\n    onNextMonth,\n    onPrevMonth,\n    onNextYear,\n    onPrevYear,\n    onYearClick,\n    onMonthClick,\n  } = props;\n\n  const { hideHeader } = useInjectPanel();\n  if (hideHeader.value)\n    return null;\n\n  const headerPrefixCls = `${prefixCls}-header`;\n\n  const monthsLocale: string[]\n    = locale.shortMonths\n    || (generateConfig.locale.getShortMonths\n      ? generateConfig.locale.getShortMonths(locale.locale)\n      : []);\n\n  const month = generateConfig.getMonth(viewDate);\n\n  // =================== Month & Year ===================\n  const yearNode: VueNode = (\n    <button\n      type=\"button\"\n      key=\"year\"\n      onClick={onYearClick}\n      tabindex={-1}\n      class={`${prefixCls}-year-btn`}\n    >\n      {formatValue(viewDate, {\n        locale,\n        format: locale.yearFormat,\n        generateConfig,\n      })}\n    </button>\n  );\n  const monthNode: VueNode = (\n    <button\n      type=\"button\"\n      key=\"month\"\n      onClick={onMonthClick}\n      tabindex={-1}\n      class={`${prefixCls}-month-btn`}\n    >\n      {locale.monthFormat\n        ? formatValue(viewDate, {\n            locale,\n            format: locale.monthFormat,\n            generateConfig,\n          })\n        : monthsLocale[month]}\n    </button>\n  );\n\n  const monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n\n  return (\n    <Header\n      {...props}\n      prefixCls={headerPrefixCls}\n      onSuperPrev={onPrevYear}\n      onPrev={onPrevMonth}\n      onNext={onNextMonth}\n      onSuperNext={onNextYear}\n    >\n      {monthYearNodes}\n    </Header>\n  );\n}\n\nDateHeader.displayName = 'DateHeader';\nDateHeader.inheritAttrs = false;\nexport default DateHeader;\n"],"names":["DateHeader","_props","props","useMergeProps","prefixCls","generateConfig","locale","viewDate","onNextMonth","onPrevMonth","onNextYear","onPrevYear","onYearClick","onMonthClick","hideHeader","useInjectPanel","value","headerPrefixCls","monthsLocale","shortMonths","getShortMonths","month","getMonth","yearNode","_createVNode","formatValue","format","yearFormat","monthNode","monthFormat","monthYearNodes","monthBeforeYear","Header","default","displayName","inheritAttrs"],"mappings":";;;;;;AAuBA,SAASA,WAAqBC,MAAmC,EAAA;AAC/D,EAAMC,MAAAA,KAAAA,GAAQC,cAAcF,MAAM,CAAA,CAAA;AAClC,EAAM,MAAA;AAAA,IACJG,SAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,MAAAA;AAAAA,IACAC,QAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACAC,YAAAA;AAAAA,GACEX,GAAAA,KAAAA,CAAAA;AAEJ,EAAM,MAAA;AAAA,IAAEY,UAAAA;AAAAA,MAAeC,cAAe,EAAA,CAAA;AACtC,EAAA,IAAID,UAAWE,CAAAA,KAAAA;AACb,IAAO,OAAA,IAAA,CAAA;AAET,EAAMC,MAAAA,eAAAA,GAAmB,GAAEb,SAAU,CAAA,OAAA,CAAA,CAAA;AAErC,EAAA,MAAMc,YACFZ,GAAAA,MAAAA,CAAOa,WACLd,KAAAA,cAAAA,CAAeC,MAAOc,CAAAA,cAAAA,GACtBf,cAAeC,CAAAA,MAAAA,CAAOc,cAAed,CAAAA,MAAAA,CAAOA,MAAM,CAAA,GAClD,EAAA,CAAA,CAAA;AAEN,EAAMe,MAAAA,KAAAA,GAAQhB,cAAeiB,CAAAA,QAAAA,CAASf,QAAQ,CAAA,CAAA;AAG9C,EAAMgB,MAAAA,QAAAA,GAAiBC,YAAA,QAAA,EAAA;AAAA,IAAA,MAAA,EAAA,QAAA;AAAA,IAAA,KAAA,EAAA,MAAA;AAAA,IAAA,SAIVZ,EAAAA,WAAAA;AAAAA,IAAW,UACV,EAAA,CAAA,CAAA;AAAA,IAAE,OAAA,EACJ,GAAER,SAAU,CAAA,SAAA,CAAA;AAAA,GAAU,EAE7BqB,CAAAA,WAAAA,CAAYlB,QAAU,EAAA;AAAA,IACrBD,MAAAA;AAAAA,IACAoB,QAAQpB,MAAOqB,CAAAA,UAAAA;AAAAA,IACftB,cAAAA;AAAAA,GACD,CAAC,CAEL,CAAA,CAAA;AACD,EAAMuB,MAAAA,SAAAA,GAAkBJ,YAAA,QAAA,EAAA;AAAA,IAAA,MAAA,EAAA,QAAA;AAAA,IAAA,KAAA,EAAA,OAAA;AAAA,IAAA,SAIXX,EAAAA,YAAAA;AAAAA,IAAY,UACX,EAAA,CAAA,CAAA;AAAA,IAAE,OAAA,EACJ,GAAET,SAAU,CAAA,UAAA,CAAA;AAAA,GAAW,EAAA,CAE9BE,MAAOuB,CAAAA,WAAAA,GACJJ,YAAYlB,QAAU,EAAA;AAAA,IACpBD,MAAAA;AAAAA,IACAoB,QAAQpB,MAAOuB,CAAAA,WAAAA;AAAAA,IACfxB,cAAAA;AAAAA,GACD,CAAA,GACDa,YAAaG,CAAAA,KAAK,CAAC,CAE1B,CAAA,CAAA;AAED,EAAMS,MAAAA,cAAAA,GAAiBxB,OAAOyB,eAAkB,GAAA,CAACH,WAAWL,QAAQ,CAAA,GAAI,CAACA,QAAAA,EAAUK,SAAS,CAAA,CAAA;AAE5F,EAAA,OAAAJ,YAAAQ,MAAA,EAAA;AAAA,IAAA,GAEQ9B,KAAAA;AAAAA,IAAK,WACEe,EAAAA,eAAAA;AAAAA,IAAe,aACbN,EAAAA,UAAAA;AAAAA,IAAU,QACfF,EAAAA,WAAAA;AAAAA,IAAW,QACXD,EAAAA,WAAAA;AAAAA,IAAW,aACNE,EAAAA,UAAAA;AAAAA,GAAU,EAAA;AAAA,IAAAuB,OAAAA,EAAAA,MAAA,CAEtBH,cAAc,CAAA;AAAA,GAAA,CAAA,CAAA;AAGrB,CAAA;AAEA9B,UAAAA,CAAWkC,WAAc,GAAA,YAAA,CAAA;AACzBlC,UAAAA,CAAWmC,YAAe,GAAA,KAAA;;;;"}