vuetify
Version:
Vue Material Component Framework
1 lines • 5.78 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","names":["createRange","padStart","getFirstWeekdayOfMonth","year","month","Date","getDay","getNumberOfDaysInMonth","getDate","changeMonth","change","day","String","addDays","date","days","d","setDate","getFullYear","getMonth","parseDate","split","map","Number","getMondayOfFirstWeekOfYear","januaryFirst","mondayOfFirstWeek","getWeek","d1w1","tv","diffTime","Math","abs","getTime","diffDays","ceil","floor","getDaysInMonth"],"sources":["../../../src/components/VDatePicker/utils.ts"],"sourcesContent":["// Utilities\nimport { createRange, padStart } from '@/util'\n\nexport function getFirstWeekdayOfMonth (year: number, month: number) {\n return new Date(`${year}-${month}-01`).getDay()\n}\n\nfunction getNumberOfDaysInMonth (year: number, month: number) {\n return new Date(year, month, 0).getDate()\n}\n\n// function getMonthName (month: number, locale = 'en-US') {\n// const date = new Date(`2022-${month}-01`)\n// return date.toLocaleString(locale, { month: 'long' })\n// }\n\nexport function changeMonth (year: number, month: number, change: number) {\n if (change < 0 && month + change < 1) {\n return [year - 1, 12 + (month + change)]\n } else if (change > 0 && month + change > 12) {\n return [year + 1, (month + change) % 12]\n } else {\n return [year, month + change]\n }\n}\n\nexport function getDate (year: number, month: number, day: number) {\n return `${year}-${padStart(String(month), 2, '0')}-${padStart(String(day), 2, '0')}`\n}\n\nexport function addDays (date: string, days: number) {\n const d = new Date(date)\n\n d.setDate(d.getDate() + days)\n\n return getDate(d.getFullYear(), d.getMonth() + 1, d.getDate())\n}\n\nexport function parseDate (date: string): [number, number, number] {\n const [year, month, day] = date.split('-').map(Number)\n\n return [year, month, day]\n}\n\nfunction getMondayOfFirstWeekOfYear (year: number) {\n const januaryFirst = new Date(year, 0, 1)\n const mondayOfFirstWeek = new Date(januaryFirst)\n\n mondayOfFirstWeek.setDate(mondayOfFirstWeek.getDate() + ((11 - januaryFirst.getDay()) % 7) - 3)\n\n return mondayOfFirstWeek\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek (date: Date) {\n let year = date.getFullYear()\n let d1w1 = getMondayOfFirstWeekOfYear(year)\n\n if (date < d1w1) {\n year = year - 1\n d1w1 = getMondayOfFirstWeekOfYear(year)\n } else {\n const tv = getMondayOfFirstWeekOfYear(year + 1)\n if (date >= tv) {\n year = year + 1\n d1w1 = tv\n }\n }\n\n const diffTime = Math.abs(date.getTime() - d1w1.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n\n return Math.floor(diffDays / 7) + 1\n}\n\nexport function getDaysInMonth (year: number, month: number) {\n return createRange(getNumberOfDaysInMonth(year, month), 1).map(day => ({\n year,\n month,\n day,\n date: getDate(year, month, day),\n }))\n}\n"],"mappings":"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"}