vuetify 3.4.0-beta.0 → 3.4.0

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 (204) hide show
  1. package/dist/json/attributes.json +1980 -2004
  2. package/dist/json/importMap.json +110 -110
  3. package/dist/json/tags.json +1 -7
  4. package/dist/json/web-types.json +3767 -3807
  5. package/dist/vuetify-labs.css +1045 -1032
  6. package/dist/vuetify-labs.d.ts +227 -305
  7. package/dist/vuetify-labs.esm.js +115 -87
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +115 -87
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +546 -533
  12. package/dist/vuetify.d.ts +260 -338
  13. package/dist/vuetify.esm.js +115 -87
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +115 -87
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +963 -961
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/index.d.mts +1 -1
  21. package/lib/components/VApp/index.d.mts +1 -1
  22. package/lib/components/VAppBar/VAppBar.mjs +1 -1
  23. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  24. package/lib/components/VAppBar/index.d.mts +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +1 -1
  28. package/lib/components/VAvatar/index.d.mts +1 -1
  29. package/lib/components/VBadge/VBadge.mjs +2 -2
  30. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  31. package/lib/components/VBadge/index.d.mts +1 -1
  32. package/lib/components/VBanner/index.d.mts +1 -1
  33. package/lib/components/VBottomNavigation/index.d.mts +1 -1
  34. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
  35. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  36. package/lib/components/VBottomSheet/index.d.mts +1 -1
  37. package/lib/components/VBreadcrumbs/index.d.mts +1 -1
  38. package/lib/components/VBtn/VBtn.css +0 -1
  39. package/lib/components/VBtn/_variables.scss +1 -1
  40. package/lib/components/VBtn/index.d.mts +1 -1
  41. package/lib/components/VBtnGroup/VBtnGroup.css +0 -1
  42. package/lib/components/VBtnGroup/index.d.mts +1 -1
  43. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -1
  44. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  45. package/lib/components/VBtnToggle/index.d.mts +1 -1
  46. package/lib/components/VCard/index.d.mts +1 -1
  47. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  48. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  49. package/lib/components/VCarousel/VCarouselItem.mjs +2 -2
  50. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  51. package/lib/components/VCarousel/index.d.mts +1 -1
  52. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  53. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  54. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  55. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  56. package/lib/components/VCheckbox/index.d.mts +1 -1
  57. package/lib/components/VChip/index.d.mts +1 -1
  58. package/lib/components/VChipGroup/index.d.mts +1 -1
  59. package/lib/components/VCode/index.d.mts +1 -1
  60. package/lib/components/VColorPicker/VColorPicker.mjs +1 -1
  61. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  62. package/lib/components/VColorPicker/index.d.mts +1 -1
  63. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  64. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  65. package/lib/components/VCombobox/index.d.mts +1 -1
  66. package/lib/components/VCounter/index.d.mts +1 -1
  67. package/lib/components/VDataIterator/index.d.mts +1 -1
  68. package/lib/components/VDataTable/VDataTable.css +6 -1
  69. package/lib/components/VDataTable/VDataTable.mjs +6 -5
  70. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  71. package/lib/components/VDataTable/VDataTable.sass +5 -1
  72. package/lib/components/VDataTable/VDataTableHeaders.mjs +3 -2
  73. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  74. package/lib/components/VDataTable/VDataTableRow.mjs +8 -4
  75. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  76. package/lib/components/VDataTable/VDataTableServer.mjs +8 -7
  77. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  78. package/lib/components/VDataTable/VDataTableVirtual.mjs +7 -6
  79. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  80. package/lib/components/VDataTable/index.d.mts +213 -196
  81. package/lib/components/VDatePicker/VDatePicker.mjs +6 -6
  82. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  83. package/lib/components/VDatePicker/index.d.mts +1 -1
  84. package/lib/components/VDefaultsProvider/index.d.mts +1 -1
  85. package/lib/components/VDialog/VDialog.mjs +1 -1
  86. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  87. package/lib/components/VDialog/index.d.mts +1 -1
  88. package/lib/components/VDivider/index.d.mts +1 -1
  89. package/lib/components/VExpansionPanel/index.d.mts +1 -1
  90. package/lib/components/VField/index.d.mts +1 -1
  91. package/lib/components/VFileInput/VFileInput.mjs +3 -3
  92. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  93. package/lib/components/VFileInput/index.d.mts +1 -1
  94. package/lib/components/VFooter/index.d.mts +1 -1
  95. package/lib/components/VForm/index.d.mts +1 -1
  96. package/lib/components/VGrid/VSpacer.mjs +3 -0
  97. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  98. package/lib/components/VGrid/index.d.mts +1 -1
  99. package/lib/components/VHover/index.d.mts +1 -1
  100. package/lib/components/VIcon/index.d.mts +1 -1
  101. package/lib/components/VImg/VImg.mjs +1 -1
  102. package/lib/components/VImg/VImg.mjs.map +1 -1
  103. package/lib/components/VImg/index.d.mts +1 -1
  104. package/lib/components/VInfiniteScroll/index.d.mts +1 -1
  105. package/lib/components/VInput/index.d.mts +1 -1
  106. package/lib/components/VItemGroup/index.d.mts +1 -1
  107. package/lib/components/VKbd/index.d.mts +1 -1
  108. package/lib/components/VLabel/index.d.mts +1 -1
  109. package/lib/components/VLayout/index.d.mts +1 -1
  110. package/lib/components/VLazy/index.d.mts +1 -1
  111. package/lib/components/VList/VList.mjs +2 -2
  112. package/lib/components/VList/VList.mjs.map +1 -1
  113. package/lib/components/VList/VListChildren.mjs +1 -1
  114. package/lib/components/VList/VListChildren.mjs.map +1 -1
  115. package/lib/components/VList/index.d.mts +1 -1
  116. package/lib/components/VLocaleProvider/index.d.mts +1 -1
  117. package/lib/components/VMain/index.d.mts +1 -1
  118. package/lib/components/VMenu/VMenu.mjs +1 -1
  119. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  120. package/lib/components/VMenu/index.d.mts +1 -1
  121. package/lib/components/VMessages/index.d.mts +1 -1
  122. package/lib/components/VNavigationDrawer/index.d.mts +1 -1
  123. package/lib/components/VOtpInput/index.d.mts +1 -1
  124. package/lib/components/VOverlay/index.d.mts +1 -1
  125. package/lib/components/VPagination/index.d.mts +1 -1
  126. package/lib/components/VParallax/index.d.mts +1 -1
  127. package/lib/components/VProgressCircular/index.d.mts +1 -1
  128. package/lib/components/VProgressLinear/index.d.mts +1 -1
  129. package/lib/components/VRadio/index.d.mts +1 -1
  130. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  131. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  132. package/lib/components/VRadioGroup/index.d.mts +1 -1
  133. package/lib/components/VRangeSlider/VRangeSlider.mjs +1 -1
  134. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  135. package/lib/components/VRangeSlider/index.d.mts +1 -1
  136. package/lib/components/VRating/index.d.mts +1 -1
  137. package/lib/components/VResponsive/index.d.mts +1 -1
  138. package/lib/components/VSelect/VSelect.mjs +1 -1
  139. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  140. package/lib/components/VSelect/index.d.mts +1 -1
  141. package/lib/components/VSelectionControl/index.d.mts +1 -1
  142. package/lib/components/VSelectionControlGroup/index.d.mts +1 -1
  143. package/lib/components/VSheet/index.d.mts +1 -1
  144. package/lib/components/VSkeletonLoader/index.d.mts +1 -1
  145. package/lib/components/VSlideGroup/index.d.mts +1 -1
  146. package/lib/components/VSlider/VSlider.mjs +1 -1
  147. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  148. package/lib/components/VSlider/index.d.mts +1 -1
  149. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  150. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  151. package/lib/components/VSnackbar/index.d.mts +1 -1
  152. package/lib/components/VStepper/VStepper.mjs +1 -1
  153. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  154. package/lib/components/VStepper/VStepperWindow.mjs +9 -7
  155. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  156. package/lib/components/VStepper/VStepperWindowItem.mjs +4 -2
  157. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  158. package/lib/components/VStepper/index.d.mts +19 -141
  159. package/lib/components/VSwitch/VSwitch.mjs +2 -2
  160. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  161. package/lib/components/VSwitch/index.d.mts +1 -1
  162. package/lib/components/VSystemBar/index.d.mts +1 -1
  163. package/lib/components/VTable/VTable.css +12 -2
  164. package/lib/components/VTable/VTable.sass +7 -2
  165. package/lib/components/VTable/index.d.mts +1 -1
  166. package/lib/components/VTabs/VTab.mjs +1 -1
  167. package/lib/components/VTabs/VTab.mjs.map +1 -1
  168. package/lib/components/VTabs/VTabs.mjs +1 -1
  169. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  170. package/lib/components/VTabs/index.d.mts +1 -1
  171. package/lib/components/VTextField/VTextField.mjs +3 -3
  172. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  173. package/lib/components/VTextField/index.d.mts +1 -1
  174. package/lib/components/VTextarea/VTextarea.mjs +5 -3
  175. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  176. package/lib/components/VTextarea/index.d.mts +1 -1
  177. package/lib/components/VThemeProvider/index.d.mts +1 -1
  178. package/lib/components/VTimeline/index.d.mts +1 -1
  179. package/lib/components/VToolbar/index.d.mts +1 -1
  180. package/lib/components/VTooltip/VTooltip.mjs +1 -1
  181. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  182. package/lib/components/VTooltip/index.d.mts +1 -1
  183. package/lib/components/VValidation/index.d.mts +1 -1
  184. package/lib/components/VVirtualScroll/index.d.mts +1 -1
  185. package/lib/components/VWindow/index.d.mts +1 -1
  186. package/lib/components/index.d.mts +227 -305
  187. package/lib/components/transitions/index.d.mts +1 -1
  188. package/lib/composables/list-items.mjs +2 -2
  189. package/lib/composables/list-items.mjs.map +1 -1
  190. package/lib/entry-bundler.mjs +1 -1
  191. package/lib/entry-bundler.mjs.map +1 -1
  192. package/lib/framework.mjs +1 -1
  193. package/lib/framework.mjs.map +1 -1
  194. package/lib/index.d.mts +33 -33
  195. package/lib/labs/VConfirmEdit/index.d.mts +1 -1
  196. package/lib/labs/VPicker/VPicker.mjs +1 -1
  197. package/lib/labs/VPicker/VPicker.mjs.map +1 -1
  198. package/lib/labs/VPicker/index.d.mts +1 -1
  199. package/lib/labs/components.d.mts +1 -1
  200. package/lib/util/defineComponent.mjs +2 -2
  201. package/lib/util/defineComponent.mjs.map +1 -1
  202. package/lib/util/helpers.mjs +17 -3
  203. package/lib/util/helpers.mjs.map +1 -1
  204. package/package.json +3 -3
@@ -161,12 +161,12 @@ export const VDatePicker = genericComponent()({
161
161
  model.value = val;
162
162
  });
163
163
  useRender(() => {
164
- const [pickerProps] = VPicker.filterProps(props);
165
- const [datePickerControlsProps] = VDatePickerControls.filterProps(props);
166
- const [datePickerHeaderProps] = VDatePickerHeader.filterProps(props);
167
- const [datePickerMonthProps] = VDatePickerMonth.filterProps(props);
168
- const [datePickerMonthsProps] = VDatePickerMonths.filterProps(omit(props, ['modelValue']));
169
- const [datePickerYearsProps] = VDatePickerYears.filterProps(omit(props, ['modelValue']));
164
+ const pickerProps = VPicker.filterProps(props);
165
+ const datePickerControlsProps = VDatePickerControls.filterProps(props);
166
+ const datePickerHeaderProps = VDatePickerHeader.filterProps(props);
167
+ const datePickerMonthProps = VDatePickerMonth.filterProps(props);
168
+ const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue']);
169
+ const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue']);
170
170
  return _createVNode(VPicker, _mergeProps(pickerProps, {
171
171
  "class": ['v-date-picker', `v-date-picker--${viewMode.value}`, props.class],
172
172
  "style": props.style,
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VTextField","makeVPickerProps","VPicker","useDate","useLocale","useProxiedModel","computed","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","inputMode","inputText","inputPlaceholder","header","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","model","undefined","v","multiple","internal","value","viewMode","_model","isValid","month","Number","getMonth","startOfMonth","year","getYear","startOfYear","setMonth","isReversing","length","format","text","setYear","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","addDays","isAfter","endOfMonth","onClickAppend","onClickNext","onClickPrev","onClickMonth","onClickYear","val","oldVal","before","after","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","showWeek","_Fragment","$event","actions"],"sources":["../../../src/components/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n inputMode: {\n type: String as PropType<'calendar' | 'keyboard'>,\n default: 'calendar',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n inputPlaceholder: {\n type: String,\n default: 'dd/mm/yyyy',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <T, Multiple extends boolean = false> (\n props: {\n modelValue?: Multiple extends true ? T[] : T\n 'onUpdate:modelValue'?: (value: Multiple extends true ? T[] : T) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n const internal = ref(model.value)\n watchEffect(() => {\n internal.value = model.value\n })\n\n const viewMode = useProxiedModel(props, 'viewMode')\n const inputMode = useProxiedModel(props, 'inputMode')\n const _model = computed(() => {\n const value = adapter.date(internal.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(_model.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(_model.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n return props.multiple && model.value.length > 1\n ? t('$vuetify.datePicker.itemsSelected', model.value.length)\n : model.value[0] && adapter.isValid(model.value[0])\n ? adapter.format(model.value[0], 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n return adapter.format(\n adapter.setYear(adapter.setMonth(adapter.date(), month.value), year.value),\n 'monthAndYear',\n )\n })\n // TODO: implement in v3.5\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.setYear(_date, year.value)\n _date = adapter.setMonth(_date, month.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n\n emit('update:month', month.value)\n } else {\n year.value++\n month.value = 0\n\n emit('update:year', year.value)\n }\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n\n emit('update:month', month.value)\n } else {\n year.value--\n month.value = 11\n\n emit('update:year', month.value)\n }\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n watch(month, () => {\n if (viewMode.value === 'months') onClickMonth()\n })\n\n watch(year, () => {\n if (viewMode.value === 'year') onClickYear()\n })\n\n watch(internal, (val, oldVal) => {\n const before = adapter.date(wrapInArray(val)[0])\n const after = adapter.date(wrapInArray(oldVal)[0])\n\n isReversing.value = adapter.isBefore(before, after)\n\n model.value = val\n })\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerHeaderProps] = VDatePickerHeader.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerMonthsProps] = VDatePickerMonths.filterProps(omit(props, ['modelValue']))\n const [datePickerYearsProps] = VDatePickerYears.filterProps(omit(props, ['modelValue']))\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n props.class,\n ]}\n style={ props.style }\n width={ props.showWeek ? 408 : 360 }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n header={ header.value }\n transition={ headerTransition.value }\n onClick:append={ onClickAppend }\n v-slots={ slots }\n />\n ),\n default: () => props.inputMode === 'calendar' ? (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n text={ text.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ internal.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n label={ t(props.inputText) }\n placeholder={ props.inputPlaceholder }\n />\n </div>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VTextField","makeVPickerProps","VPicker","useDate","useLocale","useProxiedModel","computed","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","inputMode","inputText","inputPlaceholder","header","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","model","undefined","v","multiple","internal","value","viewMode","_model","isValid","month","Number","getMonth","startOfMonth","year","getYear","startOfYear","setMonth","isReversing","length","format","text","setYear","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","addDays","isAfter","endOfMonth","onClickAppend","onClickNext","onClickPrev","onClickMonth","onClickYear","val","oldVal","before","after","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","showWeek","_Fragment","$event","actions"],"sources":["../../../src/components/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n inputMode: {\n type: String as PropType<'calendar' | 'keyboard'>,\n default: 'calendar',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n inputPlaceholder: {\n type: String,\n default: 'dd/mm/yyyy',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <T, Multiple extends boolean = false> (\n props: {\n modelValue?: Multiple extends true ? T[] : T\n 'onUpdate:modelValue'?: (value: Multiple extends true ? T[] : T) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n const internal = ref(model.value)\n watchEffect(() => {\n internal.value = model.value\n })\n\n const viewMode = useProxiedModel(props, 'viewMode')\n const inputMode = useProxiedModel(props, 'inputMode')\n const _model = computed(() => {\n const value = adapter.date(internal.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(_model.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(_model.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n return props.multiple && model.value.length > 1\n ? t('$vuetify.datePicker.itemsSelected', model.value.length)\n : model.value[0] && adapter.isValid(model.value[0])\n ? adapter.format(model.value[0], 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n return adapter.format(\n adapter.setYear(adapter.setMonth(adapter.date(), month.value), year.value),\n 'monthAndYear',\n )\n })\n // TODO: implement in v3.5\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.setYear(_date, year.value)\n _date = adapter.setMonth(_date, month.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n\n emit('update:month', month.value)\n } else {\n year.value++\n month.value = 0\n\n emit('update:year', year.value)\n }\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n\n emit('update:month', month.value)\n } else {\n year.value--\n month.value = 11\n\n emit('update:year', month.value)\n }\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n watch(month, () => {\n if (viewMode.value === 'months') onClickMonth()\n })\n\n watch(year, () => {\n if (viewMode.value === 'year') onClickYear()\n })\n\n watch(internal, (val, oldVal) => {\n const before = adapter.date(wrapInArray(val)[0])\n const after = adapter.date(wrapInArray(oldVal)[0])\n\n isReversing.value = adapter.isBefore(before, after)\n\n model.value = val\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n props.class,\n ]}\n style={ props.style }\n width={ props.showWeek ? 408 : 360 }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n header={ header.value }\n transition={ headerTransition.value }\n onClick:append={ onClickAppend }\n v-slots={ slots }\n />\n ),\n default: () => props.inputMode === 'calendar' ? (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n text={ text.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ internal.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n label={ t(props.inputText) }\n placeholder={ props.inputPlaceholder }\n />\n </div>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}
@@ -33,7 +33,7 @@ type GenericProps<Props, Slots extends Record<string, unknown>> = {
33
33
  $slots: MakeSlots<Slots>;
34
34
  };
35
35
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
36
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
36
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
37
37
  }
38
38
 
39
39
  type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, PropType } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  type DefaultsInstance = undefined | {
@@ -88,7 +88,7 @@ export const VDialog = genericComponent()({
88
88
  'aria-expanded': String(isActive.value)
89
89
  }, props.activatorProps));
90
90
  useRender(() => {
91
- const [overlayProps] = VOverlay.filterProps(props);
91
+ const overlayProps = VOverlay.filterProps(props);
92
92
  return _createVNode(VOverlay, _mergeProps({
93
93
  "ref": overlay,
94
94
  "class": ['v-dialog', {
@@ -1 +1 @@
1
- {"version":3,"file":"VDialog.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","mergeProps","nextTick","ref","watch","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","makeVDialogProps","fullscreen","Boolean","retainFocus","type","default","scrollable","origin","scrollStrategy","transition","component","zIndex","VDialog","name","props","emits","value","setup","_ref","slots","isActive","scopeId","overlay","onFocusin","e","before","relatedTarget","after","target","contentEl","globalTop","document","includes","contains","focusable","length","firstElement","lastElement","focus","val","addEventListener","removeEventListener","immediate","preventScroll","activatorEl","activatorProps","String","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","_len","arguments","args","Array","_key"],"sources":["../../../src/components/VDialog/VDialog.tsx"],"sourcesContent":["// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent<OverlaySlots>()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n watch(isActive, async val => {\n await nextTick()\n if (val) {\n overlay.value!.contentEl?.focus({ preventScroll: true })\n } else {\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(isActive.value),\n }, props.activatorProps)\n )\n\n useRender(() => {\n const [overlayProps] = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n aria-modal=\"true\"\n activatorProps={ activatorProps.value }\n role=\"dialog\"\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VDialog\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDialog.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","mergeProps","nextTick","ref","watch","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","makeVDialogProps","fullscreen","Boolean","retainFocus","type","default","scrollable","origin","scrollStrategy","transition","component","zIndex","VDialog","name","props","emits","value","setup","_ref","slots","isActive","scopeId","overlay","onFocusin","e","before","relatedTarget","after","target","contentEl","globalTop","document","includes","contains","focusable","length","firstElement","lastElement","focus","val","addEventListener","removeEventListener","immediate","preventScroll","activatorEl","activatorProps","String","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","_len","arguments","args","Array","_key"],"sources":["../../../src/components/VDialog/VDialog.tsx"],"sourcesContent":["// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent<OverlaySlots>()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n watch(isActive, async val => {\n await nextTick()\n if (val) {\n overlay.value!.contentEl?.focus({ preventScroll: true })\n } else {\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(isActive.value),\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n aria-modal=\"true\"\n activatorProps={ activatorProps.value }\n role=\"dialog\"\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VDialog\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n"],"mappings":"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"}
@@ -25,7 +25,7 @@ declare class Box {
25
25
  }
26
26
 
27
27
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
28
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
28
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
29
29
  }
30
30
 
31
31
  interface LocationStrategyData {
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  declare const VDivider: {
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  declare const VExpansionPanels: {
@@ -27,7 +27,7 @@ type GenericProps<Props, Slots extends Record<string, unknown>> = {
27
27
  $slots: MakeSlots<Slots>;
28
28
  };
29
29
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
30
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
30
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
31
31
  }
32
32
 
33
33
  type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
@@ -130,11 +130,11 @@ export const VFileInput = genericComponent()({
130
130
  const hasCounter = !!(slots.counter || props.counter);
131
131
  const hasDetails = !!(hasCounter || slots.details);
132
132
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
133
- const [{
133
+ const {
134
134
  modelValue: _,
135
135
  ...inputProps
136
- }] = VInput.filterProps(props);
137
- const [fieldProps] = filterFieldProps(props);
136
+ } = VInput.filterProps(props);
137
+ const fieldProps = filterFieldProps(props);
138
138
  return _createVNode(VInput, _mergeProps({
139
139
  "ref": vInputRef,
140
140
  "modelValue": model.value,
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.mjs","names":["VChip","VCounter","VField","filterFieldProps","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","VFileInput","name","inheritAttrs","props","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","_ref4","fieldClass","slotProps","_Fragment","preventDefault","target","selection","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VFileInput.mjs","names":["VChip","VCounter","VField","filterFieldProps","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","VFileInput","name","inheritAttrs","props","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","_ref4","fieldClass","slotProps","_Fragment","preventDefault","target","selection","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK;AAAA,SACLC,QAAQ;AAAA,SACRC,MAAM;AAAA,SACNC,gBAAgB,EAAEC,eAAe;AAAA,SACjCC,eAAe,EAAEC,MAAM,gCAEhC;AAAA,SACSC,QAAQ;AAAA,SACRC,WAAW;AAAA,SACXC,SAAS;AAAA,SACTC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAElDC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,YAAY,EACZC,SAAS,EACTC,WAAW,gCAGb;AAcA,OAAO,MAAMC,mBAAmB,GAAGH,YAAY,CAAC;EAC9CI,KAAK,EAAEC,OAAO;EACdC,OAAO,EAAED,OAAO;EAChBE,iBAAiB,EAAE;IACjBC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,aAAa,EAAE;IACbH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDE,QAAQ,EAAEP,OAAO;EACjBQ,QAAQ,EAAE;IACRL,IAAI,EAAE,CAACH,OAAO,EAAES,MAAM,CAAoC;IAC1DJ,OAAO,EAAE,KAAK;IACdK,SAAS,EAAGC,CAAmB,IAAK;MAClC,OACE,OAAOA,CAAC,KAAK,SAAS,IACtB,CAAC,IAAI,EAAE,IAAI,CAAC,CAACC,QAAQ,CAACD,CAAC,CAAC;IAE5B;EACF,CAAC;EAED,GAAG9B,eAAe,CAAC;IAAEgC,WAAW,EAAE;EAAQ,CAAC,CAAC;EAE5CC,UAAU,EAAE;IACVX,IAAI,EAAEY,KAAyB;IAC/BV,OAAO,EAAEA,CAAA,KAAO,EAAG;IACnBK,SAAS,EAAGM,GAAQ,IAAK;MACvB,OAAOnB,WAAW,CAACmB,GAAG,CAAC,CAACC,KAAK,CAACN,CAAC,IAAIA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC;IACxE;EACF,CAAC;EAED,GAAG/B,eAAe,CAAC;IAAEsC,SAAS,EAAE;EAAK,CAAC;AACxC,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAG1B,gBAAgB,EAAmB,CAAC;EAC5D2B,IAAI,EAAE,YAAY;EAElBC,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAExB,mBAAmB,EAAE;EAE5ByB,KAAK,EAAE;IACL,eAAe,EAAGC,CAAa,IAAK,IAAI;IACxC,mBAAmB,EAAGA,CAAa,IAAK,IAAI;IAC5C,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;IAC5C,mBAAmB,EAAGC,KAAa,IAAK;EAC1C,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAM;MAAEI;IAAE,CAAC,GAAG/C,SAAS,EAAE;IACzB,MAAMgD,KAAK,GAAG/C,eAAe,CAACoC,KAAK,EAAE,YAAY,CAAC;IAClD,MAAM;MAAEY,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGrD,QAAQ,CAACuC,KAAK,CAAC;IAClD,MAAMe,IAAI,GAAGlD,QAAQ,CAAC,MAAM,OAAOmC,KAAK,CAACd,QAAQ,KAAK,SAAS,GAAGc,KAAK,CAACd,QAAQ,GAAG8B,SAAS,CAAC;IAC7F,MAAMC,UAAU,GAAGpD,QAAQ,CAAC,MAAM,CAAC8C,KAAK,CAACO,KAAK,IAAI,EAAE,EAAEC,MAAM,CAAC,CAACC,KAAK,EAAAC,KAAA;MAAA,IAAE;QAAEC,IAAI,GAAG;MAAE,CAAC,GAAAD,KAAA;MAAA,OAAKD,KAAK,GAAGE,IAAI;IAAA,GAAE,CAAC,CAAC,CAAC;IACvG,MAAMC,kBAAkB,GAAG1D,QAAQ,CAAC,MAAMO,qBAAqB,CAAC6C,UAAU,CAACC,KAAK,EAAEH,IAAI,CAACG,KAAK,CAAC,CAAC;IAE9F,MAAMM,SAAS,GAAG3D,QAAQ,CAAC,MAAM,CAAC8C,KAAK,CAACO,KAAK,IAAI,EAAE,EAAEO,GAAG,CAACC,IAAI,IAAI;MAC/D,MAAM;QAAE5B,IAAI,GAAG,EAAE;QAAEwB,IAAI,GAAG;MAAE,CAAC,GAAGI,IAAI;MAEpC,OAAO,CAAC1B,KAAK,CAACd,QAAQ,GAClBY,IAAI,GACH,GAAEA,IAAK,KAAI1B,qBAAqB,CAACkD,IAAI,EAAEP,IAAI,CAACG,KAAK,CAAE,GAAE;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAMS,YAAY,GAAG9D,QAAQ,CAAC,MAAM;MAClC,MAAM+D,SAAS,GAAGjB,KAAK,CAACO,KAAK,EAAEW,MAAM,IAAI,CAAC;MAC1C,IAAI7B,KAAK,CAACd,QAAQ,EAAE,OAAOwB,CAAC,CAACV,KAAK,CAACpB,iBAAiB,EAAEgD,SAAS,EAAEL,kBAAkB,CAACL,KAAK,CAAC,MACrF,OAAOR,CAAC,CAACV,KAAK,CAAChB,aAAa,EAAE4C,SAAS,CAAC;IAC/C,CAAC,CAAC;IACF,MAAME,SAAS,GAAG/D,GAAG,EAAU;IAC/B,MAAMgE,SAAS,GAAGhE,GAAG,EAAU;IAC/B,MAAMiE,QAAQ,GAAGjE,GAAG,EAAoB;IACxC,MAAMkE,QAAQ,GAAGpE,QAAQ,CAAC,MACxB+C,SAAS,CAACM,KAAK,IACflB,KAAK,CAACkC,MACP,CAAC;IACF,MAAMC,mBAAmB,GAAGtE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAACyB,QAAQ,CAACU,KAAK,CAACoC,OAAO,CAAC,CAAC;IAC3F,SAASC,OAAOA,CAAA,EAAI;MAClB,IAAIL,QAAQ,CAACd,KAAK,KAAKoB,QAAQ,CAACC,aAAa,EAAE;QAC7CP,QAAQ,CAACd,KAAK,EAAEL,KAAK,EAAE;MACzB;MAEA,IAAI,CAACD,SAAS,CAACM,KAAK,EAAEL,KAAK,EAAE;IAC/B;IACA,SAAS2B,cAAcA,CAAEtC,CAAa,EAAE;MACtCuC,cAAc,CAACvC,CAAC,CAAC;IACnB;IACA,SAASwC,kBAAkBA,CAAExC,CAAa,EAAE;MAC1CM,IAAI,CAAC,mBAAmB,EAAEN,CAAC,CAAC;IAC9B;IACA,SAASuC,cAAcA,CAAEvC,CAAa,EAAE;MACtC8B,QAAQ,CAACd,KAAK,EAAEyB,KAAK,EAAE;MAEvBnC,IAAI,CAAC,eAAe,EAAEN,CAAC,CAAC;IAC1B;IACA,SAAS0C,OAAOA,CAAE1C,CAAa,EAAE;MAC/BA,CAAC,CAAC2C,eAAe,EAAE;MAEnBR,OAAO,EAAE;MAETvE,QAAQ,CAAC,MAAM;QACb6C,KAAK,CAACO,KAAK,GAAG,EAAE;QAEhBjD,SAAS,CAAC+B,KAAK,CAAC,eAAe,CAAC,EAAEE,CAAC,CAAC;MACtC,CAAC,CAAC;IACJ;IAEAlC,KAAK,CAAC2C,KAAK,EAAEmC,QAAQ,IAAI;MACvB,MAAMC,aAAa,GAAG,CAACtD,KAAK,CAACuD,OAAO,CAACF,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAACjB,MAAM;MAElE,IAAIkB,aAAa,IAAIf,QAAQ,CAACd,KAAK,EAAE;QACnCc,QAAQ,CAACd,KAAK,CAACA,KAAK,GAAG,EAAE;MAC3B;IACF,CAAC,CAAC;IAEF5C,SAAS,CAAC,MAAM;MACd,MAAM2E,UAAU,GAAG,CAAC,EAAExC,KAAK,CAAC9B,OAAO,IAAIqB,KAAK,CAACrB,OAAO,CAAC;MACrD,MAAMuE,UAAU,GAAG,CAAC,EAAED,UAAU,IAAIxC,KAAK,CAAC0C,OAAO,CAAC;MAClD,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAGnF,gBAAgB,CAACqC,KAAK,CAAC;MACvD,MAAM;QAAEf,UAAU,EAAE8D,CAAC;QAAE,GAAGC;MAAW,CAAC,GAAG/F,MAAM,CAACgG,WAAW,CAACxD,KAAK,CAAC;MAClE,MAAMyD,UAAU,GAAGpG,gBAAgB,CAAC2C,KAAK,CAAC;MAE1C,OAAA0D,YAAA,CAAAlG,MAAA,EAAAmG,WAAA;QAAA,OAEU7B,SAAS;QAAA,cACLnB,KAAK,CAACO,KAAK;QAAA,uBAAA0C,MAAA,IAAXjD,KAAK,CAACO,KAAK,GAAA0C,MAAA;QAAA,SACd,CACL,cAAc,EACd;UACE,qBAAqB,EAAE,CAAC,CAAC5D,KAAK,CAACvB,KAAK;UACpC,2BAA2B,EAAE0D,mBAAmB,CAACjB;QACnD,CAAC,EACDlB,KAAK,CAAC6D,KAAK,CACZ;QAAA,SACO7D,KAAK,CAAC8D,KAAK;QAAA,mBACDtB;MAAc,GAC3BY,SAAS,EACTG,UAAU;QAAA,eACD,CAACpB,mBAAmB,CAACjB,KAAK;QAAA,WAC9BN,SAAS,CAACM;MAAK;QAGvB,GAAGT,KAAK;QACR1B,OAAO,EAAEgF,KAAA;UAAA,IAAC;YACRC,EAAE;YACFC,UAAU;YACVC,OAAO;YACPC,UAAU;YACVC;UACF,CAAC,GAAAL,KAAA;UAAA,OAAAL,YAAA,CAAAtG,MAAA,EAAAuG,WAAA;YAAA,OAES5B,SAAS;YAAA,gBACA/B,KAAK,CAACT,WAAW;YAAA,eAClBmD,kBAAkB;YAAA,WACtBD,cAAc;YAAA,iBACRG,OAAO;YAAA,wBACA5C,KAAK,CAAC,sBAAsB,CAAC;YAAA,uBAC9BA,KAAK,CAAC,qBAAqB;UAAC,GAC7CyD,UAAU;YAAA,MACVO,EAAE,CAAC9C,KAAK;YAAA,UACJe,QAAQ,CAACf,KAAK,IAAIgD,OAAO,CAAChD,KAAK;YAAA,SAChCgD,OAAO,CAAChD,KAAK;YAAA,YACV+C,UAAU,CAAC/C,KAAK;YAAA,WACjBN,SAAS,CAACM,KAAK;YAAA,SACjBkD,OAAO,CAAClD,KAAK,KAAK;UAAK;YAG7B,GAAGT,KAAK;YACR1B,OAAO,EAAEsF,KAAA;cAAA,IAAC;gBACRrE,KAAK,EAAE;kBAAE6D,KAAK,EAAES,UAAU;kBAAE,GAAGC;gBAAU;cAC3C,CAAC,GAAAF,KAAA;cAAA,OAAAX,YAAA,CAAAc,SAAA,SAAAd,YAAA,UAAAC,WAAA;gBAAA,OAGW3B,QAAQ;gBAAA,QACT,MAAM;gBAAA,YACAmC,UAAU,CAACjD,KAAK;gBAAA,YAChB+C,UAAU,CAAC/C,KAAK;gBAAA,YAChBlB,KAAK,CAACf,QAAQ;gBAAA,QAClBe,KAAK,CAACF,IAAI;gBAAA,WACPI,CAAC,IAAI;kBACbA,CAAC,CAAC2C,eAAe,EAAE;kBAEnB,IAAIsB,UAAU,CAACjD,KAAK,EAAEhB,CAAC,CAACuE,cAAc,EAAE;kBAExCpC,OAAO,EAAE;gBACX,CAAC;gBAAA,YACUnC,CAAC,IAAI;kBACd,IAAI,CAACA,CAAC,CAACwE,MAAM,EAAE;kBAEf,MAAMA,MAAM,GAAGxE,CAAC,CAACwE,MAA0B;kBAC3C/D,KAAK,CAACO,KAAK,GAAG,CAAC,IAAGwD,MAAM,CAACtE,KAAK,IAAI,EAAE,EAAC;gBACvC,CAAC;gBAAA,WACSiC,OAAO;gBAAA,UACRvB;cAAI,GACRyD,SAAS,EACTlB,UAAU,UAAAK,YAAA;gBAAA,SAGJY;cAAU,IACnB,CAAC,CAAC3D,KAAK,CAACO,KAAK,EAAEW,MAAM,KACrBpB,KAAK,CAACkE,SAAS,GAAGlE,KAAK,CAACkE,SAAS,CAAC;gBAChCnD,SAAS,EAAEA,SAAS,CAACN,KAAK;gBAC1BD,UAAU,EAAEA,UAAU,CAACC,KAAK;gBAC5BK,kBAAkB,EAAEA,kBAAkB,CAACL;cACzC,CAAC,CAAC,GACAlB,KAAK,CAACvB,KAAK,GAAG+C,SAAS,CAACN,KAAK,CAACO,GAAG,CAACmD,IAAI,IAAAlB,YAAA,CAAAxG,KAAA;gBAAA,OAE9B0H,IAAI;gBAAA,QACL,OAAO;gBAAA,SACJ5E,KAAK,CAAC6E;cAAK;gBAAA9F,OAAA,EAAAA,CAAA,MAClB6F,IAAI;cAAA,EACR,CAAC,GACApD,SAAS,CAACN,KAAK,CAAC4D,IAAI,CAAC,IAAI,CAAC,CAC7B;YAAA;UAGN;QAAA,CAGN;QACD3B,OAAO,EAAED,UAAU,GAAGqB,SAAS,IAAAb,YAAA,CAAAc,SAAA,SAEzB/D,KAAK,CAAC0C,OAAO,GAAGoB,SAAS,CAAC,EAE1BtB,UAAU,IAAAS,YAAA,CAAAc,SAAA,SAAAd,YAAA,sBAAAA,YAAA,CAAAvG,QAAA;UAAA,UAKG,CAAC,CAACwD,KAAK,CAACO,KAAK,EAAEW,MAAM;UAAA,SACtBF,YAAY,CAACT;QAAK,GACRT,KAAK,CAAC9B,OAAO,GAGpC,EAEJ,GAAGqC;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAOtD,WAAW,CAAC,CAAC,CAAC,EAAEoE,SAAS,EAAEC,SAAS,EAAEC,QAAQ,CAAC;EACxD;AACF,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent, Ref, ComputedRef, nextTick } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  declare const VFooter: {
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  interface FieldValidationResult {
@@ -1,3 +1,6 @@
1
+ // Styles
2
+ import "./VGrid.css";
3
+
1
4
  // Utilities
2
5
  import { createSimpleFunctional } from "../../util/index.mjs";
3
6
  export const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer');
@@ -1 +1 @@
1
- {"version":3,"file":"VSpacer.mjs","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC"}
1
+ {"version":3,"file":"VSpacer.mjs","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AACA;;AAEA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC"}
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, PropType, Prop } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  declare const VContainer: {
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  declare const VHover: {
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
@@ -246,7 +246,7 @@ export const VImg = genericComponent()({
246
246
  });
247
247
  }
248
248
  useRender(() => {
249
- const [responsiveProps] = VResponsive.filterProps(props);
249
+ const responsiveProps = VResponsive.filterProps(props);
250
250
  return _withDirectives(_createVNode(VResponsive, _mergeProps({
251
251
  "class": ['v-img', {
252
252
  'v-img--booting': !isBooted.value
@@ -1 +1 @@
1
- {"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const [responsiveProps] = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, nextTick, PropType } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  interface srcObject {
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, nextTick, PropType } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  type InfiniteScrollSide = 'start' | 'end' | 'both';
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent, ComputedRef, Ref } from 'vue';
3
3
 
4
4
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
6
  }
7
7
 
8
8
  type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];