64 lines
2.2 KiB
JavaScript
64 lines
2.2 KiB
JavaScript
|
import { createVNode as _createVNode } from "vue";
|
||
|
// Styles
|
||
|
import "./VCalendarMonthDay.css";
|
||
|
|
||
|
// Components
|
||
|
import { VCalendarEvent } from "./VCalendarEvent.mjs";
|
||
|
import { VBtn } from "../../components/VBtn/index.mjs"; // Utilities
|
||
|
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
||
|
export const makeVCalendarMonthDayProps = propsFactory({
|
||
|
active: Boolean,
|
||
|
color: String,
|
||
|
day: Object,
|
||
|
disabled: Boolean,
|
||
|
events: Array,
|
||
|
title: [Number, String]
|
||
|
}, 'VCalendarMonthDay');
|
||
|
export const VCalendarMonthDay = genericComponent()({
|
||
|
name: 'VCalendarMonthDay',
|
||
|
props: makeVCalendarMonthDayProps(),
|
||
|
setup(props, _ref) {
|
||
|
let {
|
||
|
emit,
|
||
|
slots
|
||
|
} = _ref;
|
||
|
useRender(() => {
|
||
|
const hasTitle = !!(props.title || slots.title?.({
|
||
|
title: props.title
|
||
|
}));
|
||
|
return _createVNode("div", {
|
||
|
"class": ['v-calendar-month__day']
|
||
|
}, [!props.day?.isHidden && hasTitle && _createVNode("div", {
|
||
|
"key": "title",
|
||
|
"class": "v-calendar-weekly__day-label"
|
||
|
}, [slots.title?.({
|
||
|
title: props.title
|
||
|
}) ?? _createVNode(VBtn, {
|
||
|
"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'
|
||
|
}, {
|
||
|
default: () => [props.title]
|
||
|
})]), _createVNode("div", {
|
||
|
"key": "content",
|
||
|
"class": "v-calendar-weekly__day-content"
|
||
|
}, [slots.content?.() ?? _createVNode("div", null, [_createVNode("div", {
|
||
|
"class": "v-calendar-weekly__day-alldayevents-container"
|
||
|
}, [props.events?.filter(event => event.allDay).map(event => _createVNode(VCalendarEvent, {
|
||
|
"day": props.day,
|
||
|
"event": event,
|
||
|
"allDay": true
|
||
|
}, null))]), _createVNode("div", {
|
||
|
"class": "v-calendar-weekly__day-events-container"
|
||
|
}, [props.events?.filter(event => !event.allDay).map(event => _createVNode(VCalendarEvent, {
|
||
|
"day": props.day,
|
||
|
"event": event
|
||
|
}, null))])])]), slots.default?.()]);
|
||
|
});
|
||
|
return {};
|
||
|
}
|
||
|
});
|
||
|
//# sourceMappingURL=VCalendarMonthDay.mjs.map
|