UNPKG

@opensig/opendesign

Version:

111 lines (110 loc) 4.15 kB
import { defineComponent, inject, createElementBlock, openBlock, Fragment, renderList, toDisplayString, unref, normalizeClass, createVNode, withCtx, createTextVNode } from "vue"; import { useI18n } from "../../locale/index.mjs"; import { OButton } from "../../button/index.mjs"; import { datePickerInjectKey } from "../provide.mjs"; const _hoisted_1 = ["onClick", "onMouseover"]; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "DatePanelCalendar", props: { rows: {}, weekDayHeaders: {} }, emits: ["select", "hover", "leave"], setup(__props, { emit: __emit }) { const props = __props; const emits = __emit; const { t } = useI18n(); const datePickerCtx = inject(datePickerInjectKey); return (_ctx, _cache) => { return openBlock(), createElementBlock( "div", { class: "o-date-panel-calendar", onMouseleave: _cache[0] || (_cache[0] = ($event) => emits("leave")) }, [ (openBlock(true), createElementBlock( Fragment, null, renderList(props.weekDayHeaders, (dow) => { return openBlock(), createElementBlock( "div", { key: dow, class: "o-date-panel-cell o-date-panel-weekday" }, toDisplayString(unref(t)(`datePicker.weekdays.${dow}`)), 1 /* TEXT */ ); }), 128 /* KEYED_FRAGMENT */ )), (openBlock(true), createElementBlock( Fragment, null, renderList(props.rows, (row, ri) => { return openBlock(), createElementBlock( Fragment, { key: ri }, [ (openBlock(true), createElementBlock( Fragment, null, renderList(row, (cell) => { var _a; return openBlock(), createElementBlock("div", { key: cell.date.valueOf(), class: normalizeClass(["o-date-panel-cell", { "is-current-month": cell.isCurrentMonth, "is-current": cell.isToday, "is-selected": cell.isSelected, "is-disabled": cell.isDisabled, "is-other-period": !cell.isCurrentMonth, "is-range-start": cell.isRangeStart, "is-range-end": cell.isRangeEnd, "is-in-range": cell.isInRange }]), onClick: ($event) => !cell.isDisabled && cell.isCurrentMonth && emits("select", cell.date), onMouseover: ($event) => !cell.isDisabled && cell.isCurrentMonth && emits("hover", cell.date) }, [ createVNode(unref(OButton), { round: (_a = unref(datePickerCtx).round) == null ? void 0 : _a.value, variant: "solid", class: "o-date-panel-btn", disabled: cell.isDisabled || !cell.isCurrentMonth }, { default: withCtx(() => [ createTextVNode( toDisplayString(cell.day), 1 /* TEXT */ ) ]), _: 2 /* DYNAMIC */ }, 1032, ["round", "disabled"]) ], 42, _hoisted_1); }), 128 /* KEYED_FRAGMENT */ )) ], 64 /* STABLE_FRAGMENT */ ); }), 128 /* KEYED_FRAGMENT */ )) ], 32 /* NEED_HYDRATION */ ); }; } }); export { _sfc_main as default };