vuetify
Version:
Vue Material Component Framework
74 lines (73 loc) • 2.78 kB
JavaScript
import { mergeProps as _mergeProps, createVNode as _createVNode, createElementVNode as _createElementVNode } from "vue";
// Styles
import "./VCalendarMonthDay.css";
// Components
import { VCalendarEvent } from "./VCalendarEvent.js";
import { VBtn } from "../../components/VBtn/index.js"; // Utilities
import { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from "../../util/index.js"; // Types
export const makeVCalendarMonthDayProps = propsFactory({
active: Boolean,
color: String,
day: {
type: Object
},
disabled: Boolean,
events: Array,
title: [Number, String]
}, 'VCalendarMonthDay');
export const VCalendarMonthDay = genericComponent()({
name: 'VCalendarMonthDay',
inheritAttrs: false,
props: makeVCalendarMonthDayProps(),
setup(props, _ref) {
let {
attrs,
slots
} = _ref;
useRender(() => {
return _createElementVNode("div", _mergeProps({
"class": ['v-calendar-month__day']
}, getPrefixedEventHandlers(attrs, ':day', () => props)), [!props.day?.isHidden ? _createElementVNode("div", {
"key": "title",
"class": "v-calendar-weekly__day-label"
}, [slots.dayTitle?.({
title: props.title
}) ?? _createVNode(VBtn, _mergeProps({
"class": props.day?.isToday ? 'v-calendar-weekly__day-label__today' : undefined,
"color": props.color,
"disabled": props.disabled,
"icon": true,
"size": "x-small",
"variant": props.day?.isToday ? undefined : 'flat',
"text": `${props.title}`
}, getPrefixedEventHandlers(attrs, ':date', () => props)), null)]) : undefined, !props.day?.isHidden ? _createElementVNode("div", {
"key": "content",
"class": "v-calendar-weekly__day-content"
}, [slots.dayBody?.({
day: props.day,
events: props.events
}) ?? _createElementVNode("div", null, [_createElementVNode("div", {
"class": "v-calendar-weekly__day-alldayevents-container"
}, [props.events?.filter(event => event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
day: props.day,
allDay: true,
event
}) : _createVNode(VCalendarEvent, _mergeProps({
"day": props.day,
"event": event,
"allDay": true
}, attrs), null))]), _createElementVNode("div", {
"class": "v-calendar-weekly__day-events-container"
}, [props.events?.filter(event => !event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
day: props.day,
event,
allDay: false
}) : _createVNode(VCalendarEvent, _mergeProps({
"day": props.day,
"event": event
}, attrs), null))])])]) : undefined]);
});
return {};
}
});
//# sourceMappingURL=VCalendarMonthDay.js.map