{"version":3,"file":"Cell.mjs","sources":["../../../src/date-picker/base/Cell.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport { usePrefixClass } from '../../hooks/useConfig';\nimport { extractTimeObj } from '../../_common/js/date-picker/utils';\nimport { Dayjs } from 'dayjs';\n\nexport default defineComponent({\n  name: 'XDatePickerCell',\n  props: {\n    time: String,\n    text: [String, Number],\n    value: Date,\n    active: Boolean,\n    highlight: Boolean,\n    disabled: Boolean,\n    startOfRange: Boolean,\n    endOfRange: Boolean,\n    hoverHighlight: Boolean,\n    hoverStartOfRange: Boolean,\n    hoverEndOfRange: Boolean,\n    additional: Boolean,\n    now: Boolean,\n    firstDayOfMonth: Boolean,\n    lastDayOfMonth: Boolean,\n    onClick: Function,\n    onMouseEnter: Function,\n    dayjsObj: Dayjs,\n  },\n  setup(props) {\n    const COMPONENT_NAME = usePrefixClass('date-picker__cell');\n\n    const cellClass = computed(() => [\n      COMPONENT_NAME.value,\n      {\n        [`${COMPONENT_NAME.value}--now`]: props.now,\n        [`${COMPONENT_NAME.value}--active`]: props.active,\n        [`${COMPONENT_NAME.value}--disabled`]: props.disabled,\n        [`${COMPONENT_NAME.value}--highlight`]: props.highlight,\n        [`${COMPONENT_NAME.value}--hover-highlight`]: props.hoverHighlight,\n        [`${COMPONENT_NAME.value}--active-start`]: props.startOfRange,\n        [`${COMPONENT_NAME.value}--active-end`]: props.endOfRange,\n        [`${COMPONENT_NAME.value}--hover-start`]: props.hoverStartOfRange,\n        [`${COMPONENT_NAME.value}--hover-end`]: props.hoverEndOfRange,\n        [`${COMPONENT_NAME.value}--additional`]: props.additional,\n        [`${COMPONENT_NAME.value}--first-day-of-month`]: props.firstDayOfMonth,\n        [`${COMPONENT_NAME.value}--last-day-of-month`]: props.lastDayOfMonth,\n      },\n    ]);\n\n    function handleClick(e: MouseEvent) {\n      if (props.disabled) return;\n      if (props.time) {\n        const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n        // am pm 12小时制转化 24小时制\n        let nextHours = hours;\n        if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n        if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n        props.value.setHours(nextHours);\n        props.value.setMinutes(minutes);\n        props.value.setSeconds(seconds);\n        props.value.setMilliseconds(milliseconds);\n      }\n      props.onClick?.(props.value, { e });\n    }\n\n    function handleMouseEnter() {\n      if (props.disabled) return;\n      if (props.time) {\n        const { hours, minutes, seconds, milliseconds, meridiem } = extractTimeObj(props.time);\n        // am pm 12小时制转化 24小时制\n        let nextHours = hours;\n        if (/am/i.test(meridiem) && nextHours === 12) nextHours -= 12;\n        if (/pm/i.test(meridiem) && nextHours < 12) nextHours += 12;\n        props.value.setHours(nextHours);\n        props.value.setMinutes(minutes);\n        props.value.setSeconds(seconds);\n        props.value.setMilliseconds(milliseconds);\n      }\n      props.onMouseEnter?.(props.value);\n    }\n\n    return () => (\n      <td class={cellClass.value} onClick={handleClick} onMouseenter={handleMouseEnter}>\n        <div class={`${COMPONENT_NAME.value}-inner`}>{props.text}</div>\n      </td>\n    );\n  },\n});\n"],"names":["name","props","time","text","value","active","highlight","disabled","startOfRange","endOfRange","hoverHighlight","hoverStartOfRange","hoverEndOfRange","additional","now","firstDayOfMonth","lastDayOfMonth","onClick","onMouseEnter","dayjsObj","e","_createVNode"],"mappings":"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"}