@vuetify/nightly 3.8.6-master.2025-05-24 → 3.8.6-master.2025-05-26

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 (325) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/dist/json/attributes.json +3745 -3745
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +174 -174
  5. package/dist/json/web-types.json +6589 -6589
  6. package/dist/vuetify-labs.cjs +868 -868
  7. package/dist/vuetify-labs.css +2585 -2585
  8. package/dist/vuetify-labs.d.ts +58 -58
  9. package/dist/vuetify-labs.esm.js +869 -869
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +868 -868
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +755 -755
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3542 -3542
  16. package/dist/vuetify.d.ts +58 -58
  17. package/dist/vuetify.esm.js +756 -756
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +755 -755
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +958 -958
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.js +11 -11
  25. package/lib/components/VAlert/VAlert.js.map +1 -1
  26. package/lib/components/VApp/VApp.js +5 -5
  27. package/lib/components/VApp/VApp.js.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.js +9 -9
  29. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  30. package/lib/components/VAvatar/VAvatar.js +4 -4
  31. package/lib/components/VAvatar/VAvatar.js.map +1 -1
  32. package/lib/components/VBadge/VBadge.js +3 -3
  33. package/lib/components/VBadge/VBadge.js.map +1 -1
  34. package/lib/components/VBanner/VBanner.js +6 -6
  35. package/lib/components/VBanner/VBanner.js.map +1 -1
  36. package/lib/components/VBanner/VBannerActions.js +4 -4
  37. package/lib/components/VBanner/VBannerActions.js.map +1 -1
  38. package/lib/components/VBottomNavigation/VBottomNavigation.js +6 -6
  39. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  40. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +5 -5
  41. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  42. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js +4 -4
  43. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.js.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +5 -5
  45. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  46. package/lib/components/VBtn/VBtn.js +7 -7
  47. package/lib/components/VBtn/VBtn.js.map +1 -1
  48. package/lib/components/VBtnGroup/VBtnGroup.js +4 -4
  49. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  50. package/lib/components/VCard/VCard.js +5 -5
  51. package/lib/components/VCard/VCard.js.map +1 -1
  52. package/lib/components/VCard/VCardActions.js +4 -4
  53. package/lib/components/VCard/VCardActions.js.map +1 -1
  54. package/lib/components/VCard/VCardItem.js +9 -9
  55. package/lib/components/VCard/VCardItem.js.map +1 -1
  56. package/lib/components/VCard/VCardSubtitle.js +4 -4
  57. package/lib/components/VCard/VCardSubtitle.js.map +1 -1
  58. package/lib/components/VCard/VCardText.js +4 -4
  59. package/lib/components/VCard/VCardText.js.map +1 -1
  60. package/lib/components/VCarousel/VCarousel.js +4 -4
  61. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  62. package/lib/components/VChip/VChip.js +11 -11
  63. package/lib/components/VChip/VChip.js.map +1 -1
  64. package/lib/components/VColorPicker/VColorPicker.js +3 -3
  65. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  66. package/lib/components/VColorPicker/VColorPickerCanvas.js +9 -9
  67. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  68. package/lib/components/VColorPicker/VColorPickerEdit.js +6 -6
  69. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  70. package/lib/components/VColorPicker/VColorPickerPreview.js +11 -11
  71. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  72. package/lib/components/VColorPicker/VColorPickerSwatches.js +10 -10
  73. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  74. package/lib/components/VCombobox/VCombobox.js +9 -9
  75. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  76. package/lib/components/VConfirmEdit/VConfirmEdit.js +3 -3
  77. package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
  78. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js +3 -3
  79. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.js.map +1 -1
  80. package/lib/components/VCounter/VCounter.js +5 -5
  81. package/lib/components/VCounter/VCounter.js.map +1 -1
  82. package/lib/components/VDataIterator/VDataIterator.js +5 -5
  83. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  84. package/lib/components/VDataTable/VDataTable.js +4 -4
  85. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  86. package/lib/components/VDataTable/VDataTableColumn.js +5 -5
  87. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  88. package/lib/components/VDataTable/VDataTableFooter.js +6 -6
  89. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  90. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +7 -7
  91. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  92. package/lib/components/VDataTable/VDataTableHeaders.js +11 -11
  93. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  94. package/lib/components/VDataTable/VDataTableRow.js +6 -6
  95. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  96. package/lib/components/VDataTable/VDataTableRows.js +7 -7
  97. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  98. package/lib/components/VDataTable/VDataTableServer.js +4 -4
  99. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  100. package/lib/components/VDataTable/VDataTableVirtual.js +14 -14
  101. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  102. package/lib/components/VDatePicker/VDatePicker.js +3 -3
  103. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  104. package/lib/components/VDatePicker/VDatePickerControls.js +5 -5
  105. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  106. package/lib/components/VDatePicker/VDatePickerHeader.js +8 -8
  107. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  108. package/lib/components/VDatePicker/VDatePickerMonth.js +10 -10
  109. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  110. package/lib/components/VDatePicker/VDatePickerMonths.js +5 -5
  111. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  112. package/lib/components/VDatePicker/VDatePickerYears.js +5 -5
  113. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  114. package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -5
  115. package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
  116. package/lib/components/VDivider/VDivider.js +10 -10
  117. package/lib/components/VDivider/VDivider.js.map +1 -1
  118. package/lib/components/VEmptyState/VEmptyState.js +14 -14
  119. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  120. package/lib/components/VExpansionPanel/VExpansionPanel.js +6 -6
  121. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  122. package/lib/components/VExpansionPanel/VExpansionPanelText.js +5 -5
  123. package/lib/components/VExpansionPanel/VExpansionPanelText.js.map +1 -1
  124. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js +10 -10
  125. package/lib/components/VExpansionPanel/VExpansionPanelTitle.js.map +1 -1
  126. package/lib/components/VExpansionPanel/VExpansionPanels.js +4 -4
  127. package/lib/components/VExpansionPanel/VExpansionPanels.js.map +1 -1
  128. package/lib/components/VFab/VFab.js +7 -7
  129. package/lib/components/VFab/VFab.js.map +1 -1
  130. package/lib/components/VField/VField.js +16 -16
  131. package/lib/components/VField/VField.js.map +1 -1
  132. package/lib/components/VField/VFieldLabel.js +4 -4
  133. package/lib/components/VField/VFieldLabel.js.map +1 -1
  134. package/lib/components/VFileInput/VFileInput.js +5 -5
  135. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  136. package/lib/components/VFooter/VFooter.js +4 -4
  137. package/lib/components/VFooter/VFooter.js.map +1 -1
  138. package/lib/components/VForm/VForm.js +4 -4
  139. package/lib/components/VForm/VForm.js.map +1 -1
  140. package/lib/components/VGrid/VContainer.js +4 -4
  141. package/lib/components/VGrid/VContainer.js.map +1 -1
  142. package/lib/components/VIcon/VIcon.js +5 -5
  143. package/lib/components/VIcon/VIcon.js.map +1 -1
  144. package/lib/components/VImg/VImg.js +19 -19
  145. package/lib/components/VImg/VImg.js.map +1 -1
  146. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +10 -10
  147. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  148. package/lib/components/VInput/VInput.js +9 -9
  149. package/lib/components/VInput/VInput.js.map +1 -1
  150. package/lib/components/VItemGroup/VItemGroup.js +3 -3
  151. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  152. package/lib/components/VLabel/VLabel.js +5 -5
  153. package/lib/components/VLabel/VLabel.js.map +1 -1
  154. package/lib/components/VLayout/VLayout.js +4 -4
  155. package/lib/components/VLayout/VLayout.js.map +1 -1
  156. package/lib/components/VLayout/VLayoutItem.js +4 -4
  157. package/lib/components/VLayout/VLayoutItem.js.map +1 -1
  158. package/lib/components/VLazy/VLazy.js +6 -6
  159. package/lib/components/VLazy/VLazy.js.map +1 -1
  160. package/lib/components/VList/VList.js +4 -4
  161. package/lib/components/VList/VList.js.map +1 -1
  162. package/lib/components/VList/VListGroup.js +5 -5
  163. package/lib/components/VList/VListGroup.js.map +1 -1
  164. package/lib/components/VList/VListItem.js +11 -11
  165. package/lib/components/VList/VListItem.js.map +1 -1
  166. package/lib/components/VList/VListItemAction.js +4 -4
  167. package/lib/components/VList/VListItemAction.js.map +1 -1
  168. package/lib/components/VList/VListItemMedia.js +4 -4
  169. package/lib/components/VList/VListItemMedia.js.map +1 -1
  170. package/lib/components/VList/VListItemSubtitle.js +4 -4
  171. package/lib/components/VList/VListItemSubtitle.js.map +1 -1
  172. package/lib/components/VList/VListSubheader.js +6 -6
  173. package/lib/components/VList/VListSubheader.js.map +1 -1
  174. package/lib/components/VLocaleProvider/VLocaleProvider.js +4 -4
  175. package/lib/components/VLocaleProvider/VLocaleProvider.js.map +1 -1
  176. package/lib/components/VMain/VMain.js +5 -5
  177. package/lib/components/VMain/VMain.js.map +1 -1
  178. package/lib/components/VMessages/VMessages.js +4 -4
  179. package/lib/components/VMessages/VMessages.js.map +1 -1
  180. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +7 -7
  181. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  182. package/lib/components/VNumberInput/VNumberInput.js +8 -8
  183. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  184. package/lib/components/VOtpInput/VOtpInput.js +7 -7
  185. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  186. package/lib/components/VOverlay/VOverlay.js +8 -8
  187. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  188. package/lib/components/VPagination/VPagination.js +11 -11
  189. package/lib/components/VPagination/VPagination.js.map +1 -1
  190. package/lib/components/VParallax/VParallax.js +4 -4
  191. package/lib/components/VParallax/VParallax.js.map +1 -1
  192. package/lib/components/VProgressCircular/VProgressCircular.js +12 -12
  193. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  194. package/lib/components/VProgressLinear/VProgressLinear.js +26 -26
  195. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  196. package/lib/components/VRadioGroup/VRadioGroup.js +2 -2
  197. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  198. package/lib/components/VRangeSlider/VRangeSlider.js +5 -5
  199. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  200. package/lib/components/VRating/VRating.js +14 -14
  201. package/lib/components/VRating/VRating.js.map +1 -1
  202. package/lib/components/VResponsive/VResponsive.js +9 -9
  203. package/lib/components/VResponsive/VResponsive.js.map +1 -1
  204. package/lib/components/VSelect/VSelect.js +7 -7
  205. package/lib/components/VSelect/VSelect.js.map +1 -1
  206. package/lib/components/VSelectionControl/VSelectionControl.js +11 -11
  207. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  208. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js +5 -5
  209. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.js.map +1 -1
  210. package/lib/components/VSheet/VSheet.js +3 -3
  211. package/lib/components/VSheet/VSheet.js.map +1 -1
  212. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
  213. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  214. package/lib/components/VSlideGroup/VSlideGroup.js +12 -12
  215. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  216. package/lib/components/VSlider/VSlider.js +4 -4
  217. package/lib/components/VSlider/VSlider.js.map +1 -1
  218. package/lib/components/VSlider/VSliderThumb.js +19 -19
  219. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  220. package/lib/components/VSlider/VSliderTrack.js +23 -23
  221. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  222. package/lib/components/VSnackbar/VSnackbar.js +4 -4
  223. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  224. package/lib/components/VSnackbarQueue/VSnackbarQueue.js +3 -3
  225. package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
  226. package/lib/components/VSparkline/VBarline.js +12 -12
  227. package/lib/components/VSparkline/VBarline.js.map +1 -1
  228. package/lib/components/VSparkline/VTrendline.js +8 -8
  229. package/lib/components/VSparkline/VTrendline.js.map +1 -1
  230. package/lib/components/VStepper/VStepper.js +2 -2
  231. package/lib/components/VStepper/VStepper.js.map +1 -1
  232. package/lib/components/VStepper/VStepperActions.js +2 -2
  233. package/lib/components/VStepper/VStepperActions.js.map +1 -1
  234. package/lib/components/VStepper/VStepperItem.js +10 -10
  235. package/lib/components/VStepper/VStepperItem.js.map +1 -1
  236. package/lib/components/VSwitch/VSwitch.js +10 -10
  237. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  238. package/lib/components/VSystemBar/VSystemBar.js +4 -4
  239. package/lib/components/VSystemBar/VSystemBar.js.map +1 -1
  240. package/lib/components/VTable/VTable.js +8 -8
  241. package/lib/components/VTable/VTable.js.map +1 -1
  242. package/lib/components/VTabs/VTab.js +4 -4
  243. package/lib/components/VTabs/VTab.js.map +1 -1
  244. package/lib/components/VTabs/VTabs.js +2 -2
  245. package/lib/components/VTabs/VTabs.js.map +1 -1
  246. package/lib/components/VTextField/VTextField.js +12 -12
  247. package/lib/components/VTextField/VTextField.js.map +1 -1
  248. package/lib/components/VTextarea/VTextarea.js +10 -10
  249. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  250. package/lib/components/VThemeProvider/VThemeProvider.js +3 -3
  251. package/lib/components/VThemeProvider/VThemeProvider.js.map +1 -1
  252. package/lib/components/VTimeline/VTimeline.js +5 -5
  253. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  254. package/lib/components/VTimeline/VTimelineDivider.js +17 -17
  255. package/lib/components/VTimeline/VTimelineDivider.js.map +1 -1
  256. package/lib/components/VTimeline/VTimelineItem.js +9 -9
  257. package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
  258. package/lib/components/VToolbar/VToolbar.js +13 -13
  259. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  260. package/lib/components/VToolbar/VToolbarItems.js +4 -4
  261. package/lib/components/VToolbar/VToolbarItems.js.map +1 -1
  262. package/lib/components/VToolbar/VToolbarTitle.js +4 -4
  263. package/lib/components/VToolbar/VToolbarTitle.js.map +1 -1
  264. package/lib/components/VVirtualScroll/VVirtualScroll.js +13 -13
  265. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  266. package/lib/components/VVirtualScroll/VVirtualScrollItem.js +3 -3
  267. package/lib/components/VVirtualScroll/VVirtualScrollItem.js.map +1 -1
  268. package/lib/components/VWindow/VWindow.js +13 -13
  269. package/lib/components/VWindow/VWindow.js.map +1 -1
  270. package/lib/components/VWindow/VWindowItem.js +6 -6
  271. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  272. package/lib/composables/filter.js +8 -8
  273. package/lib/composables/filter.js.map +1 -1
  274. package/lib/composables/icons.js +6 -6
  275. package/lib/composables/icons.js.map +1 -1
  276. package/lib/composables/loader.js +3 -3
  277. package/lib/composables/loader.js.map +1 -1
  278. package/lib/composables/variant.js +5 -5
  279. package/lib/composables/variant.js.map +1 -1
  280. package/lib/entry-bundler.js +1 -1
  281. package/lib/framework.d.ts +58 -58
  282. package/lib/framework.js +1 -1
  283. package/lib/labs/VCalendar/VCalendar.js +15 -15
  284. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  285. package/lib/labs/VCalendar/VCalendarDay.js +4 -4
  286. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  287. package/lib/labs/VCalendar/VCalendarHeader.js +4 -4
  288. package/lib/labs/VCalendar/VCalendarHeader.js.map +1 -1
  289. package/lib/labs/VCalendar/VCalendarInterval.js +10 -10
  290. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  291. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +2 -2
  292. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  293. package/lib/labs/VCalendar/VCalendarMonthDay.js +6 -6
  294. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  295. package/lib/labs/VColorInput/VColorInput.js +3 -3
  296. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  297. package/lib/labs/VDateInput/VDateInput.js +2 -2
  298. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  299. package/lib/labs/VFileUpload/VFileUpload.js +9 -9
  300. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  301. package/lib/labs/VFileUpload/VFileUploadItem.js +3 -3
  302. package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
  303. package/lib/labs/VIconBtn/VIconBtn.js +7 -7
  304. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  305. package/lib/labs/VPicker/VPicker.js +7 -7
  306. package/lib/labs/VPicker/VPicker.js.map +1 -1
  307. package/lib/labs/VPullToRefresh/VPullToRefresh.js +13 -13
  308. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  309. package/lib/labs/VStepperVertical/VStepperVertical.js +2 -2
  310. package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
  311. package/lib/labs/VStepperVertical/VStepperVerticalItem.js +5 -5
  312. package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
  313. package/lib/labs/VTimePicker/VTimePicker.js +2 -2
  314. package/lib/labs/VTimePicker/VTimePicker.js.map +1 -1
  315. package/lib/labs/VTimePicker/VTimePickerClock.js +15 -15
  316. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  317. package/lib/labs/VTimePicker/VTimePickerControls.js +24 -24
  318. package/lib/labs/VTimePicker/VTimePickerControls.js.map +1 -1
  319. package/lib/labs/VTreeview/VTreeviewChildren.js +2 -2
  320. package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
  321. package/lib/labs/VTreeview/VTreeviewGroup.js +2 -2
  322. package/lib/labs/VTreeview/VTreeviewGroup.js.map +1 -1
  323. package/lib/labs/VTreeview/VTreeviewItem.js +3 -3
  324. package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
  325. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"VTimePicker.js","names":["pad","VTimePickerClock","VTimePickerControls","makeVPickerProps","VPicker","useLocale","useProxiedModel","computed","onMounted","ref","watch","createRange","genericComponent","omit","propsFactory","useRender","rangeHours24","rangeHours12am","rangeHours12pm","map","v","range60","makeVTimePickerProps","allowedHours","Function","Array","allowedMinutes","allowedSeconds","ampmInTitle","Boolean","disabled","format","type","String","default","max","min","viewMode","modelValue","readonly","scrollable","useSeconds","title","VTimePicker","name","props","emits","val","setup","_ref","emit","slots","t","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","controlsRef","clockRef","isAllowedHourCb","cb","includes","minHour","Number","split","maxHour","isAllowedMinuteCb","isHourAllowed","value","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","genValue","emitValue","convert24to12","hour","convert12to24","Date","getHours","getMinutes","getSeconds","minute","second","trim","toLowerCase","match","parseInt","firstAllowed","allowedFn","range","first","find","length","setPeriod","newHour","onInput","onChange","emitChange","pickerProps","filterProps","timePickerControlsProps","timePickerClockProps","_createVNode","_mergeProps","undefined","class","style","header","actions"],"sources":["../../../src/labs/VTimePicker/VTimePicker.tsx"],"sourcesContent":["// Styles\nimport './VTimePicker.sass'\n\n// Components\nimport { pad } from './util'\nimport { VTimePickerClock } from './VTimePickerClock'\nimport { VTimePickerControls } from './VTimePickerControls'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { createRange, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTimePickerViewMode } from './shared'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\n\nexport type VTimePickerSlots = Omit<VPickerSlots, 'header'>\n\nexport const makeVTimePickerProps = propsFactory({\n allowedHours: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedMinutes: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedSeconds: [Function, Array] as PropType<AllowFunction | number[]>,\n ampmInTitle: Boolean,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n },\n max: String,\n min: String,\n viewMode: {\n type: String as PropType<VTimePickerViewMode>,\n default: 'hour',\n },\n modelValue: null as any as PropType<any>,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n ...omit(makeVPickerProps({ title: '$vuetify.timePicker.title' }), ['landscape']),\n}, 'VTimePicker')\n\nexport const VTimePicker = genericComponent<VTimePickerSlots>()({\n name: 'VTimePicker',\n\n props: makeVTimePickerProps(),\n\n emits: {\n 'update:hour': (val: number) => true,\n 'update:minute': (val: number) => true,\n 'update:period': (val: Period) => true,\n 'update:second': (val: number) => true,\n 'update:modelValue': (val: string) => true,\n 'update:viewMode': (val: VTimePickerViewMode) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const inputHour = ref(null as number | null)\n const inputMinute = ref(null as number | null)\n const inputSecond = ref(null as number | null)\n const lazyInputHour = ref(null as number | null)\n const lazyInputMinute = ref(null as number | null)\n const lazyInputSecond = ref(null as number | null)\n const period = ref('am' as Period)\n const viewMode = useProxiedModel(props, 'viewMode', 'hour')\n const controlsRef = ref<VTimePickerControls | null>(null)\n const clockRef = ref<VTimePickerClock | null>(null)\n\n const isAllowedHourCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n if (props.allowedHours instanceof Array) {\n cb = (val: number) => (props.allowedHours as number[]).includes(val)\n } else {\n cb = props.allowedHours as AllowFunction\n }\n\n if (!props.min && !props.max) return cb\n\n const minHour = props.min ? Number(props.min.split(':')[0]) : 0\n const maxHour = props.max ? Number(props.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= Number(minHour) &&\n val <= Number(maxHour) &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedMinuteCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n if (props.allowedMinutes instanceof Array) {\n cb = (val: number) => (props.allowedMinutes as number[]).includes(val)\n } else {\n cb = props.allowedMinutes as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + Number(minMinute)\n const maxTime = maxHour * 60 + Number(maxMinute)\n\n return (val: number) => {\n const time = 60 * inputHour.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedSecondCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n const isMinuteAllowed = isHourAllowed &&\n (!isAllowedMinuteCb.value ||\n inputMinute.value === null ||\n isAllowedMinuteCb.value(inputMinute.value)\n )\n\n if (props.allowedSeconds instanceof Array) {\n cb = (val: number) => (props.allowedSeconds as number[]).includes(val)\n } else {\n cb = props.allowedSeconds as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0)\n const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0)\n\n return (val: number) => {\n const time = 3600 * inputHour.value! + 60 * inputMinute.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAmPm = computed((): boolean => {\n return props.format === 'ampm'\n })\n\n watch(() => props.modelValue, val => setInputData(val))\n\n onMounted(() => {\n setInputData(props.modelValue)\n })\n\n function genValue () {\n if (inputHour.value != null && inputMinute.value != null && (!props.useSeconds || inputSecond.value != null)) {\n return `${pad(inputHour.value)}:${pad(inputMinute.value)}` + (props.useSeconds ? `:${pad(inputSecond.value!)}` : '')\n }\n\n return null\n }\n\n function emitValue () {\n const value = genValue()\n if (value !== null) emit('update:modelValue', value)\n }\n\n function convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n function convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n }\n\n function setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n inputHour.value = null\n inputMinute.value = null\n inputSecond.value = null\n } else if (value instanceof Date) {\n inputHour.value = value.getHours()\n inputMinute.value = value.getMinutes()\n inputSecond.value = value.getSeconds()\n } else {\n const [hour, , minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n inputHour.value = period ? convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n inputMinute.value = parseInt(minute, 10)\n inputSecond.value = parseInt(second || 0, 10)\n }\n\n period.value = (inputHour.value == null || inputHour.value < 12) ? 'am' : 'pm'\n }\n\n function firstAllowed (type: VTimePickerViewMode, value: number) {\n const allowedFn = type === 'hour' ? isAllowedHourCb.value : (type === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value)\n if (!allowedFn) return value\n\n // TODO: clean up (Note from V2 code)\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (isAmPm.value\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n }\n\n function setPeriod (val: Period) {\n period.value = val\n if (inputHour.value != null) {\n const newHour = inputHour.value! + (period.value === 'am' ? -12 : 12)\n inputHour.value = firstAllowed('hour', newHour)\n }\n emit('update:period', val)\n emitValue()\n return true\n }\n\n function onInput (value: number) {\n if (viewMode.value === 'hour') {\n inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value\n } else if (viewMode.value === 'minute') {\n inputMinute.value = value\n } else {\n inputSecond.value = value\n }\n }\n\n function onChange (value: number) {\n switch (viewMode.value || 'hour') {\n case 'hour':\n emit('update:hour', value)\n break\n case 'minute':\n emit('update:minute', value)\n break\n case 'second':\n emit('update:second', value)\n break\n default:\n break\n }\n\n const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true)\n if (viewMode.value === 'hour') {\n viewMode.value = 'minute'\n } else if (props.useSeconds && viewMode.value === 'minute') {\n viewMode.value = 'second'\n }\n\n if (inputHour.value === lazyInputHour.value &&\n inputMinute.value === lazyInputMinute.value &&\n (!props.useSeconds || inputSecond.value === lazyInputSecond.value)\n ) return\n\n const time = genValue()\n if (time === null) return\n\n lazyInputHour.value = inputHour.value\n lazyInputMinute.value = inputMinute.value\n props.useSeconds && (lazyInputSecond.value = inputSecond.value)\n\n emitChange && emitValue()\n }\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const timePickerControlsProps = VTimePickerControls.filterProps(props)\n const timePickerClockProps = VTimePickerClock.filterProps(omit(props, ['format', 'modelValue', 'min', 'max']))\n\n return (\n <VPicker\n { ...pickerProps }\n color={ undefined }\n class={[\n 'v-time-picker',\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-time-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => (\n <VTimePickerControls\n { ...timePickerControlsProps }\n ampm={ isAmPm.value || props.ampmInTitle }\n ampmReadonly={ isAmPm.value && !props.ampmInTitle }\n hour={ inputHour.value as number }\n minute={ inputMinute.value as number }\n period={ period.value }\n second={ inputSecond.value as number }\n viewMode={ viewMode.value }\n onUpdate:period={ (val: Period) => setPeriod(val) }\n onUpdate:viewMode={ (value: VTimePickerViewMode) => (viewMode.value = value) }\n ref={ controlsRef }\n />\n ),\n default: () => (\n <VTimePickerClock\n { ...timePickerClockProps }\n allowedValues={\n viewMode.value === 'hour'\n ? isAllowedHourCb.value\n : (viewMode.value === 'minute'\n ? isAllowedMinuteCb.value\n : isAllowedSecondCb.value)\n }\n double={ viewMode.value === 'hour' && !isAmPm.value }\n format={ viewMode.value === 'hour'\n ? (isAmPm.value ? convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2)\n }\n max={ viewMode.value === 'hour' ? (isAmPm.value && period.value === 'am' ? 11 : 23) : 59 }\n min={ viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0 }\n size={ 20 }\n step={ viewMode.value === 'hour' ? 1 : 5 }\n modelValue={ viewMode.value === 'hour'\n ? inputHour.value as number\n : (viewMode.value === 'minute'\n ? inputMinute.value as number\n : inputSecond.value as number)\n }\n onChange={ onChange }\n onInput={ onInput }\n ref={ clockRef }\n />\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n },\n})\n\nexport type VTimePicker = InstanceType<typeof VTimePicker>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTimePicker.js","names":["pad","VTimePickerClock","VTimePickerControls","makeVPickerProps","VPicker","useLocale","useProxiedModel","computed","onMounted","ref","watch","createRange","genericComponent","omit","propsFactory","useRender","rangeHours24","rangeHours12am","rangeHours12pm","map","v","range60","makeVTimePickerProps","allowedHours","Function","Array","allowedMinutes","allowedSeconds","ampmInTitle","Boolean","disabled","format","type","String","default","max","min","viewMode","modelValue","readonly","scrollable","useSeconds","title","VTimePicker","name","props","emits","val","setup","_ref","emit","slots","t","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","controlsRef","clockRef","isAllowedHourCb","cb","includes","minHour","Number","split","maxHour","isAllowedMinuteCb","isHourAllowed","value","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","genValue","emitValue","convert24to12","hour","convert12to24","Date","getHours","getMinutes","getSeconds","minute","second","trim","toLowerCase","match","parseInt","firstAllowed","allowedFn","range","first","find","length","setPeriod","newHour","onInput","onChange","emitChange","pickerProps","filterProps","timePickerControlsProps","timePickerClockProps","_createVNode","_mergeProps","undefined","class","style","_createElementVNode","header","actions"],"sources":["../../../src/labs/VTimePicker/VTimePicker.tsx"],"sourcesContent":["// Styles\nimport './VTimePicker.sass'\n\n// Components\nimport { pad } from './util'\nimport { VTimePickerClock } from './VTimePickerClock'\nimport { VTimePickerControls } from './VTimePickerControls'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { createRange, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTimePickerViewMode } from './shared'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\n\nexport type VTimePickerSlots = Omit<VPickerSlots, 'header'>\n\nexport const makeVTimePickerProps = propsFactory({\n allowedHours: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedMinutes: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedSeconds: [Function, Array] as PropType<AllowFunction | number[]>,\n ampmInTitle: Boolean,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n },\n max: String,\n min: String,\n viewMode: {\n type: String as PropType<VTimePickerViewMode>,\n default: 'hour',\n },\n modelValue: null as any as PropType<any>,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n ...omit(makeVPickerProps({ title: '$vuetify.timePicker.title' }), ['landscape']),\n}, 'VTimePicker')\n\nexport const VTimePicker = genericComponent<VTimePickerSlots>()({\n name: 'VTimePicker',\n\n props: makeVTimePickerProps(),\n\n emits: {\n 'update:hour': (val: number) => true,\n 'update:minute': (val: number) => true,\n 'update:period': (val: Period) => true,\n 'update:second': (val: number) => true,\n 'update:modelValue': (val: string) => true,\n 'update:viewMode': (val: VTimePickerViewMode) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const inputHour = ref(null as number | null)\n const inputMinute = ref(null as number | null)\n const inputSecond = ref(null as number | null)\n const lazyInputHour = ref(null as number | null)\n const lazyInputMinute = ref(null as number | null)\n const lazyInputSecond = ref(null as number | null)\n const period = ref('am' as Period)\n const viewMode = useProxiedModel(props, 'viewMode', 'hour')\n const controlsRef = ref<VTimePickerControls | null>(null)\n const clockRef = ref<VTimePickerClock | null>(null)\n\n const isAllowedHourCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n if (props.allowedHours instanceof Array) {\n cb = (val: number) => (props.allowedHours as number[]).includes(val)\n } else {\n cb = props.allowedHours as AllowFunction\n }\n\n if (!props.min && !props.max) return cb\n\n const minHour = props.min ? Number(props.min.split(':')[0]) : 0\n const maxHour = props.max ? Number(props.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= Number(minHour) &&\n val <= Number(maxHour) &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedMinuteCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n if (props.allowedMinutes instanceof Array) {\n cb = (val: number) => (props.allowedMinutes as number[]).includes(val)\n } else {\n cb = props.allowedMinutes as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + Number(minMinute)\n const maxTime = maxHour * 60 + Number(maxMinute)\n\n return (val: number) => {\n const time = 60 * inputHour.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedSecondCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n const isMinuteAllowed = isHourAllowed &&\n (!isAllowedMinuteCb.value ||\n inputMinute.value === null ||\n isAllowedMinuteCb.value(inputMinute.value)\n )\n\n if (props.allowedSeconds instanceof Array) {\n cb = (val: number) => (props.allowedSeconds as number[]).includes(val)\n } else {\n cb = props.allowedSeconds as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0)\n const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0)\n\n return (val: number) => {\n const time = 3600 * inputHour.value! + 60 * inputMinute.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAmPm = computed((): boolean => {\n return props.format === 'ampm'\n })\n\n watch(() => props.modelValue, val => setInputData(val))\n\n onMounted(() => {\n setInputData(props.modelValue)\n })\n\n function genValue () {\n if (inputHour.value != null && inputMinute.value != null && (!props.useSeconds || inputSecond.value != null)) {\n return `${pad(inputHour.value)}:${pad(inputMinute.value)}` + (props.useSeconds ? `:${pad(inputSecond.value!)}` : '')\n }\n\n return null\n }\n\n function emitValue () {\n const value = genValue()\n if (value !== null) emit('update:modelValue', value)\n }\n\n function convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n function convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n }\n\n function setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n inputHour.value = null\n inputMinute.value = null\n inputSecond.value = null\n } else if (value instanceof Date) {\n inputHour.value = value.getHours()\n inputMinute.value = value.getMinutes()\n inputSecond.value = value.getSeconds()\n } else {\n const [hour, , minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n inputHour.value = period ? convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n inputMinute.value = parseInt(minute, 10)\n inputSecond.value = parseInt(second || 0, 10)\n }\n\n period.value = (inputHour.value == null || inputHour.value < 12) ? 'am' : 'pm'\n }\n\n function firstAllowed (type: VTimePickerViewMode, value: number) {\n const allowedFn = type === 'hour' ? isAllowedHourCb.value : (type === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value)\n if (!allowedFn) return value\n\n // TODO: clean up (Note from V2 code)\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (isAmPm.value\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n }\n\n function setPeriod (val: Period) {\n period.value = val\n if (inputHour.value != null) {\n const newHour = inputHour.value! + (period.value === 'am' ? -12 : 12)\n inputHour.value = firstAllowed('hour', newHour)\n }\n emit('update:period', val)\n emitValue()\n return true\n }\n\n function onInput (value: number) {\n if (viewMode.value === 'hour') {\n inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value\n } else if (viewMode.value === 'minute') {\n inputMinute.value = value\n } else {\n inputSecond.value = value\n }\n }\n\n function onChange (value: number) {\n switch (viewMode.value || 'hour') {\n case 'hour':\n emit('update:hour', value)\n break\n case 'minute':\n emit('update:minute', value)\n break\n case 'second':\n emit('update:second', value)\n break\n default:\n break\n }\n\n const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true)\n if (viewMode.value === 'hour') {\n viewMode.value = 'minute'\n } else if (props.useSeconds && viewMode.value === 'minute') {\n viewMode.value = 'second'\n }\n\n if (inputHour.value === lazyInputHour.value &&\n inputMinute.value === lazyInputMinute.value &&\n (!props.useSeconds || inputSecond.value === lazyInputSecond.value)\n ) return\n\n const time = genValue()\n if (time === null) return\n\n lazyInputHour.value = inputHour.value\n lazyInputMinute.value = inputMinute.value\n props.useSeconds && (lazyInputSecond.value = inputSecond.value)\n\n emitChange && emitValue()\n }\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const timePickerControlsProps = VTimePickerControls.filterProps(props)\n const timePickerClockProps = VTimePickerClock.filterProps(omit(props, ['format', 'modelValue', 'min', 'max']))\n\n return (\n <VPicker\n { ...pickerProps }\n color={ undefined }\n class={[\n 'v-time-picker',\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-time-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => (\n <VTimePickerControls\n { ...timePickerControlsProps }\n ampm={ isAmPm.value || props.ampmInTitle }\n ampmReadonly={ isAmPm.value && !props.ampmInTitle }\n hour={ inputHour.value as number }\n minute={ inputMinute.value as number }\n period={ period.value }\n second={ inputSecond.value as number }\n viewMode={ viewMode.value }\n onUpdate:period={ (val: Period) => setPeriod(val) }\n onUpdate:viewMode={ (value: VTimePickerViewMode) => (viewMode.value = value) }\n ref={ controlsRef }\n />\n ),\n default: () => (\n <VTimePickerClock\n { ...timePickerClockProps }\n allowedValues={\n viewMode.value === 'hour'\n ? isAllowedHourCb.value\n : (viewMode.value === 'minute'\n ? isAllowedMinuteCb.value\n : isAllowedSecondCb.value)\n }\n double={ viewMode.value === 'hour' && !isAmPm.value }\n format={ viewMode.value === 'hour'\n ? (isAmPm.value ? convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2)\n }\n max={ viewMode.value === 'hour' ? (isAmPm.value && period.value === 'am' ? 11 : 23) : 59 }\n min={ viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0 }\n size={ 20 }\n step={ viewMode.value === 'hour' ? 1 : 5 }\n modelValue={ viewMode.value === 'hour'\n ? inputHour.value as number\n : (viewMode.value === 'minute'\n ? inputMinute.value as number\n : inputSecond.value as number)\n }\n onChange={ onChange }\n onInput={ onInput }\n ref={ clockRef }\n />\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n },\n})\n\nexport type VTimePicker = InstanceType<typeof VTimePicker>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode } from "vue";
1
+ import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from "vue";
2
2
  // Styles
3
3
  import "./VTimePickerClock.css";
4
4
 
@@ -208,37 +208,37 @@ export const VTimePickerClock = genericComponent()({
208
208
  }
209
209
  }
210
210
  useRender(() => {
211
- return _createVNode("div", {
212
- "class": [{
211
+ return _createElementVNode("div", {
212
+ "class": _normalizeClass([{
213
213
  'v-time-picker-clock': true,
214
214
  'v-time-picker-clock--indeterminate': props.modelValue == null,
215
215
  'v-time-picker-clock--readonly': props.readonly
216
- }],
216
+ }]),
217
217
  "onMousedown": onMouseDown,
218
218
  "onTouchstart": onMouseDown,
219
219
  "onWheel": wheel,
220
220
  "ref": clockRef
221
- }, [_createVNode("div", {
221
+ }, [_createElementVNode("div", {
222
222
  "class": "v-time-picker-clock__inner",
223
223
  "ref": innerClockRef
224
- }, [_createVNode("div", {
225
- "class": [{
224
+ }, [_createElementVNode("div", {
225
+ "class": _normalizeClass([{
226
226
  'v-time-picker-clock__hand': true,
227
227
  'v-time-picker-clock__hand--inner': isInner(props.modelValue)
228
- }, textColorClasses.value],
229
- "style": [{
228
+ }, textColorClasses.value]),
229
+ "style": _normalizeStyle([{
230
230
  transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`
231
- }, textColorStyles.value]
231
+ }, textColorStyles.value])
232
232
  }, null), genChildren.value.map(value => {
233
233
  const isActive = value === displayedValue.value;
234
- return _createVNode("div", {
235
- "class": [{
234
+ return _createElementVNode("div", {
235
+ "class": _normalizeClass([{
236
236
  'v-time-picker-clock__item': true,
237
237
  'v-time-picker-clock__item--active': isActive,
238
238
  'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value)
239
- }, isActive && backgroundColorClasses.value],
240
- "style": [getTransform(value), isActive && backgroundColorStyles.value]
241
- }, [_createVNode("span", null, [props.format(value)])]);
239
+ }, isActive && backgroundColorClasses.value]),
240
+ "style": _normalizeStyle([getTransform(value), isActive && backgroundColorStyles.value])
241
+ }, [_createElementVNode("span", null, [props.format(value)])]);
242
242
  })])]);
243
243
  });
244
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VTimePickerClock.js","names":["useBackgroundColor","useTextColor","computed","ref","watch","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","value","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","window","addEventListener","onMouseUp","stopPropagation","removeEventListener","_createVNode","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: null,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => true,\n input: (val: number) => true,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n if (!props.scrollable || props.disabled) return\n\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${Math.round(50 + x * 50)}%`,\n top: `${Math.round(50 + y * 50)}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n\n window.addEventListener('mousemove', onDragMove)\n window.addEventListener('touchmove', onDragMove)\n window.addEventListener('mouseup', onMouseUp)\n window.addEventListener('touchend', onMouseUp)\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n window.removeEventListener('mousemove', onDragMove)\n window.removeEventListener('touchmove', onDragMove)\n window.removeEventListener('mouseup', onMouseUp)\n window.removeEventListener('touchend', onMouseUp)\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onTouchstart={ onMouseDown }\n onWheel={ wheel }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTimePickerClock.js","names":["useBackgroundColor","useTextColor","computed","ref","watch","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","value","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","window","addEventListener","onMouseUp","stopPropagation","removeEventListener","_createElementVNode","_normalizeClass","_normalizeStyle","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: null,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => true,\n input: (val: number) => true,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n if (!props.scrollable || props.disabled) return\n\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${Math.round(50 + x * 50)}%`,\n top: `${Math.round(50 + y * 50)}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n\n window.addEventListener('mousemove', onDragMove)\n window.addEventListener('touchmove', onDragMove)\n window.addEventListener('mouseup', onMouseUp)\n window.addEventListener('touchend', onMouseUp)\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n window.removeEventListener('mousemove', onDragMove)\n window.removeEventListener('touchmove', onDragMove)\n window.removeEventListener('mouseup', onMouseUp)\n window.removeEventListener('touchend', onMouseUp)\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onTouchstart={ onMouseDown }\n onWheel={ wheel }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
1
+ import { normalizeClass as _normalizeClass, createVNode as _createVNode, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode } from "vue";
2
2
  // Styles
3
3
  import "./VTimePickerControls.css";
4
4
 
@@ -42,46 +42,46 @@ export const VTimePickerControls = genericComponent()({
42
42
  if (props.ampm) {
43
43
  hour = hour ? (hour - 1) % 12 + 1 : 12;
44
44
  }
45
- return _createVNode("div", {
45
+ return _createElementVNode("div", {
46
46
  "class": "v-time-picker-controls"
47
- }, [_createVNode("div", {
48
- "class": {
47
+ }, [_createElementVNode("div", {
48
+ "class": _normalizeClass({
49
49
  'v-time-picker-controls__time': true,
50
50
  'v-time-picker-controls__time--with-seconds': props.useSeconds
51
- }
51
+ })
52
52
  }, [_createVNode(VBtn, {
53
53
  "active": props.viewMode === 'hour',
54
54
  "color": props.viewMode === 'hour' ? props.color : undefined,
55
55
  "disabled": props.disabled,
56
56
  "variant": "tonal",
57
- "class": {
57
+ "class": _normalizeClass({
58
58
  'v-time-picker-controls__time__btn': true,
59
59
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
60
60
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
61
- },
61
+ }),
62
62
  "text": props.hour == null ? '--' : pad(`${hour}`),
63
63
  "onClick": () => emit('update:viewMode', 'hour')
64
- }, null), _createVNode("span", {
65
- "class": ['v-time-picker-controls__time__separator', {
64
+ }, null), _createElementVNode("span", {
65
+ "class": _normalizeClass(['v-time-picker-controls__time__separator', {
66
66
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
67
- }]
67
+ }])
68
68
  }, [_createTextVNode(":")]), _createVNode(VBtn, {
69
69
  "active": props.viewMode === 'minute',
70
70
  "color": props.viewMode === 'minute' ? props.color : undefined,
71
- "class": {
71
+ "class": _normalizeClass({
72
72
  'v-time-picker-controls__time__btn': true,
73
73
  'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',
74
74
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
75
75
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
76
- },
76
+ }),
77
77
  "disabled": props.disabled,
78
78
  "variant": "tonal",
79
79
  "text": props.minute == null ? '--' : pad(props.minute),
80
80
  "onClick": () => emit('update:viewMode', 'minute')
81
- }, null), props.useSeconds && _createVNode("span", {
82
- "class": ['v-time-picker-controls__time__separator', {
81
+ }, null), props.useSeconds && _createElementVNode("span", {
82
+ "class": _normalizeClass(['v-time-picker-controls__time__separator', {
83
83
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
84
- }],
84
+ }]),
85
85
  "key": "secondsDivider"
86
86
  }, [_createTextVNode(":")]), props.useSeconds && _createVNode(VBtn, {
87
87
  "key": "secondsVal",
@@ -89,25 +89,25 @@ export const VTimePickerControls = genericComponent()({
89
89
  "color": props.viewMode === 'second' ? props.color : undefined,
90
90
  "variant": "tonal",
91
91
  "onClick": () => emit('update:viewMode', 'second'),
92
- "class": {
92
+ "class": _normalizeClass({
93
93
  'v-time-picker-controls__time__btn': true,
94
94
  'v-time-picker-controls__time__btn__active': props.viewMode === 'second',
95
95
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
96
- },
96
+ }),
97
97
  "disabled": props.disabled,
98
98
  "text": props.second == null ? '--' : pad(props.second)
99
- }, null), props.ampm && props.ampmInTitle && _createVNode("div", {
100
- "class": ['v-time-picker-controls__ampm', {
99
+ }, null), props.ampm && props.ampmInTitle && _createElementVNode("div", {
100
+ "class": _normalizeClass(['v-time-picker-controls__ampm', {
101
101
  'v-time-picker-controls__ampm--readonly': props.ampmReadonly
102
- }]
102
+ }])
103
103
  }, [_createVNode(VBtn, {
104
104
  "active": props.period === 'am',
105
105
  "color": props.period === 'am' ? props.color : undefined,
106
- "class": {
106
+ "class": _normalizeClass({
107
107
  'v-time-picker-controls__ampm__am': true,
108
108
  'v-time-picker-controls__ampm__btn': true,
109
109
  'v-time-picker-controls__ampm__btn__active': props.period === 'am'
110
- },
110
+ }),
111
111
  "disabled": props.disabled,
112
112
  "text": t('$vuetify.timePicker.am'),
113
113
  "variant": props.disabled && props.period === 'am' ? 'elevated' : 'tonal',
@@ -115,11 +115,11 @@ export const VTimePickerControls = genericComponent()({
115
115
  }, null), _createVNode(VBtn, {
116
116
  "active": props.period === 'pm',
117
117
  "color": props.period === 'pm' ? props.color : undefined,
118
- "class": {
118
+ "class": _normalizeClass({
119
119
  'v-time-picker-controls__ampm__pm': true,
120
120
  'v-time-picker-controls__ampm__btn': true,
121
121
  'v-time-picker-controls__ampm__btn__active': props.period === 'pm'
122
- },
122
+ }),
123
123
  "disabled": props.disabled,
124
124
  "text": t('$vuetify.timePicker.pm'),
125
125
  "variant": props.disabled && props.period === 'pm' ? 'elevated' : 'tonal',
@@ -1 +1 @@
1
- {"version":3,"file":"VTimePickerControls.js","names":["pad","VBtn","useLocale","genericComponent","propsFactory","useRender","makeVTimePickerControlsProps","ampm","Boolean","ampmInTitle","ampmReadonly","color","String","disabled","hour","Number","minute","second","period","readonly","useSeconds","value","viewMode","VTimePickerControls","name","props","emits","data","setup","_ref","emit","slots","t","_createVNode","undefined","onClick","_createTextVNode"],"sources":["../../../src/labs/VTimePicker/VTimePickerControls.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerControls.sass'\n\n// Components\nimport { pad } from './util'\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTimePickerViewMode } from './shared'\ntype Period = 'am' | 'pm'\n\nexport const makeVTimePickerControlsProps = propsFactory({\n ampm: Boolean,\n ampmInTitle: Boolean,\n ampmReadonly: Boolean,\n color: String,\n disabled: Boolean,\n hour: Number,\n minute: Number,\n second: Number,\n period: String as PropType<Period>,\n readonly: Boolean,\n useSeconds: Boolean,\n value: Number,\n viewMode: String as PropType<VTimePickerViewMode>,\n}, 'VTimePickerControls')\n\nexport const VTimePickerControls = genericComponent()({\n name: 'VTimePickerControls',\n\n props: makeVTimePickerControlsProps(),\n\n emits: {\n 'update:period': (data: Period) => true,\n 'update:viewMode': (data: VTimePickerViewMode) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n\n useRender(() => {\n let hour = props.hour\n if (props.ampm) {\n hour = hour ? ((hour - 1) % 12 + 1) : 12\n }\n return (\n <div class=\"v-time-picker-controls\">\n <div\n class={{\n 'v-time-picker-controls__time': true,\n 'v-time-picker-controls__time--with-seconds': props.useSeconds,\n }}\n >\n <VBtn\n active={ props.viewMode === 'hour' }\n color={ props.viewMode === 'hour' ? props.color : undefined }\n disabled={ props.disabled }\n variant=\"tonal\"\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time--with-ampm__btn': props.ampm,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n text={ props.hour == null ? '--' : pad(`${hour}`) }\n onClick={ () => emit('update:viewMode', 'hour') }\n />\n\n <span\n class={[\n 'v-time-picker-controls__time__separator',\n { 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds },\n ]}\n >:</span>\n\n <VBtn\n active={ props.viewMode === 'minute' }\n color={ props.viewMode === 'minute' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',\n 'v-time-picker-controls__time--with-ampm__btn': props.ampm,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n disabled={ props.disabled }\n variant=\"tonal\"\n text={ props.minute == null ? '--' : pad(props.minute) }\n onClick={ () => emit('update:viewMode', 'minute') }\n />\n\n {\n props.useSeconds && (\n <span\n class={[\n 'v-time-picker-controls__time__separator',\n { 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds },\n ]}\n key=\"secondsDivider\"\n >:</span>\n )\n }\n\n {\n props.useSeconds && (\n <VBtn\n key=\"secondsVal\"\n active={ props.viewMode === 'second' }\n color={ props.viewMode === 'second' ? props.color : undefined }\n variant=\"tonal\"\n onClick={ () => emit('update:viewMode', 'second') }\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time__btn__active': props.viewMode === 'second',\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n disabled={ props.disabled }\n text={ props.second == null ? '--' : pad(props.second) }\n />\n )\n }\n\n {\n props.ampm && props.ampmInTitle && (\n <div\n class={['v-time-picker-controls__ampm', {\n 'v-time-picker-controls__ampm--readonly': props.ampmReadonly,\n }]}\n >\n <VBtn\n active={ props.period === 'am' }\n color={ props.period === 'am' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__ampm__am': true,\n 'v-time-picker-controls__ampm__btn': true,\n 'v-time-picker-controls__ampm__btn__active': props.period === 'am',\n }}\n disabled={ props.disabled }\n text={ t('$vuetify.timePicker.am') }\n variant={ props.disabled && props.period === 'am' ? 'elevated' : 'tonal' }\n onClick={ () => props.period !== 'am' ? emit('update:period', 'am') : null }\n />\n\n <VBtn\n active={ props.period === 'pm' }\n color={ props.period === 'pm' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__ampm__pm': true,\n 'v-time-picker-controls__ampm__btn': true,\n 'v-time-picker-controls__ampm__btn__active': props.period === 'pm',\n }}\n disabled={ props.disabled }\n text={ t('$vuetify.timePicker.pm') }\n variant={ props.disabled && props.period === 'pm' ? 'elevated' : 'tonal' }\n onClick={ () => props.period !== 'pm' ? emit('update:period', 'pm') : null }\n />\n </div>\n )\n }\n </div>\n </div>\n )\n })\n\n return {}\n },\n\n})\n\nexport type VTimePickerControls = InstanceType<typeof VTimePickerControls>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTimePickerControls.js","names":["pad","VBtn","useLocale","genericComponent","propsFactory","useRender","makeVTimePickerControlsProps","ampm","Boolean","ampmInTitle","ampmReadonly","color","String","disabled","hour","Number","minute","second","period","readonly","useSeconds","value","viewMode","VTimePickerControls","name","props","emits","data","setup","_ref","emit","slots","t","_createElementVNode","_normalizeClass","_createVNode","undefined","onClick","_createTextVNode"],"sources":["../../../src/labs/VTimePicker/VTimePickerControls.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerControls.sass'\n\n// Components\nimport { pad } from './util'\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTimePickerViewMode } from './shared'\ntype Period = 'am' | 'pm'\n\nexport const makeVTimePickerControlsProps = propsFactory({\n ampm: Boolean,\n ampmInTitle: Boolean,\n ampmReadonly: Boolean,\n color: String,\n disabled: Boolean,\n hour: Number,\n minute: Number,\n second: Number,\n period: String as PropType<Period>,\n readonly: Boolean,\n useSeconds: Boolean,\n value: Number,\n viewMode: String as PropType<VTimePickerViewMode>,\n}, 'VTimePickerControls')\n\nexport const VTimePickerControls = genericComponent()({\n name: 'VTimePickerControls',\n\n props: makeVTimePickerControlsProps(),\n\n emits: {\n 'update:period': (data: Period) => true,\n 'update:viewMode': (data: VTimePickerViewMode) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n\n useRender(() => {\n let hour = props.hour\n if (props.ampm) {\n hour = hour ? ((hour - 1) % 12 + 1) : 12\n }\n return (\n <div class=\"v-time-picker-controls\">\n <div\n class={{\n 'v-time-picker-controls__time': true,\n 'v-time-picker-controls__time--with-seconds': props.useSeconds,\n }}\n >\n <VBtn\n active={ props.viewMode === 'hour' }\n color={ props.viewMode === 'hour' ? props.color : undefined }\n disabled={ props.disabled }\n variant=\"tonal\"\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time--with-ampm__btn': props.ampm,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n text={ props.hour == null ? '--' : pad(`${hour}`) }\n onClick={ () => emit('update:viewMode', 'hour') }\n />\n\n <span\n class={[\n 'v-time-picker-controls__time__separator',\n { 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds },\n ]}\n >:</span>\n\n <VBtn\n active={ props.viewMode === 'minute' }\n color={ props.viewMode === 'minute' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',\n 'v-time-picker-controls__time--with-ampm__btn': props.ampm,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n disabled={ props.disabled }\n variant=\"tonal\"\n text={ props.minute == null ? '--' : pad(props.minute) }\n onClick={ () => emit('update:viewMode', 'minute') }\n />\n\n {\n props.useSeconds && (\n <span\n class={[\n 'v-time-picker-controls__time__separator',\n { 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds },\n ]}\n key=\"secondsDivider\"\n >:</span>\n )\n }\n\n {\n props.useSeconds && (\n <VBtn\n key=\"secondsVal\"\n active={ props.viewMode === 'second' }\n color={ props.viewMode === 'second' ? props.color : undefined }\n variant=\"tonal\"\n onClick={ () => emit('update:viewMode', 'second') }\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time__btn__active': props.viewMode === 'second',\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n disabled={ props.disabled }\n text={ props.second == null ? '--' : pad(props.second) }\n />\n )\n }\n\n {\n props.ampm && props.ampmInTitle && (\n <div\n class={['v-time-picker-controls__ampm', {\n 'v-time-picker-controls__ampm--readonly': props.ampmReadonly,\n }]}\n >\n <VBtn\n active={ props.period === 'am' }\n color={ props.period === 'am' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__ampm__am': true,\n 'v-time-picker-controls__ampm__btn': true,\n 'v-time-picker-controls__ampm__btn__active': props.period === 'am',\n }}\n disabled={ props.disabled }\n text={ t('$vuetify.timePicker.am') }\n variant={ props.disabled && props.period === 'am' ? 'elevated' : 'tonal' }\n onClick={ () => props.period !== 'am' ? emit('update:period', 'am') : null }\n />\n\n <VBtn\n active={ props.period === 'pm' }\n color={ props.period === 'pm' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__ampm__pm': true,\n 'v-time-picker-controls__ampm__btn': true,\n 'v-time-picker-controls__ampm__btn__active': props.period === 'pm',\n }}\n disabled={ props.disabled }\n text={ t('$vuetify.timePicker.pm') }\n variant={ props.disabled && props.period === 'pm' ? 'elevated' : 'tonal' }\n onClick={ () => props.period !== 'pm' ? emit('update:period', 'pm') : null }\n />\n </div>\n )\n }\n </div>\n </div>\n )\n })\n\n return {}\n },\n\n})\n\nexport type VTimePickerControls = InstanceType<typeof VTimePickerControls>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Components
3
3
  import { VTreeviewGroup } from "./VTreeviewGroup.js";
4
4
  import { VTreeviewItem } from "./VTreeviewItem.js";
@@ -63,7 +63,7 @@ export const VTreeviewChildren = genericComponent()({
63
63
  } = item;
64
64
  const loading = isLoading.has(item.value);
65
65
  const slotsWithItem = {
66
- prepend: slotProps => _createVNode(_Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && _createVNode("div", null, [_createVNode(VCheckboxBtn, {
66
+ prepend: slotProps => _createElementVNode(_Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && _createElementVNode("div", null, [_createVNode(VCheckboxBtn, {
67
67
  "key": item.value,
68
68
  "modelValue": slotProps.isSelected,
69
69
  "disabled": props.disabled,
@@ -1 +1 @@
1
- {"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","makeDensityProps","IconValue","computed","reactive","toRaw","withModifiers","genericComponent","propsFactory","makeVTreeviewChildrenProps","disabled","Boolean","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","selectable","selectedColor","selectStrategy","Object","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","slotsWithItem","prepend","slotProps","_createVNode","_Fragment","includes","density","isIndeterminate","e","key","stopPropagation","internalItem","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick"],"sources":["../../../src/labs/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, toRaw, withModifiers } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n disabled: Boolean,\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n\n ...makeDensityProps(),\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n\n const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\n }\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(!isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map(item => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n const slotsWithItem = {\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <div>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onClick={ withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']) }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </div>\n )}\n\n { slots.prepend?.({ ...slotProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append ? slotProps => slots.append?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] as any : undefined,\n }\n\n return (\n <VTreeviewItem\n { ...listItemProps }\n value={ props.returnObject ? item.raw : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : (\n slots.item?.({ props: itemProps, item: item.raw, internalItem: item }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","makeDensityProps","IconValue","computed","reactive","toRaw","withModifiers","genericComponent","propsFactory","makeVTreeviewChildrenProps","disabled","Boolean","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","selectable","selectedColor","selectStrategy","Object","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","slotsWithItem","prepend","slotProps","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","e","key","stopPropagation","internalItem","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick"],"sources":["../../../src/labs/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, toRaw, withModifiers } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n disabled: Boolean,\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n\n ...makeDensityProps(),\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n\n const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\n }\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(!isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map(item => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n const slotsWithItem = {\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <div>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onClick={ withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']) }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </div>\n )}\n\n { slots.prepend?.({ ...slotProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append ? slotProps => slots.append?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] as any : undefined,\n }\n\n return (\n <VTreeviewItem\n { ...listItemProps }\n value={ props.returnObject ? item.raw : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : (\n slots.item?.({ props: itemProps, item: item.raw, internalItem: item }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Components
3
3
  import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.js";
4
4
  import { makeVListGroupProps, VListGroup } from "../../components/VList/VListGroup.js"; // Utilities
@@ -35,7 +35,7 @@ export const VTreeviewGroup = genericComponent()({
35
35
  "subgroup": true
36
36
  }), {
37
37
  ...slots,
38
- activator: slots.activator ? slotProps => _createVNode(_Fragment, null, [_createVNode(VDefaultsProvider, {
38
+ activator: slots.activator ? slotProps => _createElementVNode(_Fragment, null, [_createVNode(VDefaultsProvider, {
39
39
  "defaults": activatorDefaults.value
40
40
  }, {
41
41
  default: () => [slots.activator?.(slotProps)]
@@ -1 +1 @@
1
- {"version":3,"file":"VTreeviewGroup.js","names":["VDefaultsProvider","makeVListGroupProps","VListGroup","computed","ref","genericComponent","omit","propsFactory","useRender","makeVTreeviewGroupProps","collapseIcon","expandIcon","VTreeviewGroup","name","props","setup","_ref","slots","vListGroupRef","toggleIcon","value","isOpen","activatorDefaults","VTreeviewItem","prependIcon","undefined","appendIcon","active","listGroupProps","filterProps","_createVNode","_mergeProps","class","activator","slotProps","_Fragment","default"],"sources":["../../../src/labs/VTreeview/VTreeviewGroup.tsx"],"sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVListGroupProps, VListGroup } from '@/components/VList/VListGroup'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VListGroupSlots } from '@/components/VList/VListGroup'\n\nexport const makeVTreeviewGroupProps = propsFactory({\n ...omit(makeVListGroupProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n }), ['subgroup']),\n}, 'VTreeviewGroup')\n\nexport const VTreeviewGroup = genericComponent<VListGroupSlots>()({\n name: 'VTreeviewGroup',\n\n props: makeVTreeviewGroupProps(),\n\n setup (props, { slots }) {\n const vListGroupRef = ref<VListGroup>()\n const toggleIcon = computed(() => vListGroupRef.value?.isOpen ? props.collapseIcon : props.expandIcon)\n\n const activatorDefaults = computed(() => ({\n VTreeviewItem: {\n prependIcon: undefined,\n appendIcon: undefined,\n active: vListGroupRef.value?.isOpen,\n toggleIcon: toggleIcon.value,\n },\n }))\n\n useRender(() => {\n const listGroupProps = VListGroup.filterProps(props)\n\n return (\n <VListGroup\n { ...listGroupProps }\n ref={ vListGroupRef }\n class={[\n 'v-treeview-group',\n props.class,\n ]}\n subgroup\n >\n {{\n ...slots,\n activator: slots.activator ? slotProps => (\n <>\n <VDefaultsProvider defaults={ activatorDefaults.value }>\n { slots.activator?.(slotProps) }\n </VDefaultsProvider>\n </>\n ) : undefined,\n }}\n </VListGroup>\n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewGroup = InstanceType<typeof VTreeviewGroup>\n"],"mappings":";AAAA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,mBAAmB,EAAEC,UAAU,gDAExC;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAExD;AAGA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClD,GAAGD,IAAI,CAACL,mBAAmB,CAAC;IAC1BS,YAAY,EAAE,mBAAmB;IACjCC,UAAU,EAAE;EACd,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAClB,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,cAAc,GAAGP,gBAAgB,CAAkB,CAAC,CAAC;EAChEQ,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEL,uBAAuB,CAAC,CAAC;EAEhCM,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,aAAa,GAAGd,GAAG,CAAa,CAAC;IACvC,MAAMe,UAAU,GAAGhB,QAAQ,CAAC,MAAMe,aAAa,CAACE,KAAK,EAAEC,MAAM,GAAGP,KAAK,CAACJ,YAAY,GAAGI,KAAK,CAACH,UAAU,CAAC;IAEtG,MAAMW,iBAAiB,GAAGnB,QAAQ,CAAC,OAAO;MACxCoB,aAAa,EAAE;QACbC,WAAW,EAAEC,SAAS;QACtBC,UAAU,EAAED,SAAS;QACrBE,MAAM,EAAET,aAAa,CAACE,KAAK,EAAEC,MAAM;QACnCF,UAAU,EAAEA,UAAU,CAACC;MACzB;IACF,CAAC,CAAC,CAAC;IAEHZ,SAAS,CAAC,MAAM;MACd,MAAMoB,cAAc,GAAG1B,UAAU,CAAC2B,WAAW,CAACf,KAAK,CAAC;MAEpD,OAAAgB,YAAA,CAAA5B,UAAA,EAAA6B,WAAA,CAESH,cAAc;QAAA,OACbV,aAAa;QAAA,SACZ,CACL,kBAAkB,EAClBJ,KAAK,CAACkB,KAAK,CACZ;QAAA;MAAA;QAIC,GAAGf,KAAK;QACRgB,SAAS,EAAEhB,KAAK,CAACgB,SAAS,GAAGC,SAAS,IAAAJ,YAAA,CAAAK,SAAA,SAAAL,YAAA,CAAA9B,iBAAA;UAAA,YAEJsB,iBAAiB,CAACF;QAAK;UAAAgB,OAAA,EAAAA,CAAA,MACjDnB,KAAK,CAACgB,SAAS,GAAGC,SAAS,CAAC;QAAA,IAGnC,GAAGT;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VTreeviewGroup.js","names":["VDefaultsProvider","makeVListGroupProps","VListGroup","computed","ref","genericComponent","omit","propsFactory","useRender","makeVTreeviewGroupProps","collapseIcon","expandIcon","VTreeviewGroup","name","props","setup","_ref","slots","vListGroupRef","toggleIcon","value","isOpen","activatorDefaults","VTreeviewItem","prependIcon","undefined","appendIcon","active","listGroupProps","filterProps","_createVNode","_mergeProps","class","activator","slotProps","_createElementVNode","_Fragment","default"],"sources":["../../../src/labs/VTreeview/VTreeviewGroup.tsx"],"sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVListGroupProps, VListGroup } from '@/components/VList/VListGroup'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VListGroupSlots } from '@/components/VList/VListGroup'\n\nexport const makeVTreeviewGroupProps = propsFactory({\n ...omit(makeVListGroupProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n }), ['subgroup']),\n}, 'VTreeviewGroup')\n\nexport const VTreeviewGroup = genericComponent<VListGroupSlots>()({\n name: 'VTreeviewGroup',\n\n props: makeVTreeviewGroupProps(),\n\n setup (props, { slots }) {\n const vListGroupRef = ref<VListGroup>()\n const toggleIcon = computed(() => vListGroupRef.value?.isOpen ? props.collapseIcon : props.expandIcon)\n\n const activatorDefaults = computed(() => ({\n VTreeviewItem: {\n prependIcon: undefined,\n appendIcon: undefined,\n active: vListGroupRef.value?.isOpen,\n toggleIcon: toggleIcon.value,\n },\n }))\n\n useRender(() => {\n const listGroupProps = VListGroup.filterProps(props)\n\n return (\n <VListGroup\n { ...listGroupProps }\n ref={ vListGroupRef }\n class={[\n 'v-treeview-group',\n props.class,\n ]}\n subgroup\n >\n {{\n ...slots,\n activator: slots.activator ? slotProps => (\n <>\n <VDefaultsProvider defaults={ activatorDefaults.value }>\n { slots.activator?.(slotProps) }\n </VDefaultsProvider>\n </>\n ) : undefined,\n }}\n </VListGroup>\n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewGroup = InstanceType<typeof VTreeviewGroup>\n"],"mappings":";AAAA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,mBAAmB,EAAEC,UAAU,gDAExC;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAExD;AAGA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClD,GAAGD,IAAI,CAACL,mBAAmB,CAAC;IAC1BS,YAAY,EAAE,mBAAmB;IACjCC,UAAU,EAAE;EACd,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAClB,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,cAAc,GAAGP,gBAAgB,CAAkB,CAAC,CAAC;EAChEQ,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEL,uBAAuB,CAAC,CAAC;EAEhCM,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,aAAa,GAAGd,GAAG,CAAa,CAAC;IACvC,MAAMe,UAAU,GAAGhB,QAAQ,CAAC,MAAMe,aAAa,CAACE,KAAK,EAAEC,MAAM,GAAGP,KAAK,CAACJ,YAAY,GAAGI,KAAK,CAACH,UAAU,CAAC;IAEtG,MAAMW,iBAAiB,GAAGnB,QAAQ,CAAC,OAAO;MACxCoB,aAAa,EAAE;QACbC,WAAW,EAAEC,SAAS;QACtBC,UAAU,EAAED,SAAS;QACrBE,MAAM,EAAET,aAAa,CAACE,KAAK,EAAEC,MAAM;QACnCF,UAAU,EAAEA,UAAU,CAACC;MACzB;IACF,CAAC,CAAC,CAAC;IAEHZ,SAAS,CAAC,MAAM;MACd,MAAMoB,cAAc,GAAG1B,UAAU,CAAC2B,WAAW,CAACf,KAAK,CAAC;MAEpD,OAAAgB,YAAA,CAAA5B,UAAA,EAAA6B,WAAA,CAESH,cAAc;QAAA,OACbV,aAAa;QAAA,SACZ,CACL,kBAAkB,EAClBJ,KAAK,CAACkB,KAAK,CACZ;QAAA;MAAA;QAIC,GAAGf,KAAK;QACRgB,SAAS,EAAEhB,KAAK,CAACgB,SAAS,GAAGC,SAAS,IAAAC,mBAAA,CAAAC,SAAA,SAAAN,YAAA,CAAA9B,iBAAA;UAAA,YAEJsB,iBAAiB,CAACF;QAAK;UAAAiB,OAAA,EAAAA,CAAA,MACjDpB,KAAK,CAACgB,SAAS,GAAGC,SAAS,CAAC;QAAA,IAGnC,GAAGT;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}