vuetify
Version:
Vue Material Component Framework
1 lines • 11.7 kB
Source Map (JSON)
{"version":3,"file":"VDatePickerDateTable.mjs","names":["DatePickerTable","weekNumber","pad","createNativeLocaleFormatter","monthChange","createRange","mixins","extend","name","props","firstDayOfWeek","type","String","Number","default","localeFirstDayOfYear","showAdjacentMonths","Boolean","showWeek","weekdayFormat","Function","computed","formatter","format","currentLocale","day","timeZone","start","length","weekdayFormatter","weekday","weekDays","first","parseInt","map","i","methods","calculateTableDate","delta","tableDate","Math","sign","genTHead","days","$createElement","unshift","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","Date","displayedYear","displayedMonth","weekDay","getUTCDay","getWeekNumber","dayInMonth","genWeekNumber","staticClass","padStart","genTBody","children","daysInMonth","getDate","rows","push","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","date","genButton","nextMonthYear","nextMonth","nextMonthDay","render","genTable"],"sources":["../../../src/components/VDatePicker/VDatePickerDateTable.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport { pad, createNativeLocaleFormatter, monthChange } from './util'\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-date-table',\n\n props: {\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n weekdayFormat: Function as PropType<DatePickerFormatter | undefined>,\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 })\n },\n weekdayFormatter (): DatePickerFormatter | undefined {\n return this.weekdayFormat || createNativeLocaleFormatter(this.currentLocale, { weekday: 'narrow', timeZone: 'UTC' })\n },\n weekDays (): string[] {\n const first = parseInt(this.firstDayOfWeek, 10)\n\n return this.weekdayFormatter\n ? createRange(7).map(i => this.weekdayFormatter!(`2017-01-${first + i + 15}`)) // 2017-01-15 is Sunday\n : createRange(7).map(i => ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7])\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return monthChange(this.tableDate, Math.sign(delta || 1))\n },\n genTHead () {\n const days = this.weekDays.map(day => this.$createElement('th', day))\n if (this.showWeek) {\n days.unshift(this.$createElement('th'))\n }\n\n return this.$createElement('thead', this.genTR(days))\n },\n // Returns number of the days from the firstDayOfWeek to the first day of the current month\n weekDaysBeforeFirstDayOfTheMonth () {\n const firstDayOfTheMonth = new Date(`${this.displayedYear}-${pad(this.displayedMonth + 1)}-01T00:00:00+00:00`)\n const weekDay = firstDayOfTheMonth.getUTCDay()\n\n return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7\n },\n getWeekNumber (dayInMonth: number) {\n return weekNumber(\n this.displayedYear,\n this.displayedMonth,\n dayInMonth,\n parseInt(this.firstDayOfWeek),\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('td', [\n this.$createElement('small', {\n staticClass: 'v-date-picker-table--date__week',\n }, String(weekNumber).padStart(2, '0')),\n ])\n },\n // eslint-disable-next-line max-statements\n genTBody () {\n const children = []\n const daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate()\n let rows = []\n let day = this.weekDaysBeforeFirstDayOfTheMonth()\n\n if (this.showWeek) {\n rows.push(this.genWeekNumber(this.getWeekNumber(1)))\n }\n\n const prevMonthYear = this.displayedMonth ? this.displayedYear : this.displayedYear - 1\n const prevMonth = (this.displayedMonth + 11) % 12\n const firstDayFromPreviousMonth = new Date(this.displayedYear, this.displayedMonth, 0).getDate()\n const cellsInRow = this.showWeek ? 8 : 7\n\n while (day--) {\n const date = `${prevMonthYear}-${pad(prevMonth + 1)}-${pad(firstDayFromPreviousMonth - day)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n for (day = 1; day <= daysInMonth; day++) {\n const date = `${this.displayedYear}-${pad(this.displayedMonth + 1)}-${pad(day)}`\n\n rows.push(this.$createElement('td', [\n this.genButton(date, true, 'date', this.formatter),\n ]))\n\n if (rows.length % cellsInRow === 0) {\n children.push(this.genTR(rows))\n rows = []\n if (this.showWeek && (day < daysInMonth || this.showAdjacentMonths)) {\n rows.push(this.genWeekNumber(this.getWeekNumber(day + 7)))\n }\n }\n }\n\n const nextMonthYear = this.displayedMonth === 11 ? this.displayedYear + 1 : this.displayedYear\n const nextMonth = (this.displayedMonth + 1) % 12\n let nextMonthDay = 1\n\n while (rows.length < cellsInRow) {\n const date = `${nextMonthYear}-${pad(nextMonth + 1)}-${pad(nextMonthDay++)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n if (rows.length) {\n children.push(this.genTR(rows))\n }\n\n return this.$createElement('tbody', children)\n },\n genTR (children: VNodeChildren) {\n return [this.$createElement('tr', children)]\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--date', [\n this.genTHead(),\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n"],"mappings":"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"}