837d0daec360fe7513a746d33e5105ac10f3aec5859bd792f069c287109f8633800daa0fb6b75eca36add633280a6e36faa01666fe91e32dd3ac1a6dc276d0 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var index$2 = require('../../button/index.js');
  5. var dateTable = require('./date-table2.js');
  6. var useCalendar = require('./use-calendar.js');
  7. var calendar = require('./calendar.js');
  8. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  9. var index = require('../../../hooks/use-namespace/index.js');
  10. var index$1 = require('../../../hooks/use-locale/index.js');
  11. const COMPONENT_NAME = "ElCalendar";
  12. const __default__ = vue.defineComponent({
  13. name: COMPONENT_NAME
  14. });
  15. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  16. ...__default__,
  17. props: calendar.calendarProps,
  18. emits: calendar.calendarEmits,
  19. setup(__props, { expose, emit }) {
  20. const props = __props;
  21. const ns = index.useNamespace("calendar");
  22. const {
  23. calculateValidatedDateRange,
  24. date,
  25. pickDay,
  26. realSelectedDay,
  27. selectDate,
  28. validatedRange
  29. } = useCalendar.useCalendar(props, emit);
  30. const { t } = index$1.useLocale();
  31. const i18nDate = vue.computed(() => {
  32. const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
  33. return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
  34. });
  35. expose({
  36. selectedDay: realSelectedDay,
  37. pickDay,
  38. selectDate,
  39. calculateValidatedDateRange
  40. });
  41. return (_ctx, _cache) => {
  42. return vue.openBlock(), vue.createElementBlock("div", {
  43. class: vue.normalizeClass(vue.unref(ns).b())
  44. }, [
  45. vue.createElementVNode("div", {
  46. class: vue.normalizeClass(vue.unref(ns).e("header"))
  47. }, [
  48. vue.renderSlot(_ctx.$slots, "header", { date: vue.unref(i18nDate) }, () => [
  49. vue.createElementVNode("div", {
  50. class: vue.normalizeClass(vue.unref(ns).e("title"))
  51. }, vue.toDisplayString(vue.unref(i18nDate)), 3),
  52. vue.unref(validatedRange).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
  53. key: 0,
  54. class: vue.normalizeClass(vue.unref(ns).e("button-group"))
  55. }, [
  56. vue.createVNode(vue.unref(index$2.ElButtonGroup), null, {
  57. default: vue.withCtx(() => [
  58. vue.createVNode(vue.unref(index$2.ElButton), {
  59. size: "small",
  60. onClick: ($event) => vue.unref(selectDate)("prev-month")
  61. }, {
  62. default: vue.withCtx(() => [
  63. vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.prevMonth")), 1)
  64. ]),
  65. _: 1
  66. }, 8, ["onClick"]),
  67. vue.createVNode(vue.unref(index$2.ElButton), {
  68. size: "small",
  69. onClick: ($event) => vue.unref(selectDate)("today")
  70. }, {
  71. default: vue.withCtx(() => [
  72. vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.today")), 1)
  73. ]),
  74. _: 1
  75. }, 8, ["onClick"]),
  76. vue.createVNode(vue.unref(index$2.ElButton), {
  77. size: "small",
  78. onClick: ($event) => vue.unref(selectDate)("next-month")
  79. }, {
  80. default: vue.withCtx(() => [
  81. vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.nextMonth")), 1)
  82. ]),
  83. _: 1
  84. }, 8, ["onClick"])
  85. ]),
  86. _: 1
  87. })
  88. ], 2)) : vue.createCommentVNode("v-if", true)
  89. ])
  90. ], 2),
  91. vue.unref(validatedRange).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
  92. key: 0,
  93. class: vue.normalizeClass(vue.unref(ns).e("body"))
  94. }, [
  95. vue.createVNode(dateTable["default"], {
  96. date: vue.unref(date),
  97. "selected-day": vue.unref(realSelectedDay),
  98. onPick: vue.unref(pickDay)
  99. }, vue.createSlots({
  100. _: 2
  101. }, [
  102. _ctx.$slots["date-cell"] ? {
  103. name: "date-cell",
  104. fn: vue.withCtx((data) => [
  105. vue.renderSlot(_ctx.$slots, "date-cell", vue.normalizeProps(vue.guardReactiveProps(data)))
  106. ])
  107. } : void 0
  108. ]), 1032, ["date", "selected-day", "onPick"])
  109. ], 2)) : (vue.openBlock(), vue.createElementBlock("div", {
  110. key: 1,
  111. class: vue.normalizeClass(vue.unref(ns).e("body"))
  112. }, [
  113. (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(validatedRange), (range_, index) => {
  114. return vue.openBlock(), vue.createBlock(dateTable["default"], {
  115. key: index,
  116. date: range_[0],
  117. "selected-day": vue.unref(realSelectedDay),
  118. range: range_,
  119. "hide-header": index !== 0,
  120. onPick: vue.unref(pickDay)
  121. }, vue.createSlots({
  122. _: 2
  123. }, [
  124. _ctx.$slots["date-cell"] ? {
  125. name: "date-cell",
  126. fn: vue.withCtx((data) => [
  127. vue.renderSlot(_ctx.$slots, "date-cell", vue.normalizeProps(vue.guardReactiveProps(data)))
  128. ])
  129. } : void 0
  130. ]), 1032, ["date", "selected-day", "range", "hide-header", "onPick"]);
  131. }), 128))
  132. ], 2))
  133. ], 2);
  134. };
  135. }
  136. });
  137. var Calendar = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "calendar.vue"]]);
  138. exports["default"] = Calendar;
  139. //# sourceMappingURL=calendar2.js.map