@opensig/opendesign
Version:
110 lines (109 loc) • 4.14 kB
JavaScript
;
const vue = require("vue");
const index = require("../../locale/index.js");
const index$1 = require("../../button/index.js");
const provide = require("../provide.js");
const _hoisted_1 = ["onClick", "onMouseover"];
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "DatePanelCalendar",
props: {
rows: {},
weekDayHeaders: {}
},
emits: ["select", "hover", "leave"],
setup(__props, { emit: __emit }) {
const props = __props;
const emits = __emit;
const { t } = index.useI18n();
const datePickerCtx = vue.inject(provide.datePickerInjectKey);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock(
"div",
{
class: "o-date-panel-calendar",
onMouseleave: _cache[0] || (_cache[0] = ($event) => emits("leave"))
},
[
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(props.weekDayHeaders, (dow) => {
return vue.openBlock(), vue.createElementBlock(
"div",
{
key: dow,
class: "o-date-panel-cell o-date-panel-weekday"
},
vue.toDisplayString(vue.unref(t)(`datePicker.weekdays.${dow}`)),
1
/* TEXT */
);
}),
128
/* KEYED_FRAGMENT */
)),
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(props.rows, (row, ri) => {
return vue.openBlock(), vue.createElementBlock(
vue.Fragment,
{ key: ri },
[
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(row, (cell) => {
var _a;
return vue.openBlock(), vue.createElementBlock("div", {
key: cell.date.valueOf(),
class: vue.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)
}, [
vue.createVNode(vue.unref(index$1.OButton), {
round: (_a = vue.unref(datePickerCtx).round) == null ? void 0 : _a.value,
variant: "solid",
class: "o-date-panel-btn",
disabled: cell.isDisabled || !cell.isCurrentMonth
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.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 */
);
};
}
});
module.exports = _sfc_main;