UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 6.57 kB
{"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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"}