CalendarHeader.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var __defProp = Object.defineProperty;
  2. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  3. var __getOwnPropNames = Object.getOwnPropertyNames;
  4. var __hasOwnProp = Object.prototype.hasOwnProperty;
  5. var __export = (target, all) => {
  6. for (var name2 in all)
  7. __defProp(target, name2, { get: all[name2], enumerable: true });
  8. };
  9. var __copyProps = (to, from, except, desc) => {
  10. if (from && typeof from === "object" || typeof from === "function") {
  11. for (let key of __getOwnPropNames(from))
  12. if (!__hasOwnProp.call(to, key) && key !== except)
  13. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  14. }
  15. return to;
  16. };
  17. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  18. var stdin_exports = {};
  19. __export(stdin_exports, {
  20. default: () => stdin_default
  21. });
  22. module.exports = __toCommonJS(stdin_exports);
  23. var import_vue = require("vue");
  24. var import_vue2 = require("vue");
  25. var import_utils = require("../utils");
  26. var import_utils2 = require("./utils");
  27. const [name] = (0, import_utils.createNamespace)("calendar-header");
  28. var stdin_default = (0, import_vue2.defineComponent)({
  29. name,
  30. props: {
  31. title: String,
  32. subtitle: String,
  33. showTitle: Boolean,
  34. showSubtitle: Boolean,
  35. firstDayOfWeek: Number
  36. },
  37. emits: ["click-subtitle"],
  38. setup(props, {
  39. slots,
  40. emit
  41. }) {
  42. const renderTitle = () => {
  43. if (props.showTitle) {
  44. const text = props.title || (0, import_utils2.t)("title");
  45. const title = slots.title ? slots.title() : text;
  46. return (0, import_vue.createVNode)("div", {
  47. "class": (0, import_utils2.bem)("header-title")
  48. }, [title]);
  49. }
  50. };
  51. const onClickSubtitle = (event) => emit("click-subtitle", event);
  52. const renderSubtitle = () => {
  53. if (props.showSubtitle) {
  54. const title = slots.subtitle ? slots.subtitle() : props.subtitle;
  55. return (0, import_vue.createVNode)("div", {
  56. "class": (0, import_utils2.bem)("header-subtitle"),
  57. "onClick": onClickSubtitle
  58. }, [title]);
  59. }
  60. };
  61. const renderWeekDays = () => {
  62. const {
  63. firstDayOfWeek
  64. } = props;
  65. const weekdays = (0, import_utils2.t)("weekdays");
  66. const renderWeekDays2 = [...weekdays.slice(firstDayOfWeek, 7), ...weekdays.slice(0, firstDayOfWeek)];
  67. return (0, import_vue.createVNode)("div", {
  68. "class": (0, import_utils2.bem)("weekdays")
  69. }, [renderWeekDays2.map((text) => (0, import_vue.createVNode)("span", {
  70. "class": (0, import_utils2.bem)("weekday")
  71. }, [text]))]);
  72. };
  73. return () => (0, import_vue.createVNode)("div", {
  74. "class": (0, import_utils2.bem)("header")
  75. }, [renderTitle(), renderSubtitle(), renderWeekDays()]);
  76. }
  77. });