{"version":3,"file":"VCalendarWeekly.mjs","names":["VBtn","CalendarBase","getSlot","weekNumber","props","createDayList","getDayIdentifier","createNativeLocaleFormatter","extend","name","weeks","computed","staticClass","classes","themeClasses","parsedMinWeeks","parseInt","minWeeks","days","minDays","parsedWeekdays","length","start","getStartOfWeek","parsedStart","end","getEndOfWeek","parsedEnd","times","today","weekdaySkips","Number","MAX_SAFE_INTEGER","todayWeek","monthFormatter","monthFormat","longOptions","timeZone","month","shortOptions","currentLocale","_tms","short","methods","isOutside","day","dayIdentifier","genHead","$createElement","attrs","role","genHeadDays","header","map","genHeadDay","showWeek","unshift","index","outside","color","present","undefined","setTextColor","key","date","class","getRelativeClasses","weekdayFormatter","shortWeekdays","genWeeks","weekDays","i","push","genWeek","slice","getWeekNumber","week","weekNodes","genDay","genWeekNumber","determineDay","year","localeFirstDayOfYear","String","on","getDefaultMouseEventHandlers","nativeEvent","genDayLabel","genDayLabelButton","hasMonth","showMonthOnFirst","fab","depressed","small","getMouseEventHandlers","event","stop","prevent","result","shortMonths","dayFormatter","genDayMonth","render","h","dragstart","e","preventDefault","hideHeader"],"sources":["../../../src/components/VCalendar/VCalendarWeekly.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n  createDayList,\n  getDayIdentifier,\n  createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n  name: 'v-calendar-weekly',\n\n  props: props.weeks,\n\n  computed: {\n    staticClass (): string {\n      return 'v-calendar-weekly'\n    },\n    classes (): object {\n      return this.themeClasses\n    },\n    parsedMinWeeks (): number {\n      return parseInt(this.minWeeks)\n    },\n    days (): CalendarTimestamp[] {\n      const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n      const start = this.getStartOfWeek(this.parsedStart)\n      const end = this.getEndOfWeek(this.parsedEnd)\n\n      return createDayList(\n        start,\n        end,\n        this.times.today,\n        this.weekdaySkips,\n        Number.MAX_SAFE_INTEGER,\n        minDays\n      )\n    },\n    todayWeek (): CalendarTimestamp[] {\n      const today = this.times.today\n      const start = this.getStartOfWeek(today)\n      const end = this.getEndOfWeek(today)\n\n      return createDayList(\n        start,\n        end,\n        today,\n        this.weekdaySkips,\n        this.parsedWeekdays.length,\n        this.parsedWeekdays.length\n      )\n    },\n    monthFormatter (): CalendarFormatter {\n      if (this.monthFormat) {\n        return this.monthFormat as CalendarFormatter\n      }\n\n      const longOptions = { timeZone: 'UTC', month: 'long' }\n      const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n      return createNativeLocaleFormatter(\n        this.currentLocale,\n        (_tms, short) => short ? shortOptions : longOptions\n      )\n    },\n  },\n\n  methods: {\n    isOutside (day: CalendarTimestamp): boolean {\n      const dayIdentifier = getDayIdentifier(day)\n\n      return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n             dayIdentifier > getDayIdentifier(this.parsedEnd)\n    },\n    genHead (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-calendar-weekly__head',\n        attrs: {\n          role: 'row',\n        },\n      }, this.genHeadDays())\n    },\n    genHeadDays (): VNode[] {\n      const header = this.todayWeek.map(this.genHeadDay)\n\n      if (this.showWeek) {\n        header.unshift(this.$createElement('div', {\n          staticClass: 'v-calendar-weekly__head-weeknumber',\n        }))\n      }\n\n      return header\n    },\n    genHeadDay (day: CalendarTimestamp, index: number): VNode {\n      const outside = this.isOutside(this.days[index])\n      const color = day.present ? this.color : undefined\n\n      return this.$createElement('div', this.setTextColor(color, {\n        key: day.date,\n        staticClass: 'v-calendar-weekly__head-weekday',\n        class: this.getRelativeClasses(day, outside),\n        attrs: {\n          role: 'columnheader',\n        },\n      }), this.weekdayFormatter(day, this.shortWeekdays))\n    },\n    genWeeks (): VNode[] {\n      const days = this.days\n      const weekDays = this.parsedWeekdays.length\n      const weeks: VNode[] = []\n\n      for (let i = 0; i < days.length; i += weekDays) {\n        weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n      }\n\n      return weeks\n    },\n    genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n      const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n      if (this.showWeek) {\n        weekNodes.unshift(this.genWeekNumber(weekNumber))\n      }\n\n      return this.$createElement('div', {\n        key: week[0].date,\n        staticClass: 'v-calendar-weekly__week',\n        attrs: {\n          role: 'row',\n        },\n      }, weekNodes)\n    },\n    getWeekNumber (determineDay: CalendarTimestamp) {\n      return weekNumber(\n        determineDay.year,\n        determineDay.month - 1,\n        determineDay.day,\n        this.parsedWeekdays[0],\n        parseInt(this.localeFirstDayOfYear)\n      )\n    },\n    genWeekNumber (weekNumber: number) {\n      return this.$createElement('div', {\n        staticClass: 'v-calendar-weekly__weeknumber',\n      }, [\n        this.$createElement('small', String(weekNumber)),\n      ])\n    },\n    genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n      const outside = this.isOutside(day)\n\n      return this.$createElement('div', {\n        key: day.date,\n        staticClass: 'v-calendar-weekly__day',\n        class: this.getRelativeClasses(day, outside),\n        attrs: {\n          role: 'cell',\n        },\n        on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n          return { nativeEvent, ...day }\n        }),\n      }, [\n        this.genDayLabel(day),\n        ...(getSlot(this, 'day', () => ({ outside, index, week, ...day })) || []),\n      ])\n    },\n    genDayLabel (day: CalendarTimestamp): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-calendar-weekly__day-label',\n      }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n    },\n    genDayLabelButton (day: CalendarTimestamp): VNode {\n      const color = day.present ? this.color : 'transparent'\n      const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n      return this.$createElement(VBtn, {\n        props: {\n          color,\n          fab: true,\n          depressed: true,\n          small: true,\n        },\n        on: this.getMouseEventHandlers({\n          'click:date': { event: 'click', stop: true },\n          'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n        }, nativeEvent => ({ nativeEvent, ...day })),\n      }, hasMonth\n        ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n        : this.dayFormatter(day, false)\n      )\n    },\n    genDayMonth (day: CalendarTimestamp): VNode | string {\n      const color = day.present ? this.color : undefined\n\n      return this.$createElement('div', this.setTextColor(color, {\n        staticClass: 'v-calendar-weekly__day-month',\n      }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: this.staticClass,\n      class: this.classes,\n      on: {\n        dragstart: (e: MouseEvent) => {\n          e.preventDefault()\n        },\n      },\n    }, [\n      !this.hideHeader ? this.genHead() : '',\n      ...this.genWeeks(),\n    ])\n  },\n})\n"],"mappings":"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"}