You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
6.5 KiB
1 lines
6.5 KiB
{"ast":null,"code":"import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, Fragment, renderList, toDisplayString, createCommentVNode, renderSlot } from 'vue';\nimport { dateTableProps, dateTableEmits } from './date-table.mjs';\nimport { useDateTable } from './use-date-table.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nconst __default__ = defineComponent({\n name: \"DateTable\"\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: dateTableProps,\n emits: dateTableEmits,\n setup(__props, {\n expose,\n emit\n }) {\n const props = __props;\n const {\n isInRange,\n now,\n rows,\n weekDays,\n getFormattedDate,\n handlePickDay,\n getSlotData\n } = useDateTable(props, emit);\n const nsTable = useNamespace(\"calendar-table\");\n const nsDay = useNamespace(\"calendar-day\");\n const getCellClass = ({\n text,\n type\n }) => {\n const classes = [type];\n if (type === \"current\") {\n const date = getFormattedDate(text, type);\n if (date.isSame(props.selectedDay, \"day\")) {\n classes.push(nsDay.is(\"selected\"));\n }\n if (date.isSame(now, \"day\")) {\n classes.push(nsDay.is(\"today\"));\n }\n }\n return classes;\n };\n expose({\n getFormattedDate\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"table\", {\n class: normalizeClass([unref(nsTable).b(), unref(nsTable).is(\"range\", unref(isInRange))]),\n cellspacing: \"0\",\n cellpadding: \"0\"\n }, [!_ctx.hideHeader ? (openBlock(), createElementBlock(\"thead\", {\n key: 0\n }, [createElementVNode(\"tr\", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(weekDays), day => {\n return openBlock(), createElementBlock(\"th\", {\n key: day,\n scope: \"col\"\n }, toDisplayString(day), 1);\n }), 128))])])) : createCommentVNode(\"v-if\", true), createElementVNode(\"tbody\", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, index) => {\n return openBlock(), createElementBlock(\"tr\", {\n key: index,\n class: normalizeClass({\n [unref(nsTable).e(\"row\")]: true,\n [unref(nsTable).em(\"row\", \"hide-border\")]: index === 0 && _ctx.hideHeader\n })\n }, [(openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key) => {\n return openBlock(), createElementBlock(\"td\", {\n key,\n class: normalizeClass(getCellClass(cell)),\n onClick: $event => unref(handlePickDay)(cell)\n }, [createElementVNode(\"div\", {\n class: normalizeClass(unref(nsDay).b())\n }, [renderSlot(_ctx.$slots, \"date-cell\", {\n data: unref(getSlotData)(cell)\n }, () => [createElementVNode(\"span\", null, toDisplayString(cell.text), 1)])], 2)], 10, [\"onClick\"]);\n }), 128))], 2);\n }), 128))])], 2);\n };\n }\n});\nvar DateTable = /* @__PURE__ */_export_sfc(_sfc_main, [[\"__file\", \"date-table.vue\"]]);\nexport { DateTable as default };","map":{"version":3,"names":["name","isInRange","now","rows","weekDays","getFormattedDate","handlePickDay","getSlotData","useDateTable","props","emit","nsTable","useNamespace","nsDay","getCellClass","text","type","classes","date","isSame","selectedDay","push","is","expose","_ctx","_cache"],"sources":["../../../../../../packages/components/calendar/src/date-table.vue"],"sourcesContent":["<template>\n <table\n :class=\"[nsTable.b(), nsTable.is('range', isInRange)]\"\n cellspacing=\"0\"\n cellpadding=\"0\"\n >\n <thead v-if=\"!hideHeader\">\n <tr>\n <th v-for=\"day in weekDays\" :key=\"day\" scope=\"col\">{{ day }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr\n v-for=\"(row, index) in rows\"\n :key=\"index\"\n :class=\"{\n [nsTable.e('row')]: true,\n [nsTable.em('row', 'hide-border')]: index === 0 && hideHeader,\n }\"\n >\n <td\n v-for=\"(cell, key) in row\"\n :key=\"key\"\n :class=\"getCellClass(cell)\"\n @click=\"handlePickDay(cell)\"\n >\n <div :class=\"nsDay.b()\">\n <slot name=\"date-cell\" :data=\"getSlotData(cell)\">\n <span>{{ cell.text }}</span>\n </slot>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { dateTableEmits, dateTableProps } from './date-table'\nimport { useDateTable } from './use-date-table'\n\nimport type { CalendarDateCell } from './date-table'\n\ndefineOptions({\n name: 'DateTable',\n})\n\nconst props = defineProps(dateTableProps)\nconst emit = defineEmits(dateTableEmits)\n\nconst {\n isInRange,\n now,\n rows,\n weekDays,\n getFormattedDate,\n handlePickDay,\n getSlotData,\n} = useDateTable(props, emit)\n\nconst nsTable = useNamespace('calendar-table')\nconst nsDay = useNamespace('calendar-day')\n\nconst getCellClass = ({ text, type }: CalendarDateCell) => {\n const classes: string[] = [type]\n if (type === 'current') {\n const date = getFormattedDate(text, type)\n if (date.isSame(props.selectedDay, 'day')) {\n classes.push(nsDay.is('selected'))\n }\n if (date.isSame(now, 'day')) {\n classes.push(nsDay.is('today'))\n }\n }\n return classes\n}\n\ndefineExpose({\n /** @description toggle date panel */\n getFormattedDate,\n})\n</script>\n"],"mappings":";;;;;mCA6Cc;EACZA,IAAM;AACR;;;;;;;;;;IAKM;MACJC,SAAA;MACAC,GAAA;MACAC,IAAA;MACAC,QAAA;MACAC,gBAAA;MACAC,aAAA;MACAC;IAAA,CACF,GAAIC,YAAa,CAAAC,KAAA,EAAOC,IAAI;IAEtB,MAAAC,OAAA,GAAUC,YAAA,CAAa,gBAAgB;IACvC,MAAAC,KAAA,GAAQD,YAAA,CAAa,cAAc;IAEzC,MAAME,YAAe,GAAAA,CAAC;MAAEC,IAAA;MAAMC;IAAA,CAA6B;MACnD,MAAAC,OAAA,GAAoB,CAACD,IAAI;MAC/B,IAAIA,IAAA,KAAS,SAAW;QAChB,MAAAE,IAAA,GAAOb,gBAAiB,CAAAU,IAAA,EAAMC,IAAI;QACxC,IAAIE,IAAK,CAAAC,MAAA,CAAOV,KAAM,CAAAW,WAAA,EAAa,KAAK,CAAG;UACzCH,OAAA,CAAQI,IAAK,CAAAR,KAAA,CAAMS,EAAG,WAAU,CAAC;QAAA;QAEnC,IAAIJ,IAAK,CAAAC,MAAA,CAAOjB,GAAK,OAAK,CAAG;UAC3Be,OAAA,CAAQI,IAAK,CAAAR,KAAA,CAAMS,EAAG,QAAO,CAAC;QAAA;MAChC;MAEK,OAAAL,OAAA;IAAA,CACT;IAEaM,MAAA;MAAAlB;IAAA,CAEX;IACF,OAAC,CAAAmB,IAAA,EAAAC,MAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|