{"version":3,"file":"DecadeBody.mjs","sources":["../../../../../../../../packages/vue-components/vc-picker/src/panels/DecadePanel/DecadeBody.tsx"],"sourcesContent":["import type { GenerateConfig } from '../../generate';\nimport useMergeProps from '../../hooks/useMergeProps';\nimport PanelBody from '../PanelBody';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from './constant';\n\nexport const DECADE_COL_COUNT = 3;\nconst DECADE_ROW_COUNT = 4;\n\nexport interface YearBodyProps<DateType> {\n  prefixCls: string;\n  generateConfig: GenerateConfig<DateType>;\n  viewDate: DateType;\n  disabledDate?: (date: DateType) => boolean;\n  onSelect: (value: DateType) => void;\n}\n\nfunction DecadeBody<DateType>(_props: YearBodyProps<DateType>) {\n  const props = useMergeProps(_props);\n  const DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n  const { prefixCls, viewDate, generateConfig } = props;\n\n  const cellPrefixCls = `${prefixCls}-cell`;\n\n  const yearNumber = generateConfig.getYear(viewDate);\n  const decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n\n  const startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n  const endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n\n  const baseDecadeYear = generateConfig.setYear(\n    viewDate,\n    startDecadeYear\n      - Math.ceil(\n        (DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2,\n      ),\n  );\n\n  const getCellClassName = (date: DateType) => {\n    const startDecadeNumber = generateConfig.getYear(date);\n    const endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n\n    return {\n      [`${cellPrefixCls}-in-view`]:\n        startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear,\n      [`${cellPrefixCls}-selected`]: startDecadeNumber === decadeYearNumber,\n    };\n  };\n\n  return (\n    <PanelBody\n      {...props}\n      rowNum={DECADE_ROW_COUNT}\n      colNum={DECADE_COL_COUNT}\n      baseDate={baseDecadeYear}\n      getCellText={(date) => {\n        const startDecadeNumber = generateConfig.getYear(date);\n        return `${startDecadeNumber}-${startDecadeNumber + DECADE_UNIT_DIFF_DES}`;\n      }}\n      getCellClassName={getCellClassName}\n      getCellDate={(date, offset) => generateConfig.addYear(date, offset * DECADE_UNIT_DIFF)}\n    />\n  );\n}\n\nDecadeBody.displayName = 'DecadeBody';\nDecadeBody.inheritAttrs = false;\n\nexport default DecadeBody;\n"],"names":["DECADE_COL_COUNT","DECADE_ROW_COUNT","DecadeBody","_props","props","useMergeProps","DECADE_UNIT_DIFF_DES","DECADE_UNIT_DIFF","prefixCls","viewDate","generateConfig","cellPrefixCls","yearNumber","getYear","decadeYearNumber","Math","floor","startDecadeYear","DECADE_DISTANCE_COUNT","endDecadeYear","baseDecadeYear","setYear","ceil","getCellClassName","date","startDecadeNumber","endDecadeNumber","_createVNode","PanelBody","getCellDate","offset","addYear","displayName","inheritAttrs"],"mappings":";;;;;AAKO,MAAMA,gBAAmB,GAAA,EAAA;AAChC,MAAMC,gBAAmB,GAAA,CAAA,CAAA;AAUzB,SAASC,WAAqBC,MAAiC,EAAA;AAC7D,EAAMC,MAAAA,KAAAA,GAAQC,cAAcF,MAAM,CAAA,CAAA;AAClC,EAAA,MAAMG,uBAAuBC,gBAAmB,GAAA,CAAA,CAAA;AAChD,EAAM,MAAA;AAAA,IAAEC,SAAAA;AAAAA,IAAWC,QAAAA;AAAAA,IAAUC,cAAAA;AAAAA,GAAmBN,GAAAA,KAAAA,CAAAA;AAEhD,EAAMO,MAAAA,aAAAA,GAAiB,GAAEH,SAAU,CAAA,KAAA,CAAA,CAAA;AAEnC,EAAMI,MAAAA,UAAAA,GAAaF,cAAeG,CAAAA,OAAAA,CAAQJ,QAAQ,CAAA,CAAA;AAClD,EAAA,MAAMK,gBAAmBC,GAAAA,IAAAA,CAAKC,KAAMJ,CAAAA,UAAAA,GAAaL,gBAAgB,CAAIA,GAAAA,gBAAAA,CAAAA;AAErE,EAAA,MAAMU,eAAkBF,GAAAA,IAAAA,CAAKC,KAAMJ,CAAAA,UAAAA,GAAaM,qBAAqB,CAAIA,GAAAA,qBAAAA,CAAAA;AACzE,EAAMC,MAAAA,aAAAA,GAAgBF,kBAAkBC,qBAAwB,GAAA,CAAA,CAAA;AAEhE,EAAA,MAAME,cAAiBV,GAAAA,cAAAA,CAAeW,OACpCZ,CAAAA,QAAAA,EACAQ,eACIF,GAAAA,IAAAA,CAAKO,IACJtB,CAAAA,CAAAA,gBAAAA,GAAmBC,gBAAmBM,GAAAA,gBAAAA,GAAmBW,qBAAyB,IAAA,CACrF,CACJ,CAAA,CAAA;AAEA,EAAA,MAAMK,mBAAoBC,CAAmB,IAAA,KAAA;AAC3C,IAAMC,MAAAA,iBAAAA,GAAoBf,cAAeG,CAAAA,OAAAA,CAAQW,IAAI,CAAA,CAAA;AACrD,IAAA,MAAME,kBAAkBD,iBAAoBnB,GAAAA,oBAAAA,CAAAA;AAE5C,IAAO,OAAA;AAAA,MACL,CAAE,CAAEK,EAAAA,aAAc,UAAS,GACzBM,eAAAA,IAAmBQ,qBAAqBC,eAAmBP,IAAAA,aAAAA;AAAAA,MAC7D,CAAE,CAAA,EAAER,aAAc,CAAA,SAAA,CAAU,GAAGc,iBAAsBX,KAAAA,gBAAAA;AAAAA,KACvD,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,OAAAa,YAAAC,SAAA,EAAA;AAAA,IAAA,GAEQxB,KAAAA;AAAAA,IAAK,QACDH,EAAAA,gBAAAA;AAAAA,IAAgB,QAChBD,EAAAA,gBAAAA;AAAAA,IAAgB,UACdoB,EAAAA,cAAAA;AAAAA,IAAc,eACVI,CAAS,IAAA,KAAA;AACrB,MAAMC,MAAAA,iBAAAA,GAAoBf,cAAeG,CAAAA,OAAAA,CAAQW,IAAI,CAAA,CAAA;AACrD,MAAA,OAAQ,CAAEC,EAAAA,iBAAkB,CAAGA,CAAAA,EAAAA,iBAAAA,GAAoBnB,oBAAqB,CAAA,CAAA,CAAA;AAAA,KAC1E;AAAA,IAAC,kBACiBiB,EAAAA,gBAAAA;AAAAA,IAAgB,aAAA,EACrBM,CAACL,IAAMM,EAAAA,MAAAA,KAAWpB,eAAeqB,OAAQP,CAAAA,IAAAA,EAAMM,SAASvB,gBAAgB,CAAA;AAAA,KAAC,IAAA,CAAA,CAAA;AAG5F,CAAA;AAEAL,UAAAA,CAAW8B,WAAc,GAAA,YAAA,CAAA;AACzB9B,UAAAA,CAAW+B,YAAe,GAAA,KAAA;;;;"}