@vuetify/nightly 3.8.1-dev.2025-04-07 → 3.8.1-master.2025-04-08
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -5
- package/dist/json/attributes.json +2967 -2967
- package/dist/json/importMap-labs.json +36 -36
- package/dist/json/importMap.json +172 -172
- package/dist/json/web-types.json +5714 -5714
- package/dist/vuetify-labs.cjs +108 -191
- package/dist/vuetify-labs.css +3534 -3534
- package/dist/vuetify-labs.d.ts +67 -65
- package/dist/vuetify-labs.esm.js +108 -191
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +108 -191
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +108 -191
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5837 -5837
- package/dist/vuetify.d.ts +67 -65
- package/dist/vuetify.esm.js +108 -191
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +108 -191
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +278 -266
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.css +1 -1
- package/lib/components/VDataTable/VDataTable.sass +1 -1
- package/lib/composables/calendar.js +2 -2
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +1 -0
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -0
- package/lib/composables/date/adapters/vuetify.js +101 -160
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -1
- package/lib/composables/date/date.js +0 -20
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/filter.js +2 -1
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/virtual.js +1 -6
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.d.ts +1 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +67 -65
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +1 -0
- package/package.json +4 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"vuetify.js","names":["createRange","padStart","firstDay","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LT","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NO","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","getWeekArray","date","locale","firstDayOfWeek","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","first","slice","toUpperCase","firstDayWeekIndex","getDay","lastDayWeekIndex","i","adjacentDay","Date","setDate","getDate","push","day","getFullYear","getMonth","length","startOfWeek","d","endOfWeek","lastDay","parseLocalDate","value","parts","split","map","Number","_YYYMMDD","parsed","test","parse","isNaN","sundayJanuarySecond2000","getWeekdays","daysFromSunday","weekday","Intl","DateTimeFormat","format","formatString","formats","newDate","customFormat","options","year","month","NumberFormat","hour","hour12","minute","second","replace","timeZone","timeZoneName","toISO","adapter","toJsDate","String","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getNextMonth","getPreviousMonth","startOfYear","endOfYear","isWithinRange","range","isAfter","isBefore","isValid","getTime","comparing","isAfterDay","startOfDay","isEqual","isSameDay","isSameMonth","isSameYear","getDiff","unit","c","Math","floor","count","setYear","setFullYear","endOfDay","VuetifyDateAdapter","constructor","undefined"],"sources":["../../../../src/composables/date/adapters/vuetify.ts"],"sourcesContent":["// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nconst firstDay: Record<string, number> = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0,\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7\n\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i))\n currentWeek.push(adjacentDay)\n }\n\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i)\n\n // Add the day to the current week\n currentWeek.push(day)\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek)\n currentWeek = []\n }\n }\n\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() + i)\n currentWeek.push(adjacentDay)\n }\n\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\n const d = new Date(date)\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1)\n }\n return d\n}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\n const parts = value.split('-').map(Number)\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2])\n}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000)\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i)\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record<string, CustomDateFormat>\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric' }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric' }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: true }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter<any>, value: Date) {\n const date = adapter.toJsDate(value)\n const year = date.getFullYear()\n const month = padStart(String(date.getMonth() + 1), 2, '0')\n const day = padStart(String(date.getDate()), 2, '0')\n\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear()\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4)\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7))\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60))\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60))\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000)\n default: {\n return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter<Date> {\n locale: string\n formats?: Record<string, CustomDateFormat>\n\n constructor (options: { locale: string, formats?: Record<string, CustomDateFormat> }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,WAAW,EAAEC,QAAQ,kCAE9B;AAKA,MAAMC,QAAgC,GAAG;EACvC,KAAK,EAAE,CAAC;EACRC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACL,gBAAgB,EAAE,CAAC;EACnBC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"vuetify.js","names":["createRange","padStart","weekInfo","locale","code","slice","toUpperCase","firstDay","firstWeekSize","includes","getWeekArray","date","firstDayOfWeek","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","first","firstDayWeekIndex","getDay","lastDayWeekIndex","i","adjacentDay","Date","setDate","getDate","push","day","getFullYear","getMonth","length","startOfWeek","d","endOfWeek","lastDay","parseLocalDate","value","parts","split","map","Number","_YYYMMDD","parsed","test","parse","isNaN","sundayJanuarySecond2000","getWeekdays","daysFromSunday","weekday","Intl","DateTimeFormat","format","formatString","formats","newDate","customFormat","options","year","month","NumberFormat","hour","hour12","minute","second","replace","timeZone","timeZoneName","toISO","adapter","toJsDate","String","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getWeek","firstWeekMinSize","weekInfoFromLocale","weekStart","minWeekSize","yearStart","getDiff","currentWeekEnd","size","d1w1","getNextMonth","getPreviousMonth","startOfYear","endOfYear","isWithinRange","range","isAfter","isBefore","isValid","getTime","comparing","isAfterDay","startOfDay","isEqual","isSameDay","isSameMonth","isSameYear","unit","c","Math","floor","count","setYear","setFullYear","endOfDay","VuetifyDateAdapter","constructor","undefined"],"sources":["../../../../src/composables/date/adapters/vuetify.ts"],"sourcesContent":["// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nfunction weekInfo (locale: string): { firstDay: number, firstWeekSize: number } | null {\n // https://simplelocalize.io/data/locales/\n // then `new Intl.Locale(...).getWeekInfo()`\n const code = locale.slice(-2).toUpperCase()\n switch (true) {\n case locale === 'GB-alt-variant': {\n return { firstDay: 0, firstWeekSize: 4 }\n }\n case locale === '001': {\n return { firstDay: 1, firstWeekSize: 1 }\n }\n case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE\n KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US\n VE VI WS YE ZA ZW`.includes(code): {\n return { firstDay: 0, firstWeekSize: 1 }\n }\n case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV\n MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code): {\n return { firstDay: 1, firstWeekSize: 1 }\n }\n case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS\n IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code): {\n return { firstDay: 1, firstWeekSize: 4 }\n }\n case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code): {\n return { firstDay: 6, firstWeekSize: 1 }\n }\n case code === 'MV': {\n return { firstDay: 5, firstWeekSize: 1 }\n }\n case code === 'PT': {\n return { firstDay: 0, firstWeekSize: 4 }\n }\n default: return null\n }\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7\n\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i))\n currentWeek.push(adjacentDay)\n }\n\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i)\n\n // Add the day to the current week\n currentWeek.push(day)\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek)\n currentWeek = []\n }\n }\n\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() + i)\n currentWeek.push(adjacentDay)\n }\n\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\n const d = new Date(date)\n const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1)\n }\n return d\n}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\n const parts = value.split('-').map(Number)\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2])\n}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number) {\n const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000)\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i)\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record<string, CustomDateFormat>\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric' }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric' }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: true }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter<any>, value: Date) {\n const date = adapter.toJsDate(value)\n const year = date.getFullYear()\n const month = padStart(String(date.getMonth() + 1), 2, '0')\n const day = padStart(String(date.getDate()), 2, '0')\n\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getWeek (date: Date, locale: string, firstDayOfWeek?: number, firstWeekMinSize?: number) {\n const weekInfoFromLocale = weekInfo(locale)\n const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0\n const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1\n function firstWeekSize (year: number) {\n const yearStart = new Date(year, 0, 1)\n return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days')\n }\n\n let year = getYear(date)\n const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6)\n if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {\n year++\n }\n\n const yearStart = new Date(year, 0, 1)\n const size = firstWeekSize(year)\n const d1w1 = size >= minWeekSize\n ? addDays(yearStart, size - 7)\n : addDays(yearStart, size)\n\n return 1 + getDiff(date, d1w1, 'weeks')\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear()\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4)\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7))\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60))\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60))\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000)\n default: {\n return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter<Date> {\n locale: string\n formats?: Record<string, CustomDateFormat>\n\n constructor (options: { locale: string, formats?: Record<string, CustomDateFormat> }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeekArray(date, this.locale, firstDay)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return startOfWeek(date, this.locale, firstDay)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeekdays(this.locale, firstDay)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getWeek (date: Date, firstDayOfWeek?: number | string, firstWeekMinSize?: number) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeek(date, this.locale, firstDay, firstWeekMinSize)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -58,6 +58,7 @@ export declare function createDate(options: DateOptions | undefined, locale: Loc
|
|
58
58
|
getDiff: (date: unknown, comparing: unknown, unit?: string) => number;
|
59
59
|
getWeekArray: (date: unknown, firstDayOfWeek?: number | string) => unknown[][];
|
60
60
|
getWeekdays: (firstDayOfWeek?: number | string) => string[];
|
61
|
+
getWeek: (date: unknown, firstDayOfWeek?: number | string, firstWeekMinSize?: number) => number;
|
61
62
|
getMonth: (date: unknown) => number;
|
62
63
|
setMonth: (date: unknown, month: number) => unknown;
|
63
64
|
getDate: (date: unknown) => number;
|
@@ -71,4 +72,3 @@ export declare function createDate(options: DateOptions | undefined, locale: Loc
|
|
71
72
|
};
|
72
73
|
};
|
73
74
|
export declare function useDate(): DateInstance;
|
74
|
-
export declare function getWeek(adapter: DateAdapter<any>, value: any): number;
|
@@ -78,24 +78,4 @@ export function useDate() {
|
|
78
78
|
const locale = useLocale();
|
79
79
|
return createInstance(options, locale);
|
80
80
|
}
|
81
|
-
|
82
|
-
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
83
|
-
export function getWeek(adapter, value) {
|
84
|
-
const date = adapter.toJsDate(value);
|
85
|
-
let year = date.getFullYear();
|
86
|
-
let d1w1 = new Date(year, 0, 1);
|
87
|
-
if (date < d1w1) {
|
88
|
-
year = year - 1;
|
89
|
-
d1w1 = new Date(year, 0, 1);
|
90
|
-
} else {
|
91
|
-
const tv = new Date(year + 1, 0, 1);
|
92
|
-
if (date >= tv) {
|
93
|
-
year = year + 1;
|
94
|
-
d1w1 = tv;
|
95
|
-
}
|
96
|
-
}
|
97
|
-
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
98
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
99
|
-
return Math.floor(diffDays / 7) + 1;
|
100
|
-
}
|
101
81
|
//# sourceMappingURL=date.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"date.js","names":["useLocale","inject","reactive","watch","mergeDeep","VuetifyDateAdapter","DateModule","DateOptionsSymbol","Symbol","for","DateAdapterSymbol","createDate","options","locale","_options","adapter","af","bg","ca","ckb","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","instance","createInstance","current","value","formats","useDate","Error"
|
1
|
+
{"version":3,"file":"date.js","names":["useLocale","inject","reactive","watch","mergeDeep","VuetifyDateAdapter","DateModule","DateOptionsSymbol","Symbol","for","DateAdapterSymbol","createDate","options","locale","_options","adapter","af","bg","ca","ckb","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","instance","createInstance","current","value","formats","useDate","Error"],"sources":["../../../src/composables/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record<string, any>\n locale: Record<string, any>\n}\n\nexport type DateOptions = Partial<InternalDateOptions>\n\nexport const DateOptionsSymbol: InjectionKey<InternalDateOptions> = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey<DateInstance> = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return instance\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -13,6 +13,7 @@ import { getPropertyFromItem, propsFactory, wrapInArray } from "../util/index.js
|
|
13
13
|
// Composables
|
14
14
|
export const defaultFilter = (value, query, item) => {
|
15
15
|
if (value == null || query == null) return -1;
|
16
|
+
if (!query.length) return 0;
|
16
17
|
value = value.toString().toLocaleLowerCase();
|
17
18
|
query = query.toString().toLocaleLowerCase();
|
18
19
|
const result = [];
|
@@ -25,7 +26,7 @@ export const defaultFilter = (value, query, item) => {
|
|
25
26
|
};
|
26
27
|
function normaliseMatch(match, query) {
|
27
28
|
if (match == null || typeof match === 'boolean' || match === -1) return;
|
28
|
-
if (typeof match === 'number') return [[match, query.length]];
|
29
|
+
if (typeof match === 'number') return [[match, match + query.length]];
|
29
30
|
if (Array.isArray(match[0])) return match;
|
30
31
|
return [match];
|
31
32
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter.js","names":["computed","shallowRef","unref","watchEffect","createVNode","_createVNode","Fragment","_Fragment","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","toString","toLocaleLowerCase","result","idx","indexOf","push","length","normaliseMatch","match","Array","isArray","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","loop","i","transformed","customMatches","defaultMatches","key","keyFilter","title","defaultMatchesLength","customMatchesLength","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get","highlightResult","name","text","start","slice"],"sources":["../../src/composables/filter.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - boolean: match without highlight\n * - number: single match (index), length already known\n * - []: single match (start, end)\n * - [][]: multiple matches (start, end), shouldn't overlap\n */\nexport type FilterMatchArraySingle = readonly [number, number]\nexport type FilterMatchArrayMultiple = readonly FilterMatchArraySingle[]\nexport type FilterMatchArray = FilterMatchArraySingle | FilterMatchArrayMultiple\nexport type FilterMatch = boolean | number | FilterMatchArray\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n value = value.toString().toLocaleLowerCase()\n query = query.toString().toLocaleLowerCase()\n\n const result = []\n let idx = value.indexOf(query)\n while (~idx) {\n result.push([idx, idx + query.length] as const)\n\n idx = value.indexOf(query, idx + query.length)\n }\n\n return result.length ? result : -1\n}\n\nfunction normaliseMatch (match: FilterMatch, query: string): FilterMatchArrayMultiple | undefined {\n if (match == null || typeof match === 'boolean' || match === -1) return\n if (typeof match === 'number') return [[match, query.length]]\n if (Array.isArray(match[0])) return match as FilterMatchArrayMultiple\n return [match] as FilterMatchArrayMultiple\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatchArrayMultiple | undefined> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n const defaultMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = normaliseMatch(match, query)\n else defaultMatches[key] = normaliseMatch(match, query)\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = normaliseMatch(match, query)\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems = shallowRef<T[]>([])\n const filteredMatches = shallowRef(new Map<unknown, Record<string, FilterMatchArrayMultiple | undefined>>())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n\nexport function highlightResult (name: string, text: string, matches: FilterMatchArrayMultiple | undefined) {\n if (matches == null || !matches.length) return text\n\n return matches.map((match, i) => {\n const start = i === 0 ? 0 : matches[i - 1][1]\n const result = [\n <span class={ `${name}__unmask` }>{ text.slice(start, match[0]) }</span>,\n <span class={ `${name}__mask` }>{ text.slice(match[0], match[1]) }</span>,\n ]\n if (i === matches.length - 1) {\n result.push(<span class={ `${name}__unmask` }>{ text.slice(match[1]) }</span>)\n }\n return <>{ result }</>\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"filter.js","names":["computed","shallowRef","unref","watchEffect","createVNode","_createVNode","Fragment","_Fragment","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","length","toString","toLocaleLowerCase","result","idx","indexOf","push","normaliseMatch","match","Array","isArray","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","loop","i","transformed","customMatches","defaultMatches","key","keyFilter","title","defaultMatchesLength","customMatchesLength","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get","highlightResult","name","text","start","slice"],"sources":["../../src/composables/filter.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - boolean: match without highlight\n * - number: single match (index), length already known\n * - []: single match (start, end)\n * - [][]: multiple matches (start, end), shouldn't overlap\n */\nexport type FilterMatchArraySingle = readonly [number, number]\nexport type FilterMatchArrayMultiple = readonly FilterMatchArraySingle[]\nexport type FilterMatchArray = FilterMatchArraySingle | FilterMatchArrayMultiple\nexport type FilterMatch = boolean | number | FilterMatchArray\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n if (!query.length) return 0\n\n value = value.toString().toLocaleLowerCase()\n query = query.toString().toLocaleLowerCase()\n\n const result = []\n let idx = value.indexOf(query)\n while (~idx) {\n result.push([idx, idx + query.length] as const)\n\n idx = value.indexOf(query, idx + query.length)\n }\n\n return result.length ? result : -1\n}\n\nfunction normaliseMatch (match: FilterMatch, query: string): FilterMatchArrayMultiple | undefined {\n if (match == null || typeof match === 'boolean' || match === -1) return\n if (typeof match === 'number') return [[match, match + query.length]]\n if (Array.isArray(match[0])) return match as FilterMatchArrayMultiple\n return [match] as FilterMatchArrayMultiple\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatchArrayMultiple | undefined> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n const defaultMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = normaliseMatch(match, query)\n else defaultMatches[key] = normaliseMatch(match, query)\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = normaliseMatch(match, query)\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems = shallowRef<T[]>([])\n const filteredMatches = shallowRef(new Map<unknown, Record<string, FilterMatchArrayMultiple | undefined>>())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n\nexport function highlightResult (name: string, text: string, matches: FilterMatchArrayMultiple | undefined) {\n if (matches == null || !matches.length) return text\n\n return matches.map((match, i) => {\n const start = i === 0 ? 0 : matches[i - 1][1]\n const result = [\n <span class={ `${name}__unmask` }>{ text.slice(start, match[0]) }</span>,\n <span class={ `${name}__mask` }>{ text.slice(match[0], match[1]) }</span>,\n ]\n if (i === matches.length - 1) {\n result.push(<span class={ `${name}__unmask` }>{ text.slice(match[1]) }</span>)\n }\n return <>{ result }</>\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -107,12 +107,7 @@ export function useVirtual(props, items) {
|
|
107
107
|
}
|
108
108
|
function calculateOffset(index) {
|
109
109
|
index = clamp(index, 0, items.value.length - 1);
|
110
|
-
|
111
|
-
const fraction = index % 1;
|
112
|
-
const next = whole + 1;
|
113
|
-
const wholeOffset = offsets[whole] || 0;
|
114
|
-
const nextOffset = offsets[next] || wholeOffset;
|
115
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
110
|
+
return offsets[index] || 0;
|
116
111
|
}
|
117
112
|
function calculateIndex(scrollTop) {
|
118
113
|
return binaryClosest(offsets, scrollTop);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"virtual.js","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","getPropertyFromItem","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","itemKey","Array","Function","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","whole","floor","fraction","next","wholeOffset","nextOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","val","oldVal","scrollTimeout","handleScroll","scrollTime","scrollDeltaT","sign","clearTimeout","setTimeout","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","_index","raw","key","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight: number | string | null | undefined\n itemKey: SelectItemKey\n height: number | string | undefined\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n const whole = Math.floor(index)\n const fraction = index % 1\n const next = whole + 1\n const wholeOffset = offsets[whole] || 0\n const nextOffset = offsets[next] || wholeOffset\n return wholeOffset + (nextOffset - wholeOffset) * fraction\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n let scrollTimeout = -1\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n window.clearTimeout(scrollTimeout)\n scrollTimeout = window.setTimeout(handleScrollend, 500)\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n window.clearTimeout(scrollTimeout)\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index),\n }\n })\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: 1 })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"virtual.js","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","getPropertyFromItem","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","itemKey","Array","Function","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","val","oldVal","scrollTimeout","handleScroll","scrollTime","scrollDeltaT","sign","clearTimeout","setTimeout","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","_index","raw","key","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight: number | string | null | undefined\n itemKey: SelectItemKey\n height: number | string | undefined\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n let scrollTimeout = -1\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n window.clearTimeout(scrollTimeout)\n scrollTimeout = window.setTimeout(handleScrollend, 500)\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n window.clearTimeout(scrollTimeout)\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index),\n }\n })\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: 1 })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.d.ts
CHANGED
@@ -60,6 +60,7 @@ export declare const createVuetify: {
|
|
60
60
|
getDiff: (date: unknown, comparing: unknown, unit?: string) => number;
|
61
61
|
getWeekArray: (date: unknown, firstDayOfWeek?: number | string) => unknown[][];
|
62
62
|
getWeekdays: (firstDayOfWeek?: number | string) => string[];
|
63
|
+
getWeek: (date: unknown, firstDayOfWeek?: number | string, firstWeekMinSize?: number) => number;
|
63
64
|
getMonth: (date: unknown) => number;
|
64
65
|
setMonth: (date: unknown, month: number) => unknown;
|
65
66
|
getDate: (date: unknown) => number;
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.1-
|
19
|
+
export const version = "3.8.1-master.2025-04-08";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/entry-bundler.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entry-bundler.js","names":["blueprints","components","directives","createVuetify","_createVuetify","options","arguments","length","undefined","version"],"sources":["../src/entry-bundler.ts"],"sourcesContent":["/* eslint-disable local-rules/sort-imports */\n\n// Styles\nimport './styles/main.sass'\n\n// Components\nimport * as blueprints from './blueprints'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\n\n// Types\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n blueprints,\n components,\n directives,\n}\nexport * from './composables'\n"],"mappings":"AAAA;;AAEA;AACA;;AAEA;AAAA,OACO,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc,0BAExC;AAGA,OAAO,MAAMD,aAAa,GAAG,SAAAA,CAAA,EAAkC;EAAA,IAAjCE,OAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxD,OAAOF,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMI,OAAO,
|
1
|
+
{"version":3,"file":"entry-bundler.js","names":["blueprints","components","directives","createVuetify","_createVuetify","options","arguments","length","undefined","version"],"sources":["../src/entry-bundler.ts"],"sourcesContent":["/* eslint-disable local-rules/sort-imports */\n\n// Styles\nimport './styles/main.sass'\n\n// Components\nimport * as blueprints from './blueprints'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\n\n// Types\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n blueprints,\n components,\n directives,\n}\nexport * from './composables'\n"],"mappings":"AAAA;;AAEA;AACA;;AAEA;AAAA,OACO,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc,0BAExC;AAGA,OAAO,MAAMD,aAAa,GAAG,SAAAA,CAAA,EAAkC;EAAA,IAAjCE,OAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxD,OAAOF,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMI,OAAO,4BAAsB;AAC1CN,aAAa,CAACM,OAAO,GAAGA,OAAO;AAE/B,SACET,UAAU,EACVC,UAAU,EACVC,UAAU;AACX","ignoreList":[]}
|