import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
// Styles
import "./VCalendarDay.css";

// Components
import { makeVCalendarIntervalProps, VCalendarInterval } from "./VCalendarInterval.mjs";
import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
import { useDate } from "../../composables/date/index.mjs"; // Utilities
import { computed } from 'vue';
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
export const makeVCalendarDayProps = propsFactory({
  hideDayHeader: Boolean,
  intervals: {
    type: Number,
    default: 24
  },
  ...makeVCalendarIntervalProps()
}, 'VCalendarDay');
export const VCalendarDay = genericComponent()({
  name: 'VCalendarDay',
  props: makeVCalendarDayProps(),
  setup(props) {
    const adapter = useDate();
    const intervals = computed(() => [...Array.from({
      length: props.intervals
    }, (v, i) => i).filter((int, index) => props.intervalDuration * (index + props.intervalStart) < 1440)]);
    useRender(() => {
      const calendarIntervalProps = VCalendarInterval.filterProps(props);
      return _createVNode("div", {
        "class": "v-calendar-day__container"
      }, [!props.hideDayHeader && _createVNode("div", {
        "key": "calender-week-name",
        "class": "v-calendar-weekly__head-weekday"
      }, [adapter.format(props.day.date, 'weekdayShort'), _createVNode("div", null, [_createVNode(VBtn, {
        "icon": true,
        "text": adapter.format(props.day.date, 'dayOfMonth'),
        "variant": "text"
      }, null)])]), intervals.value.map((_, index) => _createVNode(VCalendarInterval, _mergeProps({
        "index": index
      }, calendarIntervalProps), null))]);
    });
    return {
      intervals
    };
  }
});
//# sourceMappingURL=VCalendarDay.mjs.map