{"version":3,"file":"calendar-cell.mjs","sources":["../../src/calendar/calendar-cell.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport dayjs from 'dayjs';\n\nimport { useCommonClassName } from '../hooks/useConfig';\nimport { useContent } from '../hooks/tnode';\n\nimport { useCalendarCellClass } from './hook';\n\n// 组件相关的自定义类型\nimport { CalendarCell } from './type';\n\nconst clickTypeEmitEventMap = {\n  click: 'click',\n  dblclick: 'dblclick',\n  contextmenu: 'rightclick',\n};\n\nexport default defineComponent({\n  name: `TCalendarCell`,\n  inheritAttrs: false,\n  props: {\n    item: {\n      type: Object,\n      default: (): CalendarCell => null,\n    },\n    fillWithZero: {\n      type: Boolean,\n      default: undefined,\n    },\n    theme: {\n      type: String,\n      default: (): string => null,\n    },\n    t: Function,\n    global: Object,\n    cell: [String, Function],\n    cellAppend: [String, Function],\n  },\n  emits: [...Object.values(clickTypeEmitEventMap)],\n  setup(props, { emit }) {\n    const renderContent = useContent();\n    const cls = useCalendarCellClass();\n    const { STATUS } = useCommonClassName();\n\n    const valueDisplay = computed<string>(() => {\n      if (props.item.mode === 'month') {\n        const dateNum = props.item.date.getDate();\n        const fillZero = dateNum < 10 && (props.fillWithZero ?? props.global.fillWithZero ?? true);\n        return fillZero ? `0${dateNum}` : dateNum;\n      }\n      const map = props.t(props.global.cellMonth).split(',');\n      return map[props.item.date.getMonth().toString()];\n    });\n    const allowSlot = computed<boolean>(() => {\n      return props.theme === 'full';\n    });\n    const disabled = computed<boolean>(() => {\n      return props.item.mode === 'month' && props.item.belongTo !== 0;\n    });\n    const cellCls = computed(() => {\n      const { mode, date, formattedDate, isCurrent } = props.item;\n      const now = new Date();\n      const isNow =\n        mode === 'year'\n          ? now.getMonth() === date.getMonth() && now.getFullYear() === date.getFullYear()\n          : formattedDate === dayjs().format('YYYY-MM-DD');\n      return [\n        cls.tableBodyCell.value,\n        {\n          [STATUS.value.disabled]: disabled.value,\n          [STATUS.value.checked]: isCurrent,\n          [cls.tableBodyCell4Now.value]: isNow,\n        },\n      ];\n    });\n    const clickCell = (e: MouseEvent): void => {\n      if (disabled.value) return;\n      const emitName = clickTypeEmitEventMap[e.type];\n      emit(emitName, e);\n    };\n\n    const renderDefaultNode = () => (\n      <>\n        <div class={cls.tableBodyCellDisplay.value}>{valueDisplay.value}</div>\n        <div class={cls.tableBodyCellCsontent.value}>\n          {allowSlot.value &&\n            renderContent('cellAppend', undefined, {\n              params: { ...props.item },\n            })}\n        </div>\n      </>\n    );\n\n    return () => {\n      return (\n        props.item && (\n          <td class={cellCls.value} onClick={clickCell} ondblclick={clickCell} oncontextmenu={clickCell}>\n            {renderContent('cell', undefined, {\n              defaultNode: renderDefaultNode(),\n              params: { ...props.item },\n            })}\n          </td>\n        )\n      );\n    };\n  },\n});\n"],"names":["click","dblclick","contextmenu","name","inheritAttrs","props","item","type","fillWithZero","theme","t","global","cell","cellAppend","setup","emit","_createVNode","params"],"mappings":"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"}