VCalendarHeader.mjs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { createVNode as _createVNode } from "vue";
  2. // Styles
  3. import "./VCalendarHeader.css";
  4. // Components
  5. import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
  6. import { useLocale } from "../../composables/locale.mjs"; // Utilities
  7. import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
  8. export const makeVCalendarHeaderProps = propsFactory({
  9. nextIcon: {
  10. type: String,
  11. default: '$next'
  12. },
  13. prevIcon: {
  14. type: String,
  15. default: '$prev'
  16. },
  17. title: String,
  18. text: {
  19. type: String,
  20. default: '$vuetify.calendar.today'
  21. },
  22. viewMode: {
  23. type: String,
  24. default: 'month'
  25. }
  26. }, 'VCalendarHeader');
  27. export const VCalendarHeader = genericComponent()({
  28. name: 'VCalendarHeader',
  29. props: makeVCalendarHeaderProps(),
  30. emits: {
  31. 'click:next': () => true,
  32. 'click:prev': () => true,
  33. 'click:toToday': () => true
  34. },
  35. setup(props, _ref) {
  36. let {
  37. emit
  38. } = _ref;
  39. const {
  40. t
  41. } = useLocale();
  42. function prev() {
  43. emit('click:prev');
  44. }
  45. function next() {
  46. emit('click:next');
  47. }
  48. function toToday() {
  49. emit('click:toToday');
  50. }
  51. useRender(() => _createVNode("div", {
  52. "class": "v-calendar-header"
  53. }, [props.text && _createVNode(VBtn, {
  54. "key": "today",
  55. "class": "v-calendar-header__today",
  56. "text": t(props.text),
  57. "variant": "outlined",
  58. "onClick": toToday
  59. }, null), _createVNode(VBtn, {
  60. "density": "comfortable",
  61. "icon": props.prevIcon,
  62. "variant": "text",
  63. "onClick": prev
  64. }, null), _createVNode(VBtn, {
  65. "density": "comfortable",
  66. "icon": props.nextIcon,
  67. "variant": "text",
  68. "onClick": next
  69. }, null), _createVNode("div", {
  70. "class": "v-calendar-header__title"
  71. }, [props.title])]));
  72. return {};
  73. }
  74. });
  75. //# sourceMappingURL=VCalendarHeader.mjs.map