9ba5b402e2a4a74ae23c1e5cacd9b06dba76cdbbe350ac60b6a1129587fe5e56ee1cdac6c4c3395570827dafba6deebce4cc5a0b8f4edd5053e4a1f1e9fca3 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var basicDateTable = require('../props/basic-date-table.js');
  5. var useBasicDateTable = require('../composables/use-basic-date-table.js');
  6. var basicCellRender = require('./basic-cell-render.js');
  7. var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
  8. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  9. __name: "basic-date-table",
  10. props: basicDateTable.basicDateTableProps,
  11. emits: basicDateTable.basicDateTableEmits,
  12. setup(__props, { expose, emit }) {
  13. const props = __props;
  14. const {
  15. WEEKS,
  16. rows,
  17. tbodyRef,
  18. currentCellRef,
  19. focus,
  20. isCurrent,
  21. isWeekActive,
  22. isSelectedCell,
  23. handlePickDate,
  24. handleMouseUp,
  25. handleMouseDown,
  26. handleMouseMove,
  27. handleFocus
  28. } = useBasicDateTable.useBasicDateTable(props, emit);
  29. const { tableLabel, tableKls, getCellClasses, getRowKls, weekHeaderClass, t } = useBasicDateTable.useBasicDateTableDOM(props, {
  30. isCurrent,
  31. isWeekActive
  32. });
  33. let isUnmounting = false;
  34. vue.onBeforeUnmount(() => {
  35. isUnmounting = true;
  36. });
  37. expose({
  38. focus
  39. });
  40. return (_ctx, _cache) => {
  41. return vue.openBlock(), vue.createElementBlock("table", {
  42. "aria-label": vue.unref(tableLabel),
  43. class: vue.normalizeClass(vue.unref(tableKls)),
  44. cellspacing: "0",
  45. cellpadding: "0",
  46. role: "grid",
  47. onClick: vue.unref(handlePickDate),
  48. onMousemove: vue.unref(handleMouseMove),
  49. onMousedown: vue.unref(handleMouseDown),
  50. onMouseup: vue.unref(handleMouseUp)
  51. }, [
  52. vue.createElementVNode("tbody", {
  53. ref_key: "tbodyRef",
  54. ref: tbodyRef
  55. }, [
  56. vue.createElementVNode("tr", null, [
  57. _ctx.showWeekNumber ? (vue.openBlock(), vue.createElementBlock("th", {
  58. key: 0,
  59. scope: "col",
  60. class: vue.normalizeClass(vue.unref(weekHeaderClass))
  61. }, null, 2)) : vue.createCommentVNode("v-if", true),
  62. (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(WEEKS), (week, key) => {
  63. return vue.openBlock(), vue.createElementBlock("th", {
  64. key,
  65. "aria-label": vue.unref(t)("el.datepicker.weeksFull." + week),
  66. scope: "col"
  67. }, vue.toDisplayString(vue.unref(t)("el.datepicker.weeks." + week)), 9, ["aria-label"]);
  68. }), 128))
  69. ]),
  70. (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(rows), (row, rowKey) => {
  71. return vue.openBlock(), vue.createElementBlock("tr", {
  72. key: rowKey,
  73. class: vue.normalizeClass(vue.unref(getRowKls)(row[1]))
  74. }, [
  75. (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(row, (cell, columnKey) => {
  76. return vue.openBlock(), vue.createElementBlock("td", {
  77. key: `${rowKey}.${columnKey}`,
  78. ref_for: true,
  79. ref: (el) => !vue.unref(isUnmounting) && vue.unref(isSelectedCell)(cell) && (currentCellRef.value = el),
  80. class: vue.normalizeClass(vue.unref(getCellClasses)(cell)),
  81. "aria-current": cell.isCurrent ? "date" : void 0,
  82. "aria-selected": cell.isCurrent,
  83. tabindex: vue.unref(isSelectedCell)(cell) ? 0 : -1,
  84. onFocus: vue.unref(handleFocus)
  85. }, [
  86. vue.createVNode(vue.unref(basicCellRender["default"]), { cell }, null, 8, ["cell"])
  87. ], 42, ["aria-current", "aria-selected", "tabindex", "onFocus"]);
  88. }), 128))
  89. ], 2);
  90. }), 128))
  91. ], 512)
  92. ], 42, ["aria-label", "onClick", "onMousemove", "onMousedown", "onMouseup"]);
  93. };
  94. }
  95. });
  96. var DateTable = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "basic-date-table.vue"]]);
  97. exports["default"] = DateTable;
  98. //# sourceMappingURL=basic-date-table.js.map