{"version":3,"file":"date-panel.vue2.mjs","sources":["../../../../../../../packages/components/date-picker/src/panels/date-panel.vue"],"sourcesContent":["<script lang=\"ts\">\n  import { computed, defineComponent, ref, toRefs, watch } from 'vue'\n  import { getNamespace } from '../../../../utils/global-config'\n  import { diffOfMonth, dateFormat, diffOfYear, compareMonth } from '../utils'\n  import type { DateCell } from '../types'\n  import { useDateRows } from '../hooks/use-date-rows'\n  import PanelBody from './layout/body.vue'\n  import PanelHeader from './layout/header.vue'\n  import PanelWeek from './layout/week.vue'\n\n  export default defineComponent({\n    name: 'DatePanel',\n    components: {\n      PanelHeader,\n      PanelBody,\n      PanelWeek\n    },\n    props: {\n      dayStartOfWeek: {\n        type: Number,\n        default: 0\n      },\n      modelValue: {\n        type: Date,\n        default: undefined\n      },\n      disabledDate: {\n        type: Function,\n        default: undefined\n      }\n    },\n    emits: ['update:modelValue'],\n    setup(props, { emit }) {\n      const ns = getNamespace('date-picker')\n\n      const date = ref<Date>()\n      const { dayStartOfWeek, disabledDate } = toRefs(props)\n      const dateModel = computed(() => (props.modelValue ? [props.modelValue] : []))\n      const { weeks, rows } = useDateRows({\n        dayStartOfWeek,\n        date,\n        dateModel,\n        disabledDate\n      })\n\n      const headerContent = computed(() => {\n        return dateFormat(date.value, 'yyyy 年 M 月')\n      })\n\n      const handleYearChange = (count: number) => {\n        date.value = diffOfYear(date.value!, count)\n      }\n\n      const handleMonthChange = (count: number) => {\n        date.value = diffOfMonth(date.value!, count)\n      }\n\n      const handleCellClick = (cell: DateCell) => {\n        emit('update:modelValue', cell.date)\n      }\n\n      // 同步选中状态\n      watch(\n        () => props.modelValue,\n        (newDate) => {\n          const d = newDate || new Date()\n          const ret = compareMonth(d, date.value)\n          if (ret) {\n            date.value = ret\n          }\n        },\n        { immediate: true }\n      )\n\n      return {\n        ns,\n        weeks,\n        rows,\n        headerContent,\n        handleYearChange,\n        handleMonthChange,\n        handleCellClick\n      }\n    }\n  })\n</script>\n\n<template>\n  <PanelHeader\n    :content=\"headerContent\"\n    @prev-super=\"handleYearChange(-1)\"\n    @next-super=\"handleYearChange(1)\"\n    @prev=\"handleMonthChange(-1)\"\n    @next=\"handleMonthChange(1)\"\n  />\n  <PanelWeek :weeks=\"weeks\" />\n  <PanelBody :rows=\"rows\" @on-cell-click=\"handleCellClick\">\n    <template #cell=\"scoped\">\n      <slot name=\"cell\" v-bind=\"scoped\"></slot>\n    </template>\n  </PanelBody>\n</template>\n"],"names":[],"mappings":";;;;;;;;AAUE,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,WAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,WAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,GACF;AAAA,EACA,KAAO,EAAA;AAAA,IACL,cAAgB,EAAA;AAAA,MACd,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,CAAA;AAAA,KACX;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA,IAAA;AAAA,MACN,OAAS,EAAA,KAAA,CAAA;AAAA,KACX;AAAA,IACA,YAAc,EAAA;AAAA,MACZ,IAAM,EAAA,QAAA;AAAA,MACN,OAAS,EAAA,KAAA,CAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,KAAA,EAAO,CAAC,mBAAmB,CAAA;AAAA,EAC3B,KAAM,CAAA,KAAA,EAAO,EAAE,IAAA,EAAQ,EAAA;AACrB,IAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA,CAAA;AAErC,IAAA,MAAM,OAAO,GAAU,EAAA,CAAA;AACvB,IAAA,MAAM,EAAE,cAAA,EAAgB,YAAa,EAAA,GAAI,OAAO,KAAK,CAAA,CAAA;AACrD,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,MAAO,KAAM,CAAA,UAAA,GAAa,CAAC,KAAM,CAAA,UAAU,CAAI,GAAA,EAAG,CAAA,CAAA;AAC7E,IAAA,MAAM,EAAE,KAAA,EAAO,IAAK,EAAA,GAAI,WAAY,CAAA;AAAA,MAClC,cAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAO,OAAA,UAAA,CAAW,IAAK,CAAA,KAAA,EAAO,sBAAY,CAAA,CAAA;AAAA,KAC3C,CAAA,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmB,CAAC,KAAkB,KAAA;AAC1C,MAAA,IAAA,CAAK,KAAQ,GAAA,UAAA,CAAW,IAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAA;AAAA,KAC5C,CAAA;AAEA,IAAM,MAAA,iBAAA,GAAoB,CAAC,KAAkB,KAAA;AAC3C,MAAA,IAAA,CAAK,KAAQ,GAAA,WAAA,CAAY,IAAK,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAA;AAAA,KAC7C,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,IAAmB,KAAA;AAC1C,MAAK,IAAA,CAAA,mBAAA,EAAqB,KAAK,IAAI,CAAA,CAAA;AAAA,KACrC,CAAA;AAGA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,OAAY,KAAA;AACX,QAAM,MAAA,CAAA,GAAI,OAAW,oBAAA,IAAI,IAAK,EAAA,CAAA;AAC9B,QAAA,MAAM,GAAM,GAAA,YAAA,CAAa,CAAG,EAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AACtC,QAAA,IAAI,GAAK,EAAA;AACP,UAAA,IAAA,CAAK,KAAQ,GAAA,GAAA,CAAA;AAAA,SACf;AAAA,OACF;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACpB,CAAA;AAEA,IAAO,OAAA;AAAA,MACL,EAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MACA,gBAAA;AAAA,MACA,iBAAA;AAAA,MACA,eAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}