UNPKG

@opensig/opendesign

Version:

110 lines (109 loc) 4.14 kB
"use strict"; 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;