vuetify 3.5.1 → 3.5.2

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.
Files changed (57) hide show
  1. package/dist/json/attributes.json +15 -27
  2. package/dist/json/importMap.json +132 -132
  3. package/dist/json/tags.json +0 -3
  4. package/dist/json/web-types.json +47 -65
  5. package/dist/vuetify-labs.css +1337 -1350
  6. package/dist/vuetify-labs.d.ts +59 -80
  7. package/dist/vuetify-labs.esm.js +27 -24
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +27 -24
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +1157 -1170
  12. package/dist/vuetify.d.ts +90 -111
  13. package/dist/vuetify.esm.js +27 -24
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +27 -24
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +21 -22
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VColorPicker/VColorPickerEdit.mjs +1 -1
  21. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  22. package/lib/components/VColorPicker/util/index.mjs +1 -1
  23. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  24. package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
  25. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  26. package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -3
  27. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  28. package/lib/components/VDatePicker/index.d.mts +45 -63
  29. package/lib/components/VLabel/VLabel.mjs +5 -4
  30. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  31. package/lib/components/VLabel/index.d.mts +6 -9
  32. package/lib/components/VMenu/VMenu.mjs +1 -0
  33. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  34. package/lib/components/VOverlay/scrollStrategies.mjs +3 -0
  35. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  36. package/lib/components/VSelectionControl/VSelectionControl.mjs +4 -2
  37. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  38. package/lib/components/VTable/VTable.css +15 -28
  39. package/lib/components/VTable/VTable.sass +6 -13
  40. package/lib/components/VTable/_variables.scss +1 -1
  41. package/lib/components/VWindow/VWindow.css +1 -1
  42. package/lib/components/VWindow/VWindow.sass +1 -1
  43. package/lib/components/index.d.mts +51 -72
  44. package/lib/composables/calendar.mjs +1 -1
  45. package/lib/composables/calendar.mjs.map +1 -1
  46. package/lib/composables/date/adapters/vuetify.mjs +2 -8
  47. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  48. package/lib/composables/group.mjs +4 -1
  49. package/lib/composables/group.mjs.map +1 -1
  50. package/lib/composables/validation.mjs +1 -1
  51. package/lib/composables/validation.mjs.map +1 -1
  52. package/lib/entry-bundler.mjs +1 -1
  53. package/lib/framework.mjs +1 -1
  54. package/lib/index.d.mts +39 -39
  55. package/lib/labs/VCalendar/index.d.mts +8 -8
  56. package/lib/labs/components.d.mts +8 -8
  57. package/package.json +2 -2
@@ -36,7 +36,7 @@ export function useCalendar(props) {
36
36
  }, v => adapter.getYear(v));
37
37
  const month = useProxiedModel(props, 'month', undefined, v => {
38
38
  const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);
39
- const date = adapter.setYear(adapter.date(), adapter.getYear(year.value));
39
+ const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
40
40
  return adapter.setMonth(date, value);
41
41
  }, v => adapter.getMonth(v));
42
42
  const weeksInMonth = computed(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.mjs","names":["getWeek","useDate","useProxiedModel","computed","propsFactory","wrapInArray","makeCalendarProps","allowedDates","Array","Function","disabled","Boolean","displayValue","modelValue","month","Number","String","max","min","showAdjacentMonths","year","weekdays","type","default","useCalendar","props","adapter","model","v","date","value","length","isArray","undefined","getYear","startOfYear","setYear","getMonth","setMonth","weeksInMonth","weeks","getWeekArray","days","flat","daysInMonth","lastDay","week","day","push","addDays","genDays","today","filter","includes","toJsDate","getDay","map","index","isoDate","toISO","isAdjacent","isSameMonth","isStart","isSameDay","startOfMonth","isEnd","endOfMonth","isSame","formatted","format","isDisabled","isWeekStart","isWeekEnd","isToday","isHidden","isSelected","some","localized","daysInWeek","startOfWeek","weekNumbers","isAfter","d"],"sources":["../../src/composables/calendar.ts"],"sourcesContent":["// Composables\nimport { getWeek, useDate } from '@/composables/date/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport interface CalendarProps {\n allowedDates: unknown[] | ((date: unknown) => boolean)\n disabled: boolean\n displayValue: unknown\n modelValue: unknown[]\n max: unknown\n min: unknown\n showAdjacentMonths?: boolean\n month: number | string\n weekdays: number[]\n year: number | string\n\n 'onUpdate:modelValue': (value: unknown[]) => void\n 'onUpdate:month': (value: number) => void\n 'onUpdate:year': (value: number) => void\n}\n\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function],\n disabled: Boolean,\n displayValue: null as any as PropType<unknown>,\n modelValue: Array as PropType<unknown[] | undefined>,\n month: [Number, String],\n max: null as any as PropType<unknown>,\n min: null as any as PropType<unknown>,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array<number>,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n },\n}, 'calendar')\n\nexport function useCalendar (props: CalendarProps) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v),\n )\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue)\n if (model.value.length > 0) return adapter.date(model.value[0])\n if (props.min) return adapter.date(props.min)\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0])\n\n return adapter.date()\n })\n\n const year = useProxiedModel(\n props,\n 'year',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value)\n\n return adapter.startOfYear(adapter.setYear(adapter.date(), value))\n },\n v => adapter.getYear(v)\n )\n\n const month = useProxiedModel(\n props,\n 'month',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value)\n const date = adapter.setYear(adapter.date(), adapter.getYear(year.value))\n\n return adapter.setMonth(date, value)\n },\n v => adapter.getMonth(v)\n )\n\n const weeksInMonth = computed<Date[][]>((): Date[][] => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks as Date[][]\n })\n\n function genDays (days: Date[], today: Date) {\n return days.filter(date => {\n return props.weekdays.includes(adapter.toJsDate(date).getDay())\n }).map((date, index) => {\n const isoDate = adapter.toISO(date)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value))\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value))\n const isSame = adapter.isSameDay(date, month.value)\n\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n }\n\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(model.value)\n const week = []\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day))\n }\n\n const days = week as Date[]\n\n const today = adapter.date() as Date\n\n return genDays(days, today)\n })\n\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat()\n const today = adapter.date() as Date\n\n return genDays(days, today)\n })\n\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null\n })\n })\n\n function isDisabled (value: unknown) {\n if (props.disabled) return true\n\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return false\n }\n\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekNumbers,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.mjs","names":["getWeek","useDate","useProxiedModel","computed","propsFactory","wrapInArray","makeCalendarProps","allowedDates","Array","Function","disabled","Boolean","displayValue","modelValue","month","Number","String","max","min","showAdjacentMonths","year","weekdays","type","default","useCalendar","props","adapter","model","v","date","value","length","isArray","undefined","getYear","startOfYear","setYear","getMonth","startOfMonth","setMonth","weeksInMonth","weeks","getWeekArray","days","flat","daysInMonth","lastDay","week","day","push","addDays","genDays","today","filter","includes","toJsDate","getDay","map","index","isoDate","toISO","isAdjacent","isSameMonth","isStart","isSameDay","isEnd","endOfMonth","isSame","formatted","format","isDisabled","isWeekStart","isWeekEnd","isToday","isHidden","isSelected","some","localized","daysInWeek","startOfWeek","weekNumbers","isAfter","d"],"sources":["../../src/composables/calendar.ts"],"sourcesContent":["// Composables\nimport { getWeek, useDate } from '@/composables/date/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport interface CalendarProps {\n allowedDates: unknown[] | ((date: unknown) => boolean) | undefined\n disabled: boolean\n displayValue: unknown\n modelValue: unknown[] | undefined\n max: unknown\n min: unknown\n showAdjacentMonths: boolean\n month: number | string | undefined\n weekdays: number[]\n year: number | string | undefined\n\n 'onUpdate:modelValue': ((value: unknown[]) => void) | undefined\n 'onUpdate:month': ((value: number) => void) | undefined\n 'onUpdate:year': ((value: number) => void) | undefined\n}\n\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function] as PropType<unknown[] | ((date: unknown) => boolean)>,\n disabled: Boolean,\n displayValue: null as any as PropType<unknown>,\n modelValue: Array as PropType<unknown[]>,\n month: [Number, String],\n max: null as any as PropType<unknown>,\n min: null as any as PropType<unknown>,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array<number>,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n },\n}, 'calendar')\n\nexport function useCalendar (props: CalendarProps) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v),\n )\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue)\n if (model.value.length > 0) return adapter.date(model.value[0])\n if (props.min) return adapter.date(props.min)\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0])\n\n return adapter.date()\n })\n\n const year = useProxiedModel(\n props,\n 'year',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value)\n\n return adapter.startOfYear(adapter.setYear(adapter.date(), value))\n },\n v => adapter.getYear(v)\n )\n\n const month = useProxiedModel(\n props,\n 'month',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value)\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value))\n\n return adapter.setMonth(date, value)\n },\n v => adapter.getMonth(v)\n )\n\n const weeksInMonth = computed<Date[][]>((): Date[][] => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks as Date[][]\n })\n\n function genDays (days: Date[], today: Date) {\n return days.filter(date => {\n return props.weekdays.includes(adapter.toJsDate(date).getDay())\n }).map((date, index) => {\n const isoDate = adapter.toISO(date)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value))\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value))\n const isSame = adapter.isSameDay(date, month.value)\n\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n }\n\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(model.value)\n const week = []\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day))\n }\n\n const days = week as Date[]\n\n const today = adapter.date() as Date\n\n return genDays(days, today)\n })\n\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat()\n const today = adapter.date() as Date\n\n return genDays(days, today)\n })\n\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null\n })\n })\n\n function isDisabled (value: unknown) {\n if (props.disabled) return true\n\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return false\n }\n\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekNumbers,\n }\n}\n"],"mappings":"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"}
@@ -229,16 +229,13 @@ function date(value) {
229
229
  return null;
230
230
  }
231
231
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
232
-
233
- // The number of letters returned by getWeekday() varies by date library
234
- // So we've opted for 3-letter abbreviations for all locales
235
232
  function getWeekdays(locale) {
236
233
  const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
237
234
  return createRange(7).map(i => {
238
235
  const weekday = new Date(sundayJanuarySecond2000);
239
236
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
240
237
  return new Intl.DateTimeFormat(locale, {
241
- weekday: 'short'
238
+ weekday: 'narrow'
242
239
  }).format(weekday);
243
240
  });
244
241
  }
@@ -301,10 +298,7 @@ function format(value, formatString, locale, formats) {
301
298
  };
302
299
  break;
303
300
  case 'dayOfMonth':
304
- options = {
305
- day: 'numeric'
306
- };
307
- break;
301
+ return new Intl.NumberFormat(locale).format(newDate.getDate());
308
302
  case 'shortDate':
309
303
  options = {
310
304
  year: '2-digit',
@@ -1 +1 @@
1
- {"version":3,"file":"vuetify.mjs","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","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","slice","toUpperCase","lastDayWeekIndex","i","adjacentDay","Date","setDate","getDate","push","day","getFullYear","getMonth","length","startOfWeek","d","endOfWeek","parseLocalDate","value","parts","split","map","Number","_YYYMMDD","parsed","test","parse","isNaN","sundayJanuarySecond2000","getWeekdays","daysFromSunday","weekday","Intl","DateTimeFormat","format","formatString","formats","newDate","customFormat","options","month","year","hour","hour12","timeZone","timeZoneName","toISO","adapter","toJsDate","String","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getNextMonth","startOfYear","endOfYear","isWithinRange","range","isAfter","isBefore","isValid","getTime","comparing","isEqual","isSameDay","isSameMonth","getDiff","unit","c","Math","floor","count","setYear","setFullYear","startOfDay","endOfDay","VuetifyDateAdapter","constructor"],"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) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 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) {\n const d = new Date(date)\n while (d.getDay() !== 0) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date) {\n const d = new Date(date)\n while (d.getDay() !== 6) {\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\n// The number of letters returned by getWeekday() varies by date library\n// So we've opted for 3-letter abbreviations for all locales\nfunction getWeekdays (locale: string) {\n const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()]\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: 'short' }).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 'fullDateWithWeekday':\n options = { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' }\n break\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'keyboardDate':\n options = { day: '2-digit', month: '2-digit', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'dayOfMonth':\n options = { day: 'numeric' }\n break\n case 'shortDate':\n options = { year: '2-digit', month: 'numeric', day: 'numeric' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\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.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 getNextMonth (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 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 getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n if (unit === 'month') {\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n }\n\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\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 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())\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) {\n return getWeekArray(date, this.locale)\n }\n\n startOfWeek (date: Date): Date {\n return startOfWeek(date)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date)\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 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 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 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 () {\n return getWeekdays(this.locale)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(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,mCAE9B;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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"}
1
+ {"version":3,"file":"vuetify.mjs","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","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","slice","toUpperCase","lastDayWeekIndex","i","adjacentDay","Date","setDate","getDate","push","day","getFullYear","getMonth","length","startOfWeek","d","endOfWeek","parseLocalDate","value","parts","split","map","Number","_YYYMMDD","parsed","test","parse","isNaN","sundayJanuarySecond2000","getWeekdays","daysFromSunday","weekday","Intl","DateTimeFormat","format","formatString","formats","newDate","customFormat","options","month","year","hour","hour12","NumberFormat","timeZone","timeZoneName","toISO","adapter","toJsDate","String","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getNextMonth","startOfYear","endOfYear","isWithinRange","range","isAfter","isBefore","isValid","getTime","comparing","isEqual","isSameDay","isSameMonth","getDiff","unit","c","Math","floor","count","setYear","setFullYear","startOfDay","endOfDay","VuetifyDateAdapter","constructor"],"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) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 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) {\n const d = new Date(date)\n while (d.getDay() !== 0) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date) {\n const d = new Date(date)\n while (d.getDay() !== 6) {\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) {\n const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()]\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 'fullDateWithWeekday':\n options = { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' }\n break\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'keyboardDate':\n options = { day: '2-digit', month: '2-digit', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'shortDate':\n options = { year: '2-digit', month: 'numeric', day: 'numeric' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\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.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 getNextMonth (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 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 getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n if (unit === 'month') {\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n }\n\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\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 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())\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) {\n return getWeekArray(date, this.locale)\n }\n\n startOfWeek (date: Date): Date {\n return startOfWeek(date)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date)\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 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 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 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 () {\n return getWeekdays(this.locale)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(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,mCAE9B;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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"}
@@ -1,6 +1,6 @@
1
1
  // Composables
2
2
  import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
3
- import { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue';
3
+ import { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, unref, watch } from 'vue';
4
4
  import { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
5
5
  export const makeGroupProps = propsFactory({
6
6
  modelValue: {
@@ -81,6 +81,9 @@ export function useGroup(props, injectKey) {
81
81
  const key = Symbol.for(`${injectKey.description}:id`);
82
82
  const children = findChildrenWithProvide(key, groupVm?.vnode);
83
83
  const index = children.indexOf(vm);
84
+ if (unref(unwrapped.value) == null) {
85
+ unwrapped.value = index;
86
+ }
84
87
  if (index > -1) {
85
88
  items.splice(index, 0, unwrapped);
86
89
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","emit","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","unref","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","emit","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACjGC,WAAW,EAAEC,SAAS,EAAEC,uBAAuB,EAAEC,kBAAkB,EAAEC,MAAM,EAAEC,YAAY,EAAEC,WAAW,6BAE/G;AAiDA,OAAO,MAAMC,cAAc,GAAGF,YAAY,CAAC;EACzCG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAEC;EACX,CAAC;EACDC,QAAQ,EAAEC,OAAO;EACjBC,SAAS,EAAE,CAACD,OAAO,EAAEE,MAAM,CAAgC;EAC3DC,GAAG,EAAEC,MAAM;EACXC,aAAa,EAAEH,MAAM;EACrBI,QAAQ,EAAEN;AACZ,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMO,kBAAkB,GAAGf,YAAY,CAAC;EAC7CgB,KAAK,EAAE,IAAI;EACXF,QAAQ,EAAEN,OAAO;EACjBK,aAAa,EAAEH;AACjB,CAAC,EAAE,YAAY,CAAC;;AAMhB;;AAWA,OAAO,SAASO,YAAYA,CAC1BC,KAAqB,EACrBC,SAAqC,EAEZ;EAAA,IADzBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAf,SAAA,GAAAe,SAAA,MAAG,IAAI;EAEf,MAAME,EAAE,GAAGzB,kBAAkB,CAAC,cAAc,CAAC;EAE7C,IAAI,CAACyB,EAAE,EAAE;IACP,MAAM,IAAIC,KAAK,CACb,kFACF,CAAC;EACH;EAEA,MAAMC,EAAE,GAAG1B,MAAM,CAAC,CAAC;EAEnBT,OAAO,CAACoC,MAAM,CAACC,GAAG,CAAE,GAAER,SAAS,CAACS,WAAY,KAAI,CAAC,EAAEH,EAAE,CAAC;EAEtD,MAAMI,KAAK,GAAG1C,MAAM,CAACgC,SAAS,EAAE,IAAI,CAAC;EAErC,IAAI,CAACU,KAAK,EAAE;IACV,IAAI,CAACT,QAAQ,EAAE,OAAOS,KAAK;IAE3B,MAAM,IAAIL,KAAK,CAAE,2DAA0DL,SAAS,CAACS,WAAY,EAAC,CAAC;EACrG;EAEA,MAAMZ,KAAK,GAAGxB,KAAK,CAAC0B,KAAK,EAAE,OAAO,CAAC;EACnC,MAAMJ,QAAQ,GAAG5B,QAAQ,CAAC,MAAM,CAAC,EAAE2C,KAAK,CAACf,QAAQ,CAACE,KAAK,IAAIE,KAAK,CAACJ,QAAQ,CAAC,CAAC;EAE3Ee,KAAK,CAACC,QAAQ,CAAC;IACbL,EAAE;IACFT,KAAK;IACLF;EACF,CAAC,EAAES,EAAE,CAAC;EAENnC,eAAe,CAAC,MAAM;IACpByC,KAAK,CAACE,UAAU,CAACN,EAAE,CAAC;EACtB,CAAC,CAAC;EAEF,MAAMO,UAAU,GAAG9C,QAAQ,CAAC,MAAM;IAChC,OAAO2C,KAAK,CAACG,UAAU,CAACP,EAAE,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAMZ,aAAa,GAAG3B,QAAQ,CAAC,MAAM8C,UAAU,CAAChB,KAAK,IAAI,CAACa,KAAK,CAAChB,aAAa,CAACG,KAAK,EAAEE,KAAK,CAACL,aAAa,CAAC,CAAC;EAE1GnB,KAAK,CAACsC,UAAU,EAAEhB,KAAK,IAAI;IACzBO,EAAE,CAACU,IAAI,CAAC,gBAAgB,EAAE;MAAEjB;IAAM,CAAC,CAAC;EACtC,CAAC,CAAC;EAEF,OAAO;IACLS,EAAE;IACFO,UAAU;IACVE,MAAM,EAAEA,CAAA,KAAML,KAAK,CAACM,MAAM,CAACV,EAAE,EAAE,CAACO,UAAU,CAAChB,KAAK,CAAC;IACjDmB,MAAM,EAAGnB,KAAc,IAAKa,KAAK,CAACM,MAAM,CAACV,EAAE,EAAET,KAAK,CAAC;IACnDH,aAAa;IACbG,KAAK;IACLF,QAAQ;IACRe;EACF,CAAC;AACH;AAEA,OAAO,SAASO,QAAQA,CACtBlB,KAAiB,EACjBC,SAAqC,EACrC;EACA,IAAIkB,WAAW,GAAG,KAAK;EACvB,MAAMC,KAAK,GAAG/C,QAAQ,CAAc,EAAE,CAAC;EACvC,MAAMgD,QAAQ,GAAGtD,eAAe,CAC9BiC,KAAK,EACL,YAAY,EACZ,EAAE,EACFsB,CAAC,IAAI;IACH,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IAExB,OAAOC,MAAM,CAACH,KAAK,EAAErC,WAAW,CAACuC,CAAC,CAAC,CAAC;EACtC,CAAC,EACDA,CAAC,IAAI;IACH,MAAME,GAAG,GAAGC,SAAS,CAACL,KAAK,EAAEE,CAAC,CAAC;IAE/B,OAAOtB,KAAK,CAACX,QAAQ,GAAGmC,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC;EACtC,CACF,CAAC;EAED,MAAME,OAAO,GAAG9C,kBAAkB,CAAC,UAAU,CAAC;EAE9C,SAASgC,QAAQA,CAAEe,IAAe,EAAEtB,EAA6B,EAAE;IACjE;IACA,MAAMuB,SAAS,GAAGD,IAAuC;IAEzD,MAAME,GAAG,GAAGrB,MAAM,CAACC,GAAG,CAAE,GAAER,SAAS,CAACS,WAAY,KAAI,CAAC;IACrD,MAAMoB,QAAQ,GAAGnD,uBAAuB,CAACkD,GAAG,EAAEH,OAAO,EAAEK,KAAK,CAAC;IAC7D,MAAMC,KAAK,GAAGF,QAAQ,CAACG,OAAO,CAAC5B,EAAE,CAAC;IAElC,IAAI9B,KAAK,CAACqD,SAAS,CAAC9B,KAAK,CAAC,IAAI,IAAI,EAAE;MAClC8B,SAAS,CAAC9B,KAAK,GAAGkC,KAAK;IACzB;IAEA,IAAIA,KAAK,GAAG,CAAC,CAAC,EAAE;MACdZ,KAAK,CAACc,MAAM,CAACF,KAAK,EAAE,CAAC,EAAEJ,SAAS,CAAC;IACnC,CAAC,MAAM;MACLR,KAAK,CAACe,IAAI,CAACP,SAAS,CAAC;IACvB;EACF;EAEA,SAASf,UAAUA,CAAEN,EAAU,EAAE;IAC/B,IAAIY,WAAW,EAAE;;IAEjB;IACA;IACA;;IAEAiB,mBAAmB,CAAC,CAAC;IAErB,MAAMJ,KAAK,GAAGZ,KAAK,CAACiB,SAAS,CAACV,IAAI,IAAIA,IAAI,CAACpB,EAAE,KAAKA,EAAE,CAAC;IACrDa,KAAK,CAACc,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;EACxB;;EAEA;EACA,SAASI,mBAAmBA,CAAA,EAAI;IAC9B,MAAMT,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAACX,IAAI,IAAI,CAACA,IAAI,CAAC/B,QAAQ,CAAC;IAC/C,IAAI+B,IAAI,IAAI3B,KAAK,CAACT,SAAS,KAAK,OAAO,IAAI,CAAC8B,QAAQ,CAACvB,KAAK,CAACM,MAAM,EAAE;MACjEiB,QAAQ,CAACvB,KAAK,GAAG,CAAC6B,IAAI,CAACpB,EAAE,CAAC;IAC5B;EACF;EAEApC,SAAS,CAAC,MAAM;IACdiE,mBAAmB,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFlE,eAAe,CAAC,MAAM;IACpBiD,WAAW,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,SAASF,MAAMA,CAAEV,EAAU,EAAET,KAAe,EAAE;IAC5C,MAAM6B,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAACX,IAAI,IAAIA,IAAI,CAACpB,EAAE,KAAKA,EAAE,CAAC;IAC/C,IAAIT,KAAK,IAAI6B,IAAI,EAAE/B,QAAQ,EAAE;IAE7B,IAAII,KAAK,CAACX,QAAQ,EAAE;MAClB,MAAMkD,aAAa,GAAGlB,QAAQ,CAACvB,KAAK,CAAC0C,KAAK,CAAC,CAAC;MAC5C,MAAMR,KAAK,GAAGO,aAAa,CAACF,SAAS,CAACf,CAAC,IAAIA,CAAC,KAAKf,EAAE,CAAC;MACpD,MAAMO,UAAU,GAAG,CAACkB,KAAK;MACzBlC,KAAK,GAAGA,KAAK,IAAI,CAACgB,UAAU;;MAE5B;MACA;MACA;MACA,IACEA,UAAU,IACVd,KAAK,CAACT,SAAS,IACfgD,aAAa,CAACnC,MAAM,IAAI,CAAC,EACzB;;MAEF;MACA;MACA,IACE,CAACU,UAAU,IACXd,KAAK,CAACP,GAAG,IAAI,IAAI,IACjB8C,aAAa,CAACnC,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAACP,GAAG,EACpC;MAEF,IAAIuC,KAAK,GAAG,CAAC,IAAIlC,KAAK,EAAEyC,aAAa,CAACJ,IAAI,CAAC5B,EAAE,CAAC,MACzC,IAAIyB,KAAK,IAAI,CAAC,IAAI,CAAClC,KAAK,EAAEyC,aAAa,CAACL,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MAE7DX,QAAQ,CAACvB,KAAK,GAAGyC,aAAa;IAChC,CAAC,MAAM;MACL,MAAMzB,UAAU,GAAGO,QAAQ,CAACvB,KAAK,CAAC2C,QAAQ,CAAClC,EAAE,CAAC;MAC9C,IAAIP,KAAK,CAACT,SAAS,IAAIuB,UAAU,EAAE;MAEnCO,QAAQ,CAACvB,KAAK,GAAIA,KAAK,IAAI,CAACgB,UAAU,GAAI,CAACP,EAAE,CAAC,GAAG,EAAE;IACrD;EACF;EAEA,SAASmC,IAAIA,CAAEC,MAAc,EAAE;IAC7B;IACA,IAAI3C,KAAK,CAACX,QAAQ,EAAEZ,WAAW,CAAC,yDAAyD,CAAC;IAE1F,IAAI,CAAC4C,QAAQ,CAACvB,KAAK,CAACM,MAAM,EAAE;MAC1B,MAAMuB,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAACX,IAAI,IAAI,CAACA,IAAI,CAAC/B,QAAQ,CAAC;MAC/C+B,IAAI,KAAKN,QAAQ,CAACvB,KAAK,GAAG,CAAC6B,IAAI,CAACpB,EAAE,CAAC,CAAC;IACtC,CAAC,MAAM;MACL,MAAMqC,SAAS,GAAGvB,QAAQ,CAACvB,KAAK,CAAC,CAAC,CAAC;MACnC,MAAM+C,YAAY,GAAGzB,KAAK,CAACiB,SAAS,CAACS,CAAC,IAAIA,CAAC,CAACvC,EAAE,KAAKqC,SAAS,CAAC;MAE7D,IAAIG,QAAQ,GAAG,CAACF,YAAY,GAAGF,MAAM,IAAIvB,KAAK,CAAChB,MAAM;MACrD,IAAI4C,OAAO,GAAG5B,KAAK,CAAC2B,QAAQ,CAAC;MAE7B,OAAOC,OAAO,CAACpD,QAAQ,IAAImD,QAAQ,KAAKF,YAAY,EAAE;QACpDE,QAAQ,GAAG,CAACA,QAAQ,GAAGJ,MAAM,IAAIvB,KAAK,CAAChB,MAAM;QAC7C4C,OAAO,GAAG5B,KAAK,CAAC2B,QAAQ,CAAC;MAC3B;MAEA,IAAIC,OAAO,CAACpD,QAAQ,EAAE;MAEtByB,QAAQ,CAACvB,KAAK,GAAG,CAACsB,KAAK,CAAC2B,QAAQ,CAAC,CAACxC,EAAE,CAAC;IACvC;EACF;EAEA,MAAM0C,KAAmB,GAAG;IAC1BrC,QAAQ;IACRC,UAAU;IACVQ,QAAQ;IACRJ,MAAM;IACNrB,QAAQ,EAAEtB,KAAK,CAAC0B,KAAK,EAAE,UAAU,CAAC;IAClCkD,IAAI,EAAEA,CAAA,KAAMR,IAAI,CAACtB,KAAK,CAAChB,MAAM,GAAG,CAAC,CAAC;IAClC+C,IAAI,EAAEA,CAAA,KAAMT,IAAI,CAAC,CAAC,CAAC;IACnB5B,UAAU,EAAGP,EAAU,IAAKc,QAAQ,CAACvB,KAAK,CAAC2C,QAAQ,CAAClC,EAAE,CAAC;IACvDZ,aAAa,EAAE3B,QAAQ,CAAC,MAAMgC,KAAK,CAACL,aAAa,CAAC;IAClDyB,KAAK,EAAEpD,QAAQ,CAAC,MAAMoD,KAAK,CAAC;IAC5BgC,YAAY,EAAGtD,KAAc,IAAKsD,YAAY,CAAChC,KAAK,EAAEtB,KAAK;EAC7D,CAAC;EAED1B,OAAO,CAAC6B,SAAS,EAAEgD,KAAK,CAAC;EAEzB,OAAOA,KAAK;AACd;AAEA,SAASG,YAAYA,CAAEhC,KAA6B,EAAEtB,KAAc,EAAE;EACpE,MAAMuD,GAAG,GAAG9B,MAAM,CAACH,KAAK,EAAE,CAACtB,KAAK,CAAC,CAAC;EAElC,IAAI,CAACuD,GAAG,CAACjD,MAAM,EAAE,OAAO,CAAC,CAAC;EAE1B,OAAOgB,KAAK,CAACiB,SAAS,CAACV,IAAI,IAAIA,IAAI,CAACpB,EAAE,KAAK8C,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD;AAEA,SAAS9B,MAAMA,CAAEH,KAA6B,EAAEnC,UAAiB,EAAE;EACjE,MAAMoE,GAAa,GAAG,EAAE;EAExBpE,UAAU,CAACqE,OAAO,CAACxD,KAAK,IAAI;IAC1B,MAAM6B,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAACX,IAAI,IAAIjD,SAAS,CAACoB,KAAK,EAAE6B,IAAI,CAAC7B,KAAK,CAAC,CAAC;IAC7D,MAAMyD,WAAW,GAAGnC,KAAK,CAACtB,KAAK,CAAC;IAEhC,IAAI6B,IAAI,EAAE7B,KAAK,IAAI,IAAI,EAAE;MACvBuD,GAAG,CAAClB,IAAI,CAACR,IAAI,CAACpB,EAAE,CAAC;IACnB,CAAC,MAAM,IAAIgD,WAAW,IAAI,IAAI,EAAE;MAC9BF,GAAG,CAAClB,IAAI,CAACoB,WAAW,CAAChD,EAAE,CAAC;IAC1B;EACF,CAAC,CAAC;EAEF,OAAO8C,GAAG;AACZ;AAEA,SAAS5B,SAASA,CAAEL,KAA6B,EAAEiC,GAAU,EAAE;EAC7D,MAAMG,MAAiB,GAAG,EAAE;EAE5BH,GAAG,CAACC,OAAO,CAAC/C,EAAE,IAAI;IAChB,MAAMkD,SAAS,GAAGrC,KAAK,CAACiB,SAAS,CAACV,IAAI,IAAIA,IAAI,CAACpB,EAAE,KAAKA,EAAE,CAAC;IACzD,IAAI,CAACkD,SAAS,EAAE;MACd,MAAM9B,IAAI,GAAGP,KAAK,CAACqC,SAAS,CAAC;MAC7BD,MAAM,CAACrB,IAAI,CAACR,IAAI,CAAC7B,KAAK,IAAI,IAAI,GAAG6B,IAAI,CAAC7B,KAAK,GAAG2D,SAAS,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF,OAAOD,MAAM;AACf"}
@@ -112,7 +112,7 @@ export function useValidation(props) {
112
112
  if (!val) validate();
113
113
  });
114
114
  });
115
- watch(isValid, () => {
115
+ watch([isValid, errorMessages], () => {
116
116
  form?.update(uid.value, isValid.value, errorMessages.value);
117
117
  });
118
118
  function reset() {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","names":["makeFocusProps","useForm","useProxiedModel","useToggleScope","computed","nextTick","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","watch","getCurrentInstanceName","getUid","propsFactory","wrapInArray","makeValidationProps","disabled","type","Boolean","default","error","errorMessages","Array","String","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","isDisabled","isReadonly","concat","slice","Math","max","set","Set","split","blur","has","input","submit","lazy","isValid","isValidating","validationClasses","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","silent","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy'\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n blur: set.has('blur') || set.has('input'),\n input: set.has('input'),\n submit: set.has('submit'),\n lazy: set.has('lazy'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(true)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch(isValid, () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n model.value = null\n nextTick(resetValidation)\n }\n\n function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n validate(true)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"validation.mjs","names":["makeFocusProps","useForm","useProxiedModel","useToggleScope","computed","nextTick","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","watch","getCurrentInstanceName","getUid","propsFactory","wrapInArray","makeValidationProps","disabled","type","Boolean","default","error","errorMessages","Array","String","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","isDisabled","isReadonly","concat","slice","Math","max","set","Set","split","blur","has","input","submit","lazy","isValid","isValidating","validationClasses","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","silent","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy'\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n blur: set.has('blur') || set.has('input'),\n input: set.has('input'),\n submit: set.has('submit'),\n lazy: set.has('lazy'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(true)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n model.value = null\n nextTick(resetValidation)\n }\n\n function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n validate(true)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ export const createVuetify = function () {
15
15
  ...options
16
16
  });
17
17
  };
18
- export const version = "3.5.1";
18
+ export const version = "3.5.2";
19
19
  createVuetify.version = version;
20
20
  export { components, directives };
21
21
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.5.1";
100
+ export const version = "3.5.2";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup