UNPKG

hongluan-ui

Version:
129 lines (126 loc) 5.38 kB
import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, toDisplayString, createBlock, withCtx, createVNode, createTextVNode, createCommentVNode, createSlots, normalizeProps, mergeProps, Fragment, renderList } from 'vue'; import { HlButton } from '../../button/index.mjs'; import { HlGroup } from '../../group/index.mjs'; import '../../../hooks/index.mjs'; import _sfc_main$1 from './date-table.mjs'; import { useCalendar } from './use-calendar.mjs'; import { calendarProps, calendarEmits } from './calendar.mjs'; import { useNamespace } from '../../../hooks/use-namespace/index.mjs'; import { useLocale } from '../../../hooks/use-locale/index.mjs'; const COMPONENT_NAME = "Calendar"; const __default__ = defineComponent({ name: COMPONENT_NAME }); const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, props: calendarProps, emits: calendarEmits, setup(__props, { expose, emit }) { const props = __props; const { namespace } = useNamespace("calendar"); const { calculateValidatedDateRange, date, pickDay, realSelectedDay, selectDate, validatedRange } = useCalendar(props, emit, COMPONENT_NAME); const { t } = useLocale(); const i18nDate = computed(() => { const pickedMonth = `hl.datepicker.month${date.value.format("M")}`; return `${date.value.year()} ${t("hl.datepicker.year")} ${t(pickedMonth)}`; }); expose({ selectedDay: realSelectedDay, pickDay, selectDate, calculateValidatedDateRange }); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: normalizeClass(unref(namespace)) }, [ createElementVNode("div", { class: "calendar-header" }, [ renderSlot(_ctx.$slots, "header", { date: unref(i18nDate) }, () => [ createElementVNode("div", { class: "calendar-title" }, toDisplayString(unref(i18nDate)), 1), unref(validatedRange).length === 0 ? (openBlock(), createBlock(unref(HlGroup), { key: 0, indent: "", merge: "", class: "calendar-button-group" }, { default: withCtx(() => [ createVNode(unref(HlButton), { onClick: ($event) => unref(selectDate)("prev-month") }, { default: withCtx(() => [ createTextVNode(toDisplayString(unref(t)("hl.datepicker.prevMonth")), 1) ]), _: 1 }, 8, ["onClick"]), createVNode(unref(HlButton), { onClick: ($event) => unref(selectDate)("today") }, { default: withCtx(() => [ createTextVNode(toDisplayString(unref(t)("hl.datepicker.today")), 1) ]), _: 1 }, 8, ["onClick"]), createVNode(unref(HlButton), { onClick: ($event) => unref(selectDate)("next-month") }, { default: withCtx(() => [ createTextVNode(toDisplayString(unref(t)("hl.datepicker.nextMonth")), 1) ]), _: 1 }, 8, ["onClick"]) ]), _: 1 })) : createCommentVNode("v-if", true) ]) ]), unref(validatedRange).length === 0 ? (openBlock(), createElementBlock("div", { key: 0, class: "calendar-body" }, [ createVNode(_sfc_main$1, { date: unref(date), "selected-day": unref(realSelectedDay), onPick: unref(pickDay) }, createSlots({ _: 2 }, [ _ctx.$slots["date-cell"] || _ctx.$slots.dateCell ? { name: "date-cell", fn: withCtx((data) => [ _ctx.$slots["date-cell"] ? renderSlot(_ctx.$slots, "date-cell", normalizeProps(mergeProps({ key: 0 }, data))) : renderSlot(_ctx.$slots, "dateCell", normalizeProps(mergeProps({ key: 1 }, data))) ]) } : void 0 ]), 1032, ["date", "selected-day", "onPick"]) ])) : (openBlock(), createElementBlock("div", { key: 1, class: "calendar-body" }, [ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validatedRange), (range_, index) => { return openBlock(), createBlock(_sfc_main$1, { key: index, date: range_[0], "selected-day": unref(realSelectedDay), range: range_, "hide-header": index !== 0, onPick: unref(pickDay) }, createSlots({ _: 2 }, [ _ctx.$slots["date-cell"] || _ctx.$slots.dateCell ? { name: "date-cell", fn: withCtx((data) => [ _ctx.$slots["date-cell"] ? renderSlot(_ctx.$slots, "date-cell", normalizeProps(mergeProps({ key: 0 }, data))) : renderSlot(_ctx.$slots, "dateCell", normalizeProps(mergeProps({ key: 1 }, data))) ]) } : void 0 ]), 1032, ["date", "selected-day", "range", "hide-header", "onPick"]); }), 128)) ])) ], 2); }; } }); export { _sfc_main as default }; //# sourceMappingURL=calendar2.mjs.map