@opensig/opendesign
Version:
111 lines (110 loc) • 4.15 kB
JavaScript
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
};