@dimailn/vuetify 2.7.2-alpha4 → 2.7.2-alpha40

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 (1034) hide show
  1. package/dist/vuetify.js +4383 -2392
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VAlert/VAlert.js +39 -9
  6. package/es5/components/VAlert/VAlert.js.map +1 -1
  7. package/es5/components/VAppBar/VAppBar.js +23 -17
  8. package/es5/components/VAppBar/VAppBar.js.map +1 -1
  9. package/es5/components/VAppBar/VAppBarNavIcon.js +5 -1
  10. package/es5/components/VAppBar/VAppBarNavIcon.js.map +1 -1
  11. package/es5/components/VAutocomplete/VAutocomplete.js +11 -7
  12. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  13. package/es5/components/VBadge/VBadge.js +46 -14
  14. package/es5/components/VBadge/VBadge.js.map +1 -1
  15. package/es5/components/VBanner/VBanner.js +51 -15
  16. package/es5/components/VBanner/VBanner.js.map +1 -1
  17. package/es5/components/VBottomNavigation/VBottomNavigation.js +36 -14
  18. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  19. package/es5/components/VBreadcrumbs/VBreadcrumbs.js +22 -8
  20. package/es5/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  21. package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js +4 -0
  22. package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  23. package/es5/components/VBtn/VBtn.js +20 -16
  24. package/es5/components/VBtn/VBtn.js.map +1 -1
  25. package/es5/components/VCalendar/VCalendar.js +27 -29
  26. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  27. package/es5/components/VCalendar/VCalendarCategory.js +26 -34
  28. package/es5/components/VCalendar/VCalendarCategory.js.map +1 -1
  29. package/es5/components/VCalendar/VCalendarDaily.js +43 -60
  30. package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
  31. package/es5/components/VCalendar/VCalendarMonthly.js +2 -2
  32. package/es5/components/VCalendar/VCalendarMonthly.js.map +1 -1
  33. package/es5/components/VCalendar/VCalendarWeekly.js +36 -40
  34. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  35. package/es5/components/VCalendar/mixins/calendar-base.js +5 -10
  36. package/es5/components/VCalendar/mixins/calendar-base.js.map +1 -1
  37. package/es5/components/VCalendar/mixins/calendar-with-events.js +43 -58
  38. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  39. package/es5/components/VCalendar/mixins/calendar-with-intervals.js +2 -2
  40. package/es5/components/VCalendar/mixins/calendar-with-intervals.js.map +1 -1
  41. package/es5/components/VCalendar/mixins/times.js.map +1 -1
  42. package/es5/components/VCarousel/VCarousel.js +61 -17
  43. package/es5/components/VCarousel/VCarousel.js.map +1 -1
  44. package/es5/components/VCarousel/VCarouselItem.js +7 -3
  45. package/es5/components/VCarousel/VCarouselItem.js.map +1 -1
  46. package/es5/components/VCheckbox/VCheckbox.js +40 -9
  47. package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
  48. package/es5/components/VCheckbox/VSimpleCheckbox.js +94 -38
  49. package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  50. package/es5/components/VChip/VChip.js +16 -7
  51. package/es5/components/VChip/VChip.js.map +1 -1
  52. package/es5/components/VColorPicker/VColorPicker.js +54 -39
  53. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  54. package/es5/components/VColorPicker/VColorPickerCanvas.js +45 -46
  55. package/es5/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  56. package/es5/components/VColorPicker/VColorPickerEdit.js +27 -26
  57. package/es5/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  58. package/es5/components/VColorPicker/VColorPickerPreview.js +41 -30
  59. package/es5/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  60. package/es5/components/VColorPicker/VColorPickerSwatches.js +13 -10
  61. package/es5/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  62. package/es5/components/VCombobox/VCombobox.js +1 -0
  63. package/es5/components/VCombobox/VCombobox.js.map +1 -1
  64. package/es5/components/VContent/VContent.js +25 -6
  65. package/es5/components/VContent/VContent.js.map +1 -1
  66. package/es5/components/VCounter/VCounter.js.map +1 -1
  67. package/es5/components/VData/VData.js +15 -2
  68. package/es5/components/VData/VData.js.map +1 -1
  69. package/es5/components/VDataIterator/VDataFooter.js +21 -7
  70. package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
  71. package/es5/components/VDataIterator/VDataIterator.js +47 -50
  72. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  73. package/es5/components/VDataTable/RowGroup.js +46 -15
  74. package/es5/components/VDataTable/RowGroup.js.map +1 -1
  75. package/es5/components/VDataTable/VDataTable.js +41 -44
  76. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  77. package/es5/components/VDataTable/VDataTableHeader.js +5 -8
  78. package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
  79. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +8 -2
  80. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  81. package/es5/components/VDataTable/VDataTableHeaderMobile.js +29 -37
  82. package/es5/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  83. package/es5/components/VDataTable/VEditDialog.js +26 -22
  84. package/es5/components/VDataTable/VEditDialog.js.map +1 -1
  85. package/es5/components/VDataTable/VSimpleTable.js +1 -1
  86. package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
  87. package/es5/components/VDataTable/VVirtualTable.js +6 -6
  88. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  89. package/es5/components/VDataTable/mixins/header.js +7 -9
  90. package/es5/components/VDataTable/mixins/header.js.map +1 -1
  91. package/es5/components/VDatePicker/VDatePicker.js +51 -36
  92. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  93. package/es5/components/VDatePicker/VDatePickerHeader.js +68 -24
  94. package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  95. package/es5/components/VDatePicker/VDatePickerMonthTable.js +6 -3
  96. package/es5/components/VDatePicker/VDatePickerMonthTable.js.map +1 -1
  97. package/es5/components/VDatePicker/VDatePickerTitle.js +61 -16
  98. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  99. package/es5/components/VDatePicker/VDatePickerYears.js +47 -23
  100. package/es5/components/VDatePicker/VDatePickerYears.js.map +1 -1
  101. package/es5/components/VDatePicker/mixins/date-picker-table.js +52 -31
  102. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  103. package/es5/components/VDatePicker/util/createNativeLocaleFormatter.js +4 -0
  104. package/es5/components/VDatePicker/util/createNativeLocaleFormatter.js.map +1 -1
  105. package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
  106. package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
  107. package/es5/components/VDialog/VDialog.js +59 -33
  108. package/es5/components/VDialog/VDialog.js.map +1 -1
  109. package/es5/components/VExpansionPanel/VExpansionPanel.js +1 -0
  110. package/es5/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  111. package/es5/components/VExpansionPanel/VExpansionPanelContent.js +12 -10
  112. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  113. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js +17 -20
  114. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  115. package/es5/components/VFileInput/VFileInput.js +50 -27
  116. package/es5/components/VFileInput/VFileInput.js.map +1 -1
  117. package/es5/components/VFooter/VFooter.js +1 -1
  118. package/es5/components/VFooter/VFooter.js.map +1 -1
  119. package/es5/components/VForm/VForm.js +45 -30
  120. package/es5/components/VForm/VForm.js.map +1 -1
  121. package/es5/components/VGrid/VCol.js +6 -4
  122. package/es5/components/VGrid/VCol.js.map +1 -1
  123. package/es5/components/VGrid/VContainer.js +27 -10
  124. package/es5/components/VGrid/VContainer.js.map +1 -1
  125. package/es5/components/VGrid/VRow.js +1 -1
  126. package/es5/components/VGrid/VRow.js.map +1 -1
  127. package/es5/components/VGrid/grid.js +35 -15
  128. package/es5/components/VGrid/grid.js.map +1 -1
  129. package/es5/components/VHover/VHover.js +24 -17
  130. package/es5/components/VHover/VHover.js.map +1 -1
  131. package/es5/components/VIcon/VIcon.js +77 -53
  132. package/es5/components/VIcon/VIcon.js.map +1 -1
  133. package/es5/components/VImg/VImg.js +10 -8
  134. package/es5/components/VImg/VImg.js.map +1 -1
  135. package/es5/components/VInput/VInput.js +65 -12
  136. package/es5/components/VInput/VInput.js.map +1 -1
  137. package/es5/components/VItemGroup/VItem.js +21 -17
  138. package/es5/components/VItemGroup/VItem.js.map +1 -1
  139. package/es5/components/VItemGroup/VItemGroup.js +11 -2
  140. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  141. package/es5/components/VLabel/VLabel.js +3 -1
  142. package/es5/components/VLabel/VLabel.js.map +1 -1
  143. package/es5/components/VLazy/VLazy.js +8 -15
  144. package/es5/components/VLazy/VLazy.js.map +1 -1
  145. package/es5/components/VList/VList.js +2 -2
  146. package/es5/components/VList/VList.js.map +1 -1
  147. package/es5/components/VList/VListGroup.js +73 -40
  148. package/es5/components/VList/VListGroup.js.map +1 -1
  149. package/es5/components/VList/VListItem.js +63 -18
  150. package/es5/components/VList/VListItem.js.map +1 -1
  151. package/es5/components/VList/VListItemAction.js +23 -9
  152. package/es5/components/VList/VListItemAction.js.map +1 -1
  153. package/es5/components/VList/VListItemIcon.js +3 -1
  154. package/es5/components/VList/VListItemIcon.js.map +1 -1
  155. package/es5/components/VMain/VMain.js +1 -1
  156. package/es5/components/VMain/VMain.js.map +1 -1
  157. package/es5/components/VMenu/VMenu.js +62 -32
  158. package/es5/components/VMenu/VMenu.js.map +1 -1
  159. package/es5/components/VMessages/VMessages.js +33 -6
  160. package/es5/components/VMessages/VMessages.js.map +1 -1
  161. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +41 -19
  162. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  163. package/es5/components/VOtpInput/VOtpInput.js +87 -34
  164. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  165. package/es5/components/VOverflowBtn/VOverflowBtn.js +18 -14
  166. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  167. package/es5/components/VOverlay/VOverlay.js +31 -3
  168. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  169. package/es5/components/VPagination/VPagination.js +48 -27
  170. package/es5/components/VPagination/VPagination.js.map +1 -1
  171. package/es5/components/VPicker/VPicker.js +7 -4
  172. package/es5/components/VPicker/VPicker.js.map +1 -1
  173. package/es5/components/VProgressCircular/VProgressCircular.js +6 -13
  174. package/es5/components/VProgressCircular/VProgressCircular.js.map +1 -1
  175. package/es5/components/VProgressLinear/VProgressLinear.js +51 -30
  176. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  177. package/es5/components/VRadioGroup/VRadio.js +11 -2
  178. package/es5/components/VRadioGroup/VRadio.js.map +1 -1
  179. package/es5/components/VRadioGroup/VRadioGroup.js +30 -2
  180. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  181. package/es5/components/VRangeSlider/VRangeSlider.js +57 -32
  182. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  183. package/es5/components/VRating/VRating.js +45 -17
  184. package/es5/components/VRating/VRating.js.map +1 -1
  185. package/es5/components/VSelect/VSelect.js +161 -81
  186. package/es5/components/VSelect/VSelect.js.map +1 -1
  187. package/es5/components/VSelect/VSelectList.js +109 -44
  188. package/es5/components/VSelect/VSelectList.js.map +1 -1
  189. package/es5/components/VSheet/VSheet.js +3 -1
  190. package/es5/components/VSheet/VSheet.js.map +1 -1
  191. package/es5/components/VSlideGroup/VSlideGroup.js +40 -28
  192. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  193. package/es5/components/VSlideGroup/VSlideItem.js +2 -1
  194. package/es5/components/VSlideGroup/VSlideItem.js.map +1 -1
  195. package/es5/components/VSlider/VSlider.js +73 -41
  196. package/es5/components/VSlider/VSlider.js.map +1 -1
  197. package/es5/components/VSnackbar/VSnackbar.js +8 -3
  198. package/es5/components/VSnackbar/VSnackbar.js.map +1 -1
  199. package/es5/components/VSparkline/VSparkline.js +48 -68
  200. package/es5/components/VSparkline/VSparkline.js.map +1 -1
  201. package/es5/components/VSpeedDial/VSpeedDial.js +13 -17
  202. package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
  203. package/es5/components/VStepper/VStepper.js +3 -2
  204. package/es5/components/VStepper/VStepper.js.map +1 -1
  205. package/es5/components/VStepper/VStepperContent.js +9 -8
  206. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  207. package/es5/components/VStepper/VStepperStep.js +12 -20
  208. package/es5/components/VStepper/VStepperStep.js.map +1 -1
  209. package/es5/components/VSubheader/VSubheader.js +1 -1
  210. package/es5/components/VSubheader/VSubheader.js.map +1 -1
  211. package/es5/components/VSwitch/VSwitch.js +11 -9
  212. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  213. package/es5/components/VTabs/VTab.js +1 -0
  214. package/es5/components/VTabs/VTab.js.map +1 -1
  215. package/es5/components/VTabs/VTabs.js +68 -24
  216. package/es5/components/VTabs/VTabs.js.map +1 -1
  217. package/es5/components/VTabs/VTabsBar.js +3 -0
  218. package/es5/components/VTabs/VTabsBar.js.map +1 -1
  219. package/es5/components/VTabs/VTabsItems.js +1 -0
  220. package/es5/components/VTabs/VTabsItems.js.map +1 -1
  221. package/es5/components/VTextField/VTextField.js +42 -29
  222. package/es5/components/VTextField/VTextField.js.map +1 -1
  223. package/es5/components/VTextarea/VTextarea.js +1 -1
  224. package/es5/components/VTextarea/VTextarea.js.map +1 -1
  225. package/es5/components/VTimePicker/VTimePicker.js +72 -44
  226. package/es5/components/VTimePicker/VTimePicker.js.map +1 -1
  227. package/es5/components/VTimePicker/VTimePickerClock.js +37 -48
  228. package/es5/components/VTimePicker/VTimePickerClock.js.map +1 -1
  229. package/es5/components/VTimePicker/VTimePickerTitle.js +13 -11
  230. package/es5/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  231. package/es5/components/VToolbar/VToolbar.js +3 -6
  232. package/es5/components/VToolbar/VToolbar.js.map +1 -1
  233. package/es5/components/VTooltip/VTooltip.js +14 -20
  234. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  235. package/es5/components/VTreeview/VTreeview.js +24 -18
  236. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  237. package/es5/components/VTreeview/VTreeviewNode.js +12 -6
  238. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  239. package/es5/components/VVirtualScroll/VVirtualScroll.js +15 -19
  240. package/es5/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  241. package/es5/components/VWindow/VWindow.js +13 -8
  242. package/es5/components/VWindow/VWindow.js.map +1 -1
  243. package/es5/components/VWindow/VWindowItem.js +10 -10
  244. package/es5/components/VWindow/VWindowItem.js.map +1 -1
  245. package/es5/components/transitions/createTransition.js +8 -2
  246. package/es5/components/transitions/createTransition.js.map +1 -1
  247. package/es5/components/transitions/expand-transition.js +1 -0
  248. package/es5/components/transitions/expand-transition.js.map +1 -1
  249. package/es5/directives/color/index.js +6 -3
  250. package/es5/directives/color/index.js.map +1 -1
  251. package/es5/directives/intersect/index.js +20 -7
  252. package/es5/directives/intersect/index.js.map +1 -1
  253. package/es5/directives/mutate/index.js +13 -13
  254. package/es5/directives/mutate/index.js.map +1 -1
  255. package/es5/directives/resize/index.js +8 -8
  256. package/es5/directives/resize/index.js.map +1 -1
  257. package/es5/directives/ripple/index.js +5 -2
  258. package/es5/directives/ripple/index.js.map +1 -1
  259. package/es5/directives/scroll/index.js +8 -8
  260. package/es5/directives/scroll/index.js.map +1 -1
  261. package/es5/directives/touch/index.js +11 -8
  262. package/es5/directives/touch/index.js.map +1 -1
  263. package/es5/framework.js +1 -1
  264. package/es5/install.js +10 -33
  265. package/es5/install.js.map +1 -1
  266. package/es5/mixins/activatable/index.js +11 -13
  267. package/es5/mixins/activatable/index.js.map +1 -1
  268. package/es5/mixins/applicationable/index.js +4 -4
  269. package/es5/mixins/applicationable/index.js.map +1 -1
  270. package/es5/mixins/binds-attrs/index.js +1 -1
  271. package/es5/mixins/binds-attrs/index.js.map +1 -1
  272. package/es5/mixins/bootable/index.js +1 -2
  273. package/es5/mixins/bootable/index.js.map +1 -1
  274. package/es5/mixins/detachable/index.js +13 -10
  275. package/es5/mixins/detachable/index.js.map +1 -1
  276. package/es5/mixins/groupable/index.js +6 -2
  277. package/es5/mixins/groupable/index.js.map +1 -1
  278. package/es5/mixins/intersectable/index.js +2 -2
  279. package/es5/mixins/intersectable/index.js.map +1 -1
  280. package/es5/mixins/menuable/index.js +1 -1
  281. package/es5/mixins/menuable/index.js.map +1 -1
  282. package/es5/mixins/mouse/index.js +10 -5
  283. package/es5/mixins/mouse/index.js.map +1 -1
  284. package/es5/mixins/overlayable/index.js +5 -3
  285. package/es5/mixins/overlayable/index.js.map +1 -1
  286. package/es5/mixins/picker/index.js +13 -3
  287. package/es5/mixins/picker/index.js.map +1 -1
  288. package/es5/mixins/positionable/index.js.map +1 -1
  289. package/es5/mixins/proxyable/index.js +5 -2
  290. package/es5/mixins/proxyable/index.js.map +1 -1
  291. package/es5/mixins/registrable/index.js.map +1 -1
  292. package/es5/mixins/routable/index.js +5 -2
  293. package/es5/mixins/routable/index.js.map +1 -1
  294. package/es5/mixins/selectable/index.js +9 -7
  295. package/es5/mixins/selectable/index.js.map +1 -1
  296. package/es5/mixins/toggleable/index.js.map +1 -1
  297. package/es5/mixins/translatable/index.js +1 -1
  298. package/es5/mixins/translatable/index.js.map +1 -1
  299. package/es5/mixins/validatable/index.js +34 -7
  300. package/es5/mixins/validatable/index.js.map +1 -1
  301. package/es5/services/goto/util.js +42 -3
  302. package/es5/services/goto/util.js.map +1 -1
  303. package/es5/services/theme/index.js +20 -71
  304. package/es5/services/theme/index.js.map +1 -1
  305. package/es5/util/console.js +49 -18
  306. package/es5/util/console.js.map +1 -1
  307. package/es5/util/helpers.js +58 -3
  308. package/es5/util/helpers.js.map +1 -1
  309. package/es5/util/legacyEventsMixin.js +48 -0
  310. package/es5/util/legacyEventsMixin.js.map +1 -0
  311. package/es5/util/mergeData.js +6 -5
  312. package/es5/util/mergeData.js.map +1 -1
  313. package/es5/util/mixins.js +4 -3
  314. package/es5/util/mixins.js.map +1 -1
  315. package/lib/components/VAlert/VAlert.js +13 -7
  316. package/lib/components/VAlert/VAlert.js.map +1 -1
  317. package/lib/components/VAppBar/VAppBar.js +23 -16
  318. package/lib/components/VAppBar/VAppBar.js.map +1 -1
  319. package/lib/components/VAppBar/VAppBarNavIcon.js +1 -1
  320. package/lib/components/VAppBar/VAppBarNavIcon.js.map +1 -1
  321. package/lib/components/VAutocomplete/VAutocomplete.js +12 -8
  322. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  323. package/lib/components/VBadge/VBadge.js +26 -13
  324. package/lib/components/VBadge/VBadge.js.map +1 -1
  325. package/lib/components/VBanner/VBanner.js +20 -13
  326. package/lib/components/VBanner/VBanner.js.map +1 -1
  327. package/lib/components/VBottomNavigation/VBottomNavigation.js +19 -15
  328. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  329. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +7 -5
  330. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  331. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +4 -0
  332. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  333. package/lib/components/VBtn/VBtn.js +21 -20
  334. package/lib/components/VBtn/VBtn.js.map +1 -1
  335. package/lib/components/VCalendar/VCalendar.js +26 -31
  336. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  337. package/lib/components/VCalendar/VCalendarCategory.js +8 -10
  338. package/lib/components/VCalendar/VCalendarCategory.js.map +1 -1
  339. package/lib/components/VCalendar/VCalendarDaily.js +21 -33
  340. package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
  341. package/lib/components/VCalendar/VCalendarMonthly.js +2 -2
  342. package/lib/components/VCalendar/VCalendarMonthly.js.map +1 -1
  343. package/lib/components/VCalendar/VCalendarWeekly.js +28 -36
  344. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  345. package/lib/components/VCalendar/mixins/calendar-base.js +7 -11
  346. package/lib/components/VCalendar/mixins/calendar-base.js.map +1 -1
  347. package/lib/components/VCalendar/mixins/calendar-with-events.js +16 -39
  348. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  349. package/lib/components/VCalendar/mixins/calendar-with-intervals.js +2 -2
  350. package/lib/components/VCalendar/mixins/calendar-with-intervals.js.map +1 -1
  351. package/lib/components/VCalendar/mixins/times.js.map +1 -1
  352. package/lib/components/VCarousel/VCarousel.js +36 -16
  353. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  354. package/lib/components/VCarousel/VCarouselItem.js +1 -1
  355. package/lib/components/VCarousel/VCarouselItem.js.map +1 -1
  356. package/lib/components/VCheckbox/VCheckbox.js +19 -9
  357. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  358. package/lib/components/VCheckbox/VSimpleCheckbox.js +83 -39
  359. package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  360. package/lib/components/VChip/VChip.js +17 -8
  361. package/lib/components/VChip/VChip.js.map +1 -1
  362. package/lib/components/VColorPicker/VColorPicker.js +47 -44
  363. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  364. package/lib/components/VColorPicker/VColorPickerCanvas.js +41 -43
  365. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  366. package/lib/components/VColorPicker/VColorPickerEdit.js +25 -31
  367. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  368. package/lib/components/VColorPicker/VColorPickerPreview.js +45 -32
  369. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  370. package/lib/components/VColorPicker/VColorPickerSwatches.js +15 -9
  371. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  372. package/lib/components/VCombobox/VCombobox.js +1 -0
  373. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  374. package/lib/components/VContent/VContent.js +19 -4
  375. package/lib/components/VContent/VContent.js.map +1 -1
  376. package/lib/components/VCounter/VCounter.js.map +1 -1
  377. package/lib/components/VData/VData.js +16 -2
  378. package/lib/components/VData/VData.js.map +1 -1
  379. package/lib/components/VDataIterator/VDataFooter.js +15 -7
  380. package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
  381. package/lib/components/VDataIterator/VDataIterator.js +31 -34
  382. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  383. package/lib/components/VDataTable/RowGroup.js +30 -14
  384. package/lib/components/VDataTable/RowGroup.js.map +1 -1
  385. package/lib/components/VDataTable/VDataTable.js +20 -33
  386. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  387. package/lib/components/VDataTable/VDataTableHeader.js +7 -9
  388. package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
  389. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +7 -1
  390. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  391. package/lib/components/VDataTable/VDataTableHeaderMobile.js +18 -25
  392. package/lib/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
  393. package/lib/components/VDataTable/VEditDialog.js +18 -18
  394. package/lib/components/VDataTable/VEditDialog.js.map +1 -1
  395. package/lib/components/VDataTable/VSimpleTable.js +1 -1
  396. package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
  397. package/lib/components/VDataTable/VVirtualTable.js +2 -3
  398. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  399. package/lib/components/VDataTable/mixins/header.js +3 -8
  400. package/lib/components/VDataTable/mixins/header.js.map +1 -1
  401. package/lib/components/VDatePicker/VDatePicker.js +38 -27
  402. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  403. package/lib/components/VDatePicker/VDatePickerHeader.js +45 -21
  404. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  405. package/lib/components/VDatePicker/VDatePickerMonthTable.js +3 -1
  406. package/lib/components/VDatePicker/VDatePickerMonthTable.js.map +1 -1
  407. package/lib/components/VDatePicker/VDatePickerTitle.js +34 -11
  408. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  409. package/lib/components/VDatePicker/VDatePickerYears.js +17 -8
  410. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  411. package/lib/components/VDatePicker/mixins/date-picker-table.js +31 -16
  412. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  413. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.js +4 -0
  414. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.js.map +1 -1
  415. package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
  416. package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
  417. package/lib/components/VDialog/VDialog.js +13 -5
  418. package/lib/components/VDialog/VDialog.js.map +1 -1
  419. package/lib/components/VExpansionPanel/VExpansionPanel.js +1 -0
  420. package/lib/components/VExpansionPanel/VExpansionPanel.js.map +1 -1
  421. package/lib/components/VExpansionPanel/VExpansionPanelContent.js +2 -2
  422. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  423. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js +4 -7
  424. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  425. package/lib/components/VFileInput/VFileInput.js +43 -25
  426. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  427. package/lib/components/VFooter/VFooter.js +2 -2
  428. package/lib/components/VFooter/VFooter.js.map +1 -1
  429. package/lib/components/VForm/VForm.js +41 -26
  430. package/lib/components/VForm/VForm.js.map +1 -1
  431. package/lib/components/VGrid/VCol.js +7 -5
  432. package/lib/components/VGrid/VCol.js.map +1 -1
  433. package/lib/components/VGrid/VContainer.js +14 -10
  434. package/lib/components/VGrid/VContainer.js.map +1 -1
  435. package/lib/components/VGrid/VRow.js +2 -2
  436. package/lib/components/VGrid/VRow.js.map +1 -1
  437. package/lib/components/VGrid/grid.js +16 -14
  438. package/lib/components/VGrid/grid.js.map +1 -1
  439. package/lib/components/VHover/VHover.js +24 -18
  440. package/lib/components/VHover/VHover.js.map +1 -1
  441. package/lib/components/VIcon/VIcon.js +79 -57
  442. package/lib/components/VIcon/VIcon.js.map +1 -1
  443. package/lib/components/VImg/VImg.js +5 -9
  444. package/lib/components/VImg/VImg.js.map +1 -1
  445. package/lib/components/VInput/VInput.js +32 -9
  446. package/lib/components/VInput/VInput.js.map +1 -1
  447. package/lib/components/VItemGroup/VItem.js +25 -21
  448. package/lib/components/VItemGroup/VItem.js.map +1 -1
  449. package/lib/components/VItemGroup/VItemGroup.js +13 -3
  450. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  451. package/lib/components/VLabel/VLabel.js +3 -1
  452. package/lib/components/VLabel/VLabel.js.map +1 -1
  453. package/lib/components/VLazy/VLazy.js +9 -16
  454. package/lib/components/VLazy/VLazy.js.map +1 -1
  455. package/lib/components/VList/VList.js +3 -3
  456. package/lib/components/VList/VList.js.map +1 -1
  457. package/lib/components/VList/VListGroup.js +34 -32
  458. package/lib/components/VList/VListGroup.js.map +1 -1
  459. package/lib/components/VList/VListItem.js +41 -19
  460. package/lib/components/VList/VListItem.js.map +1 -1
  461. package/lib/components/VList/VListItemAction.js +15 -9
  462. package/lib/components/VList/VListItemAction.js.map +1 -1
  463. package/lib/components/VList/VListItemIcon.js +3 -1
  464. package/lib/components/VList/VListItemIcon.js.map +1 -1
  465. package/lib/components/VMain/VMain.js +2 -2
  466. package/lib/components/VMain/VMain.js.map +1 -1
  467. package/lib/components/VMenu/VMenu.js +18 -6
  468. package/lib/components/VMenu/VMenu.js.map +1 -1
  469. package/lib/components/VMessages/VMessages.js +13 -2
  470. package/lib/components/VMessages/VMessages.js.map +1 -1
  471. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +17 -12
  472. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  473. package/lib/components/VOtpInput/VOtpInput.js +103 -35
  474. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  475. package/lib/components/VOverflowBtn/VOverflowBtn.js +16 -15
  476. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  477. package/lib/components/VOverlay/VOverlay.js +13 -2
  478. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  479. package/lib/components/VPagination/VPagination.js +28 -23
  480. package/lib/components/VPagination/VPagination.js.map +1 -1
  481. package/lib/components/VPicker/VPicker.js +4 -4
  482. package/lib/components/VPicker/VPicker.js.map +1 -1
  483. package/lib/components/VProgressCircular/VProgressCircular.js +6 -7
  484. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  485. package/lib/components/VProgressLinear/VProgressLinear.js +45 -22
  486. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  487. package/lib/components/VRadioGroup/VRadio.js +3 -2
  488. package/lib/components/VRadioGroup/VRadio.js.map +1 -1
  489. package/lib/components/VRadioGroup/VRadioGroup.js +14 -5
  490. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  491. package/lib/components/VRangeSlider/VRangeSlider.js +17 -5
  492. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  493. package/lib/components/VRating/VRating.js +11 -0
  494. package/lib/components/VRating/VRating.js.map +1 -1
  495. package/lib/components/VSelect/VSelect.js +104 -42
  496. package/lib/components/VSelect/VSelect.js.map +1 -1
  497. package/lib/components/VSelect/VSelectList.js +64 -29
  498. package/lib/components/VSelect/VSelectList.js.map +1 -1
  499. package/lib/components/VSheet/VSheet.js +3 -2
  500. package/lib/components/VSheet/VSheet.js.map +1 -1
  501. package/lib/components/VSlideGroup/VSlideGroup.js +23 -23
  502. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  503. package/lib/components/VSlideGroup/VSlideItem.js +2 -1
  504. package/lib/components/VSlideGroup/VSlideItem.js.map +1 -1
  505. package/lib/components/VSlider/VSlider.js +37 -25
  506. package/lib/components/VSlider/VSlider.js.map +1 -1
  507. package/lib/components/VSnackbar/VSnackbar.js +2 -1
  508. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  509. package/lib/components/VSparkline/VSparkline.js +48 -67
  510. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  511. package/lib/components/VSpeedDial/VSpeedDial.js +9 -15
  512. package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
  513. package/lib/components/VStepper/VStepper.js +4 -3
  514. package/lib/components/VStepper/VStepper.js.map +1 -1
  515. package/lib/components/VStepper/VStepperContent.js +7 -8
  516. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  517. package/lib/components/VStepper/VStepperStep.js +8 -19
  518. package/lib/components/VStepper/VStepperStep.js.map +1 -1
  519. package/lib/components/VSubheader/VSubheader.js +1 -1
  520. package/lib/components/VSubheader/VSubheader.js.map +1 -1
  521. package/lib/components/VSwitch/VSwitch.js +2 -4
  522. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  523. package/lib/components/VTabs/VTab.js +1 -0
  524. package/lib/components/VTabs/VTab.js.map +1 -1
  525. package/lib/components/VTabs/VTabs.js +34 -8
  526. package/lib/components/VTabs/VTabs.js.map +1 -1
  527. package/lib/components/VTabs/VTabsBar.js +3 -0
  528. package/lib/components/VTabs/VTabsBar.js.map +1 -1
  529. package/lib/components/VTabs/VTabsItems.js +1 -0
  530. package/lib/components/VTabs/VTabsItems.js.map +1 -1
  531. package/lib/components/VTextField/VTextField.js +15 -19
  532. package/lib/components/VTextField/VTextField.js.map +1 -1
  533. package/lib/components/VTextarea/VTextarea.js +1 -1
  534. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  535. package/lib/components/VTimePicker/VTimePicker.js +65 -31
  536. package/lib/components/VTimePicker/VTimePicker.js.map +1 -1
  537. package/lib/components/VTimePicker/VTimePickerClock.js +24 -39
  538. package/lib/components/VTimePicker/VTimePickerClock.js.map +1 -1
  539. package/lib/components/VTimePicker/VTimePickerTitle.js +3 -2
  540. package/lib/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  541. package/lib/components/VToolbar/VToolbar.js +6 -7
  542. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  543. package/lib/components/VTooltip/VTooltip.js +11 -22
  544. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  545. package/lib/components/VTreeview/VTreeview.js +15 -13
  546. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  547. package/lib/components/VTreeview/VTreeviewNode.js +4 -6
  548. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  549. package/lib/components/VVirtualScroll/VVirtualScroll.js +8 -14
  550. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  551. package/lib/components/VWindow/VWindow.js +7 -6
  552. package/lib/components/VWindow/VWindow.js.map +1 -1
  553. package/lib/components/VWindow/VWindowItem.js +5 -7
  554. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  555. package/lib/components/transitions/createTransition.js +2 -2
  556. package/lib/components/transitions/createTransition.js.map +1 -1
  557. package/lib/components/transitions/expand-transition.js +1 -0
  558. package/lib/components/transitions/expand-transition.js.map +1 -1
  559. package/lib/directives/color/index.js +6 -3
  560. package/lib/directives/color/index.js.map +1 -1
  561. package/lib/directives/intersect/index.js +20 -7
  562. package/lib/directives/intersect/index.js.map +1 -1
  563. package/lib/directives/mutate/index.js +13 -13
  564. package/lib/directives/mutate/index.js.map +1 -1
  565. package/lib/directives/resize/index.js +8 -8
  566. package/lib/directives/resize/index.js.map +1 -1
  567. package/lib/directives/ripple/index.js +5 -3
  568. package/lib/directives/ripple/index.js.map +1 -1
  569. package/lib/directives/scroll/index.js +8 -8
  570. package/lib/directives/scroll/index.js.map +1 -1
  571. package/lib/directives/touch/index.js +11 -8
  572. package/lib/directives/touch/index.js.map +1 -1
  573. package/lib/framework.js +1 -1
  574. package/lib/install.js +5 -28
  575. package/lib/install.js.map +1 -1
  576. package/lib/mixins/activatable/index.js +13 -14
  577. package/lib/mixins/activatable/index.js.map +1 -1
  578. package/lib/mixins/applicationable/index.js +4 -4
  579. package/lib/mixins/applicationable/index.js.map +1 -1
  580. package/lib/mixins/binds-attrs/index.js +1 -1
  581. package/lib/mixins/binds-attrs/index.js.map +1 -1
  582. package/lib/mixins/bootable/index.js +2 -4
  583. package/lib/mixins/bootable/index.js.map +1 -1
  584. package/lib/mixins/detachable/index.js +14 -11
  585. package/lib/mixins/detachable/index.js.map +1 -1
  586. package/lib/mixins/groupable/index.js +4 -2
  587. package/lib/mixins/groupable/index.js.map +1 -1
  588. package/lib/mixins/intersectable/index.js +2 -2
  589. package/lib/mixins/intersectable/index.js.map +1 -1
  590. package/lib/mixins/menuable/index.js +1 -1
  591. package/lib/mixins/menuable/index.js.map +1 -1
  592. package/lib/mixins/mouse/index.js +9 -5
  593. package/lib/mixins/mouse/index.js.map +1 -1
  594. package/lib/mixins/overlayable/index.js +4 -2
  595. package/lib/mixins/overlayable/index.js.map +1 -1
  596. package/lib/mixins/picker/index.js +5 -3
  597. package/lib/mixins/picker/index.js.map +1 -1
  598. package/lib/mixins/positionable/index.js.map +1 -1
  599. package/lib/mixins/proxyable/index.js +5 -2
  600. package/lib/mixins/proxyable/index.js.map +1 -1
  601. package/lib/mixins/registrable/index.js.map +1 -1
  602. package/lib/mixins/routable/index.js +5 -2
  603. package/lib/mixins/routable/index.js.map +1 -1
  604. package/lib/mixins/selectable/index.js +15 -12
  605. package/lib/mixins/selectable/index.js.map +1 -1
  606. package/lib/mixins/toggleable/index.js.map +1 -1
  607. package/lib/mixins/translatable/index.js +1 -1
  608. package/lib/mixins/translatable/index.js.map +1 -1
  609. package/lib/mixins/validatable/index.js +17 -7
  610. package/lib/mixins/validatable/index.js.map +1 -1
  611. package/lib/services/goto/util.js +42 -3
  612. package/lib/services/goto/util.js.map +1 -1
  613. package/lib/services/theme/index.js +18 -64
  614. package/lib/services/theme/index.js.map +1 -1
  615. package/lib/util/console.js +47 -17
  616. package/lib/util/console.js.map +1 -1
  617. package/lib/util/helpers.js +52 -3
  618. package/lib/util/helpers.js.map +1 -1
  619. package/lib/util/legacyEventsMixin.js +37 -0
  620. package/lib/util/legacyEventsMixin.js.map +1 -0
  621. package/lib/util/mergeData.js +6 -5
  622. package/lib/util/mergeData.js.map +1 -1
  623. package/lib/util/mixins.js +3 -2
  624. package/lib/util/mixins.js.map +1 -1
  625. package/package.json +2 -2
  626. package/src/components/VAlert/VAlert.ts +19 -8
  627. package/src/components/VAlert/__tests__/VAlert.spec.ts +78 -50
  628. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +18 -20
  629. package/src/components/VApp/__tests__/VApp.spec.ts +24 -18
  630. package/src/components/VApp/__tests__/__snapshots__/VApp.spec.ts.snap +4 -4
  631. package/src/components/VAppBar/VAppBar.ts +21 -14
  632. package/src/components/VAppBar/VAppBarNavIcon.ts +1 -1
  633. package/src/components/VAppBar/__tests__/VAppBar.spec.ts +256 -74
  634. package/src/components/VAppBar/__tests__/VAppBarNavIcon.spec.ts +2 -6
  635. package/src/components/VAppBar/__tests__/__snapshots__/VAppBar.spec.ts.snap +13 -4
  636. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +4 -5
  637. package/src/components/VAutocomplete/VAutocomplete.ts +35 -6
  638. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +125 -72
  639. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +109 -82
  640. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +114 -52
  641. package/src/components/VAvatar/__tests__/VAvatar.spec.ts +72 -10
  642. package/src/components/VBadge/VBadge.ts +38 -26
  643. package/src/components/VBadge/__tests__/VBadge.spec.ts +47 -30
  644. package/src/components/VBadge/__tests__/__snapshots__/VBadge.spec.ts.snap +5 -5
  645. package/src/components/VBanner/VBanner.ts +30 -17
  646. package/src/components/VBanner/__tests__/VBanner.spec.ts +35 -36
  647. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +3 -3
  648. package/src/components/VBottomNavigation/VBottomNavigation.ts +29 -17
  649. package/src/components/VBottomNavigation/__tests__/VBottomNavigation.spec.ts +43 -37
  650. package/src/components/VBottomNavigation/__tests__/__snapshots__/VBottomNavigation.spec.ts.snap +10 -10
  651. package/src/components/VBreadcrumbs/VBreadcrumbs.ts +8 -4
  652. package/src/components/VBreadcrumbs/VBreadcrumbsItem.ts +4 -0
  653. package/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.ts +125 -10
  654. package/src/components/VBreadcrumbs/__tests__/VBreadcrumbsItem.spec.ts +10 -6
  655. package/src/components/VBtn/VBtn.ts +25 -17
  656. package/src/components/VBtn/__tests__/VBtn.spec.ts +262 -242
  657. package/src/components/VBtn/__tests__/__snapshots__/VBtn.spec.ts.snap +13 -73
  658. package/src/components/VBtnToggle/__tests__/VBtnToggle.spec.ts +10 -6
  659. package/src/components/VCalendar/VCalendar.ts +29 -27
  660. package/src/components/VCalendar/VCalendarCategory.ts +9 -8
  661. package/src/components/VCalendar/VCalendarDaily.ts +18 -28
  662. package/src/components/VCalendar/VCalendarMonthly.ts +2 -1
  663. package/src/components/VCalendar/VCalendarWeekly.ts +30 -35
  664. package/src/components/VCalendar/__tests__/VCalendar.spec.ts +19 -35
  665. package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +21 -19
  666. package/src/components/VCalendar/__tests__/VCalendarDaily.spec.ts +30 -28
  667. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +38 -38
  668. package/src/components/VCalendar/__tests__/__snapshots__/VCalendarDaily.spec.ts.snap +122 -122
  669. package/src/components/VCalendar/mixins/__tests__/__snapshots__/calendar-with-events.spec.ts.snap +1 -56
  670. package/src/components/VCalendar/mixins/__tests__/calendar-base.spec.ts +24 -21
  671. package/src/components/VCalendar/mixins/__tests__/calendar-with-events.spec.ts +27 -34
  672. package/src/components/VCalendar/mixins/__tests__/calendar-with-intervals.spec.ts +31 -28
  673. package/src/components/VCalendar/mixins/__tests__/times.spec.ts +10 -9
  674. package/src/components/VCalendar/mixins/calendar-base.ts +8 -12
  675. package/src/components/VCalendar/mixins/calendar-with-events.ts +19 -38
  676. package/src/components/VCalendar/mixins/calendar-with-intervals.ts +1 -1
  677. package/src/components/VCalendar/mixins/times.ts +1 -1
  678. package/src/components/VCard/__tests__/VCard.spec.ts +46 -28
  679. package/src/components/VCard/__tests__/__snapshots__/VCard.spec.ts.snap +2 -2
  680. package/src/components/VCarousel/VCarousel.ts +42 -15
  681. package/src/components/VCarousel/VCarouselItem.ts +1 -1
  682. package/src/components/VCarousel/__tests__/VCarousel.spec.ts +74 -54
  683. package/src/components/VCarousel/__tests__/VCarouselItem.spec.ts +9 -5
  684. package/src/components/VCarousel/__tests__/__snapshots__/VCarousel.spec.ts.snap +1 -1
  685. package/src/components/VCheckbox/VCheckbox.ts +23 -10
  686. package/src/components/VCheckbox/VSimpleCheckbox.ts +97 -45
  687. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +163 -152
  688. package/src/components/VCheckbox/__tests__/VSimpleCheckbox.spec.ts +46 -13
  689. package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
  690. package/src/components/VChip/VChip.ts +19 -15
  691. package/src/components/VChip/__tests__/VChip.spec.ts +50 -50
  692. package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +4 -4
  693. package/src/components/VChipGroup/__tests__/VChipGroup.spec.ts +14 -21
  694. package/src/components/VColorPicker/VColorPicker.ts +51 -41
  695. package/src/components/VColorPicker/VColorPickerCanvas.ts +44 -37
  696. package/src/components/VColorPicker/VColorPickerEdit.ts +37 -35
  697. package/src/components/VColorPicker/VColorPickerPreview.ts +48 -28
  698. package/src/components/VColorPicker/VColorPickerSwatches.ts +23 -12
  699. package/src/components/VColorPicker/__tests__/VColorPicker.spec.ts +47 -47
  700. package/src/components/VColorPicker/__tests__/VColorPickerCanvas.spec.ts +15 -13
  701. package/src/components/VColorPicker/__tests__/VColorPickerEdit.spec.ts +52 -50
  702. package/src/components/VColorPicker/__tests__/VColorPickerPreview.spec.ts +101 -30
  703. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +236 -193
  704. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +48 -31
  705. package/src/components/VCombobox/VCombobox.ts +23 -0
  706. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +202 -174
  707. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +126 -95
  708. package/src/components/VContent/VContent.ts +11 -3
  709. package/src/components/VCounter/VCounter.ts +1 -1
  710. package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
  711. package/src/components/VData/VData.ts +14 -1
  712. package/src/components/VData/__tests__/VData.spec.ts +69 -90
  713. package/src/components/VDataIterator/VDataFooter.ts +16 -9
  714. package/src/components/VDataIterator/VDataIterator.ts +51 -35
  715. package/src/components/VDataIterator/__tests__/VDataFooter.spec.ts +38 -39
  716. package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +90 -122
  717. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +113 -103
  718. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +94 -84
  719. package/src/components/VDataTable/RowGroup.ts +33 -16
  720. package/src/components/VDataTable/VDataTable.ts +20 -29
  721. package/src/components/VDataTable/VDataTableHeader.ts +8 -9
  722. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +10 -1
  723. package/src/components/VDataTable/VDataTableHeaderMobile.ts +18 -25
  724. package/src/components/VDataTable/VEditDialog.ts +23 -21
  725. package/src/components/VDataTable/VSimpleTable.ts +2 -3
  726. package/src/components/VDataTable/VVirtualTable.ts +2 -3
  727. package/src/components/VDataTable/__tests__/MobileRow.spec.ts +55 -66
  728. package/src/components/VDataTable/__tests__/Row.spec.ts +64 -73
  729. package/src/components/VDataTable/__tests__/RowGroup.spec.ts +7 -5
  730. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +916 -998
  731. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +41 -35
  732. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +52 -40
  733. package/src/components/VDataTable/__tests__/VSimpleTable.spec.ts +55 -29
  734. package/src/components/VDataTable/__tests__/VVirtualTable.spec.ts +13 -15
  735. package/src/components/VDataTable/__tests__/__snapshots__/Row.spec.ts.snap +30 -0
  736. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +3348 -2891
  737. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +157 -186
  738. package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +6 -6
  739. package/src/components/VDataTable/__tests__/__snapshots__/VSimpleTable.spec.ts.snap +22 -18
  740. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +14 -17
  741. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +17 -17
  742. package/src/components/VDataTable/mixins/header.ts +6 -10
  743. package/src/components/VDatePicker/VDatePicker.ts +48 -27
  744. package/src/components/VDatePicker/VDatePickerHeader.ts +57 -32
  745. package/src/components/VDatePicker/VDatePickerMonthTable.ts +1 -1
  746. package/src/components/VDatePicker/VDatePickerTitle.ts +41 -15
  747. package/src/components/VDatePicker/VDatePickerYears.ts +19 -10
  748. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +278 -260
  749. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +157 -131
  750. package/src/components/VDatePicker/__tests__/VDatePickerDateTable.spec.ts +76 -90
  751. package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +85 -75
  752. package/src/components/VDatePicker/__tests__/VDatePickerMonthTable.spec.ts +63 -77
  753. package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +56 -32
  754. package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +29 -26
  755. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +628 -595
  756. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +248 -228
  757. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerDateTable.spec.ts.snap +615 -615
  758. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerHeader.spec.ts.snap +52 -52
  759. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerMonthTable.spec.ts.snap +144 -144
  760. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +18 -9
  761. package/src/components/VDatePicker/mixins/date-picker-table.ts +33 -15
  762. package/src/components/VDatePicker/util/__tests__/createNativeLocaleFormatter.spec.ts +7 -0
  763. package/src/components/VDatePicker/util/createNativeLocaleFormatter.ts +3 -0
  764. package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
  765. package/src/components/VDialog/VDialog.ts +24 -12
  766. package/src/components/VDialog/__tests__/VDialog.spec.ts +105 -101
  767. package/src/components/VDialog/__tests__/__snapshots__/VDialog.spec.ts.snap +0 -15
  768. package/src/components/VDivider/__tests__/VDivider.spec.ts +11 -15
  769. package/src/components/VDivider/__tests__/__snapshots__/VDivider.spec.ts.snap +2 -2
  770. package/src/components/VExpansionPanel/VExpansionPanel.ts +5 -0
  771. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +7 -10
  772. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +13 -18
  773. package/src/components/VExpansionPanel/__tests__/VExpansionPanel.spec.ts +45 -29
  774. package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
  775. package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
  776. package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +12 -11
  777. package/src/components/VFileInput/VFileInput.ts +47 -32
  778. package/src/components/VFileInput/__tests__/VFileInput.spec.ts +84 -54
  779. package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +242 -146
  780. package/src/components/VFooter/VFooter.ts +2 -2
  781. package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
  782. package/src/components/VForm/VForm.ts +63 -35
  783. package/src/components/VForm/__tests__/VForm.spec.ts +100 -80
  784. package/src/components/VGrid/VCol.ts +4 -4
  785. package/src/components/VGrid/VContainer.ts +16 -12
  786. package/src/components/VGrid/VRow.ts +2 -2
  787. package/src/components/VGrid/__tests__/VCol.spec.ts +20 -18
  788. package/src/components/VGrid/__tests__/VContainer.spec.ts +58 -3
  789. package/src/components/VGrid/__tests__/VFlex.spec.ts +3 -3
  790. package/src/components/VGrid/__tests__/VGrid.spec.ts +12 -11
  791. package/src/components/VGrid/__tests__/VLayout.spec.ts +3 -3
  792. package/src/components/VGrid/grid.ts +16 -17
  793. package/src/components/VHover/VHover.ts +23 -17
  794. package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
  795. package/src/components/VIcon/VIcon.ts +72 -53
  796. package/src/components/VIcon/__tests__/VIcon.spec.ts +139 -123
  797. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
  798. package/src/components/VImg/VImg.ts +5 -4
  799. package/src/components/VImg/__tests__/VImg.spec.ts +21 -20
  800. package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +71 -66
  801. package/src/components/VInput/VInput.ts +33 -8
  802. package/src/components/VInput/__tests__/VInput.spec.ts +170 -234
  803. package/src/components/VInput/__tests__/__snapshots__/VInput.spec.ts.snap +50 -101
  804. package/src/components/VItemGroup/VItem.ts +30 -24
  805. package/src/components/VItemGroup/VItemGroup.ts +14 -3
  806. package/src/components/VItemGroup/__tests__/VItem.spec.ts +39 -46
  807. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +96 -124
  808. package/src/components/VItemGroup/__tests__/__snapshots__/VItem.spec.ts.snap +2 -0
  809. package/src/components/VLabel/VLabel.ts +1 -1
  810. package/src/components/VLabel/__tests__/VLabel.spec.ts +240 -14
  811. package/src/components/VLazy/VLazy.ts +12 -14
  812. package/src/components/VLazy/__tests__/VLazy.spec.ts +5 -4
  813. package/src/components/VLazy/__tests__/__snapshots__/VLazy.spec.ts.snap +2 -1
  814. package/src/components/VList/VList.ts +3 -3
  815. package/src/components/VList/VListGroup.ts +43 -32
  816. package/src/components/VList/VListItem.ts +56 -24
  817. package/src/components/VList/VListItemAction.ts +11 -10
  818. package/src/components/VList/VListItemIcon.ts +1 -1
  819. package/src/components/VList/__tests__/VList.spec.ts +13 -12
  820. package/src/components/VList/__tests__/VListGroup.spec.ts +58 -50
  821. package/src/components/VList/__tests__/VListItem.spec.ts +142 -63
  822. package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
  823. package/src/components/VList/__tests__/VListItemAvatar.spec.ts +5 -2
  824. package/src/components/VList/__tests__/VListItemGroup.spec.ts +5 -2
  825. package/src/components/VList/__tests__/__snapshots__/VList.spec.ts.snap +10 -10
  826. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +6 -7
  827. package/src/components/VList/__tests__/__snapshots__/VListItem.spec.ts.snap +1 -1
  828. package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
  829. package/src/components/VMain/VMain.ts +2 -2
  830. package/src/components/VMain/__tests__/VMain.spec.ts +71 -17
  831. package/src/components/VMenu/VMenu.ts +28 -7
  832. package/src/components/VMenu/__tests__/VMenu.spec.ts +90 -69
  833. package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +3 -5
  834. package/src/components/VMessages/VMessages.ts +15 -4
  835. package/src/components/VMessages/__tests__/VMessages.spec.ts +55 -16
  836. package/src/components/VMessages/__tests__/__snapshots__/VMessages.spec.ts.snap +16 -25
  837. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +27 -19
  838. package/src/components/VNavigationDrawer/__tests__/VNavigationDrawer.spec.ts +84 -71
  839. package/src/components/VOtpInput/VOtpInput.ts +92 -32
  840. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
  841. package/src/components/VOverflowBtn/VOverflowBtn.ts +16 -11
  842. package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
  843. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
  844. package/src/components/VOverlay/VOverlay.ts +15 -1
  845. package/src/components/VOverlay/__tests__/VOverlay.spec.ts +6 -6
  846. package/src/components/VPagination/VPagination.ts +41 -29
  847. package/src/components/VPagination/__tests__/VPagination.spec.ts +85 -71
  848. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +214 -459
  849. package/src/components/VParallax/__tests__/__snapshots__/VParallax.spec.ts.snap +8 -8
  850. package/src/components/VPicker/VPicker.ts +9 -11
  851. package/src/components/VPicker/__tests__/VPicker.spec.ts +14 -15
  852. package/src/components/VPicker/__tests__/__snapshots__/VPicker.spec.ts.snap +2 -2
  853. package/src/components/VProgressCircular/VProgressCircular.ts +6 -6
  854. package/src/components/VProgressCircular/__tests__/VProgressCircular.spec.ts +28 -21
  855. package/src/components/VProgressCircular/__tests__/__snapshots__/VProgressCircular.spec.ts.snap +62 -62
  856. package/src/components/VProgressLinear/VProgressLinear.ts +62 -33
  857. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +386 -71
  858. package/src/components/VProgressLinear/__tests__/__snapshots__/VProgressLinear.spec.ts.snap +53 -79
  859. package/src/components/VRadioGroup/VRadio.ts +4 -2
  860. package/src/components/VRadioGroup/VRadioGroup.ts +20 -7
  861. package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
  862. package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
  863. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
  864. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
  865. package/src/components/VRangeSlider/VRangeSlider.ts +20 -5
  866. package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +40 -40
  867. package/src/components/VRangeSlider/__tests__/__snapshots__/VRangeSlider.spec.ts.snap +32 -38
  868. package/src/components/VRating/VRating.ts +13 -0
  869. package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
  870. package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
  871. package/src/components/VResponsive/__tests__/__snapshots__/VResponsive.spec.ts.snap +2 -2
  872. package/src/components/VSelect/VSelect.ts +110 -48
  873. package/src/components/VSelect/VSelectList.ts +62 -25
  874. package/src/components/VSelect/__tests__/VSelect.spec.ts +166 -125
  875. package/src/components/VSelect/__tests__/VSelect2.spec.ts +129 -113
  876. package/src/components/VSelect/__tests__/VSelect3.spec.ts +109 -91
  877. package/src/components/VSelect/__tests__/VSelect4.spec.ts +79 -68
  878. package/src/components/VSelect/__tests__/VSelectList.spec.ts +23 -31
  879. package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +58 -62
  880. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +48 -60
  881. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +9 -297
  882. package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
  883. package/src/components/VSheet/VSheet.ts +2 -1
  884. package/src/components/VSheet/__tests__/VSheet.spec.ts +5 -5
  885. package/src/components/VSkeletonLoader/__tests__/VSkeletonLoader.spec.ts +22 -15
  886. package/src/components/VSkeletonLoader/__tests__/__snapshots__/VSkeletonLoader.spec.ts.snap +60 -60
  887. package/src/components/VSlideGroup/VSlideGroup.ts +36 -24
  888. package/src/components/VSlideGroup/VSlideItem.ts +2 -0
  889. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
  890. package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
  891. package/src/components/VSlider/VSlider.ts +58 -32
  892. package/src/components/VSlider/__tests__/VSlider.spec.ts +188 -286
  893. package/src/components/VSlider/__tests__/__snapshots__/VSlider.spec.ts.snap +157 -246
  894. package/src/components/VSnackbar/VSnackbar.ts +2 -2
  895. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
  896. package/src/components/VSparkline/VSparkline.ts +54 -92
  897. package/src/components/VSparkline/__tests__/VSparkline.spec.ts +33 -35
  898. package/src/components/VSpeedDial/VSpeedDial.ts +12 -15
  899. package/src/components/VSpeedDial/__tests__/VSpeedDial.spec.ts +21 -13
  900. package/src/components/VSpeedDial/__tests__/__snapshots__/VSpeedDial.spec.ts.snap +6 -6
  901. package/src/components/VStepper/VStepper.ts +7 -5
  902. package/src/components/VStepper/VStepperContent.ts +10 -16
  903. package/src/components/VStepper/VStepperStep.ts +9 -16
  904. package/src/components/VStepper/__tests__/VStepper.spec.ts +7 -4
  905. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +120 -107
  906. package/src/components/VStepper/__tests__/VStepperStep.spec.ts +51 -44
  907. package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
  908. package/src/components/VSubheader/VSubheader.ts +1 -1
  909. package/src/components/VSubheader/__tests__/VSubheader.spec.ts +12 -7
  910. package/src/components/VSubheader/__tests__/__snapshots__/VSubheader.spec.ts.snap +1 -1
  911. package/src/components/VSwitch/VSwitch.ts +5 -6
  912. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +34 -44
  913. package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
  914. package/src/components/VSystemBar/__tests__/VSystemBar.spec.ts +89 -17
  915. package/src/components/VTabs/VTab.ts +2 -0
  916. package/src/components/VTabs/VTabs.ts +39 -14
  917. package/src/components/VTabs/VTabsBar.ts +11 -5
  918. package/src/components/VTabs/VTabsItems.ts +2 -0
  919. package/src/components/VTabs/__tests__/VTab.spec.ts +49 -38
  920. package/src/components/VTabs/__tests__/VTabs.spec.ts +189 -76
  921. package/src/components/VTabs/__tests__/VTabsBar.spec.ts +68 -27
  922. package/src/components/VTabs/__tests__/VTabsSlider.spec.ts +7 -6
  923. package/src/components/VTabs/__tests__/__snapshots__/VTabs.spec.ts.snap +1 -3
  924. package/src/components/VTextField/VTextField.ts +22 -22
  925. package/src/components/VTextField/__tests__/VTextField.spec.ts +350 -257
  926. package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
  927. package/src/components/VTextarea/VTextarea.ts +1 -1
  928. package/src/components/VTextarea/__tests__/VTextarea.spec.ts +163 -35
  929. package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +99 -4
  930. package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
  931. package/src/components/VTimePicker/VTimePicker.ts +199 -89
  932. package/src/components/VTimePicker/VTimePickerClock.ts +40 -45
  933. package/src/components/VTimePicker/VTimePickerTitle.ts +5 -4
  934. package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +155 -142
  935. package/src/components/VTimePicker/__tests__/VTimePickerClock.spec.ts +78 -81
  936. package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +49 -43
  937. package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +120 -40
  938. package/src/components/VTimeline/__tests__/VTimelineItem.spec.ts +25 -35
  939. package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +6 -7
  940. package/src/components/VToolbar/VToolbar.ts +6 -7
  941. package/src/components/VToolbar/__tests__/VToolbar.spec.ts +49 -25
  942. package/src/components/VTooltip/VTooltip.ts +26 -32
  943. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +64 -78
  944. package/src/components/VTooltip/__tests__/__snapshots__/VTooltip.spec.ts.snap +34 -18
  945. package/src/components/VTreeview/VTreeview.ts +20 -17
  946. package/src/components/VTreeview/VTreeviewNode.ts +4 -6
  947. package/src/components/VTreeview/__tests__/VTreeview.spec.ts +168 -174
  948. package/src/components/VTreeview/__tests__/VTreeviewNode.spec.ts +74 -78
  949. package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +141 -141
  950. package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +32 -26
  951. package/src/components/VVirtualScroll/VVirtualScroll.ts +14 -15
  952. package/src/components/VVirtualScroll/__tests__/VVirtualScroll.spec.ts +24 -20
  953. package/src/components/VWindow/VWindow.ts +9 -6
  954. package/src/components/VWindow/VWindowItem.ts +5 -4
  955. package/src/components/VWindow/__tests__/VWindow.spec.ts +304 -185
  956. package/src/components/VWindow/__tests__/VWindowItem.spec.ts +283 -126
  957. package/src/components/VWindow/__tests__/__snapshots__/VWindow.spec.ts.snap +59 -0
  958. package/src/components/VWindow/__tests__/__snapshots__/VWindowItem.spec.ts.snap +36 -0
  959. package/src/components/transitions/createTransition.ts +2 -2
  960. package/src/components/transitions/expand-transition.ts +2 -0
  961. package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
  962. package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
  963. package/src/directives/color/__tests__/color.spec.ts +54 -34
  964. package/src/directives/color/index.ts +7 -3
  965. package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
  966. package/src/directives/intersect/index.ts +81 -42
  967. package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
  968. package/src/directives/mutate/index.ts +58 -49
  969. package/src/directives/resize/__tests__/resize.spec.ts +5 -5
  970. package/src/directives/resize/index.ts +33 -14
  971. package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
  972. package/src/directives/ripple/index.ts +3 -6
  973. package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
  974. package/src/directives/scroll/index.ts +35 -20
  975. package/src/directives/touch/__tests__/touch.spec.ts +23 -16
  976. package/src/directives/touch/index.ts +42 -30
  977. package/src/globals.d.ts +6 -6
  978. package/src/install.ts +10 -32
  979. package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
  980. package/src/mixins/activatable/index.ts +10 -11
  981. package/src/mixins/applicationable/__tests__/applicationable.spec.ts +31 -27
  982. package/src/mixins/applicationable/index.ts +4 -4
  983. package/src/mixins/binds-attrs/index.ts +1 -1
  984. package/src/mixins/bootable/__tests__/bootable.spec.ts +17 -11
  985. package/src/mixins/bootable/index.ts +4 -3
  986. package/src/mixins/colorable/__tests__/colorable.spec.ts +9 -6
  987. package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
  988. package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
  989. package/src/mixins/detachable/index.ts +17 -10
  990. package/src/mixins/elevatable/__tests__/elevatable.spec.ts +14 -13
  991. package/src/mixins/groupable/index.ts +10 -8
  992. package/src/mixins/intersectable/__tests__/intersectable.spec.ts +35 -29
  993. package/src/mixins/intersectable/index.ts +2 -2
  994. package/src/mixins/menuable/__tests__/menuable.spec.ts +76 -33
  995. package/src/mixins/menuable/index.ts +1 -1
  996. package/src/mixins/mobile/__tests__/mobile.spec.ts +9 -6
  997. package/src/mixins/mouse/__tests__/mouse.spec.ts +54 -40
  998. package/src/mixins/mouse/index.ts +10 -6
  999. package/src/mixins/overlayable/__tests__/overlayable.spec.ts +32 -24
  1000. package/src/mixins/overlayable/index.ts +4 -3
  1001. package/src/mixins/picker/index.ts +4 -4
  1002. package/src/mixins/positionable/index.ts +2 -2
  1003. package/src/mixins/proxyable/__tests__/proxyable.spec.ts +18 -17
  1004. package/src/mixins/proxyable/index.ts +6 -3
  1005. package/src/mixins/registrable/__tests__/registrable.spec.ts +31 -0
  1006. package/src/mixins/registrable/index.ts +4 -4
  1007. package/src/mixins/rippleable/__tests__/rippleable.spec.ts +10 -9
  1008. package/src/mixins/roundable/__tests__/roundable.spec.ts +7 -5
  1009. package/src/mixins/routable/__tests__/routable.spec.ts +60 -52
  1010. package/src/mixins/routable/index.ts +6 -4
  1011. package/src/mixins/scrollable/__tests__/scrollable.spec.ts +56 -27
  1012. package/src/mixins/selectable/__tests__/selectable.spec.ts +22 -9
  1013. package/src/mixins/selectable/index.ts +17 -14
  1014. package/src/mixins/toggleable/index.ts +2 -2
  1015. package/src/mixins/translatable/index.ts +1 -1
  1016. package/src/mixins/validatable/__tests__/validatable.spec.ts +194 -158
  1017. package/src/mixins/validatable/index.ts +29 -21
  1018. package/src/services/goto/__tests__/goto.spec.ts +146 -1
  1019. package/src/services/goto/util.ts +44 -5
  1020. package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
  1021. package/src/services/theme/__tests__/theme.spec.ts +81 -83
  1022. package/src/services/theme/index.ts +22 -60
  1023. package/src/util/__tests__/console.spec.ts +124 -11
  1024. package/src/util/__tests__/dom.spec.ts +8 -5
  1025. package/src/util/__tests__/helpers.spec.ts +122 -33
  1026. package/src/util/__tests__/mergeData.spec.ts +8 -8
  1027. package/src/util/console.ts +43 -24
  1028. package/src/util/helpers.ts +57 -5
  1029. package/src/util/legacyEventsMixin.ts +34 -0
  1030. package/src/util/mergeData.ts +10 -5
  1031. package/src/util/mixins.ts +24 -7
  1032. package/types/alacarte.d.ts +14 -14
  1033. package/types/index.d.ts +8 -8
  1034. package/types/lib.d.ts +173 -173
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/routable/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { VNodeData, PropType, defineComponent, resolveComponent } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default defineComponent({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType<boolean | undefined>,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n notALink: Boolean\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record<string, boolean> = {}\n\n if (this.to) return classes\n\n const activeClass = this.activeClass || this.$activeClass\n\n if (activeClass) classes[activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if(this.notALink) return false\n\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$attrs.onClick ||\n this.$attrs['on!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n mounted () {\n this.onRouteChange()\n },\n\n methods: {\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const directives = [[\n Ripple,\n this.computedRipple,\n ]]\n\n const data: VNodeData = {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n class: this.classes,\n style: this.styles,\n ...this.$listeners,\n ...('click' in this ? { onClick: (this as any).click } : undefined), // #14447\n ref: 'link'\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = resolveComponent(this.nuxt ? 'nuxt-link' : 'router-link')\n Object.assign(data, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.href = this.href\n }\n\n if (this.target) data.target = this.target\n\n return { tag, data, directives }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass || ''} ${this.proxyClass || ''}`.trim()\n const exactActiveClass = `${this.exactActiveClass || ''} ${this.proxyClass || ''}`.trim() || activeClass\n\n const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass)\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (!getObjectValueByPath(this.$refs.link, path) === this.isActive) {\n this.toggle()\n }\n })\n },\n toggle () {\n this.isActive = !this.isActive\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/routable/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { VNodeData, PropType, defineComponent, resolveComponent } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default defineComponent({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType<boolean | undefined>,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n notALink: Boolean\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record<string, boolean> = {}\n\n if (this.to) return classes\n\n const activeClass = this.activeClass || ('$activeClass' in this ? this.$activeClass : undefined)\n // const activeClass = this.activeClass || this.$activeClass\n\n if (activeClass) classes[activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if(this.notALink) return false\n\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$attrs.onClick ||\n this.$attrs[\"on!click\"] ||\n this.$attrs.tabindex ||\n this.$props?.onClick\n );\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n mounted () {\n this.onRouteChange()\n },\n\n methods: {\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const directives = [[\n Ripple,\n this.computedRipple,\n ]]\n\n const data: VNodeData = {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n class: this.classes,\n style: this.styles,\n ...this.$listeners,\n ...('click' in this ? { onClick: (this as any).click } : undefined), // #14447\n ref: 'link'\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = resolveComponent(this.nuxt ? 'nuxt-link' : 'router-link')\n Object.assign(data, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.href = this.href\n }\n\n if (this.target) data.target = this.target\n\n return { tag, data, directives }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass || ''} ${this.proxyClass || ''}`.trim()\n const exactActiveClass = `${this.exactActiveClass || ''} ${this.proxyClass || ''}`.trim() || activeClass\n\n const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass)\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (!getObjectValueByPath(this.$refs.link, path) === this.isActive) {\n this.toggle()\n }\n })\n },\n toggle () {\n this.isActive = !this.isActive\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -13,10 +13,6 @@ export function prevent(e) {
13
13
 
14
14
  export default mixins(VInput, Rippleable, Comparable).extend({
15
15
  name: 'selectable',
16
- model: {
17
- prop: 'inputValue',
18
- event: 'change'
19
- },
20
16
  props: {
21
17
  id: String,
22
18
  value: null,
@@ -36,6 +32,10 @@ export default mixins(VInput, Rippleable, Comparable).extend({
36
32
  };
37
33
  },
38
34
 
35
+ created() {
36
+ this.$_emitChangeEvent = true;
37
+ },
38
+
39
39
  computed: {
40
40
  computedColor() {
41
41
  if (!this.isActive) return undefined;
@@ -85,18 +85,20 @@ export default mixins(VInput, Rippleable, Comparable).extend({
85
85
  const label = VInput.methods.genLabel.call(this);
86
86
  if (!label) return label; // Label shouldn't cause the input to focus
87
87
 
88
- label.onClick = prevent;
88
+ label.onClick = this.onClick;
89
89
  return label;
90
90
  },
91
91
 
92
92
  genInput(type, attrs) {
93
- return h('input', { ...Object.assign({
94
- 'aria-checked': this.isActive.toString(),
95
- disabled: this.isDisabled,
96
- id: this.computedId,
97
- role: type,
98
- type
99
- }, attrs),
93
+ // Allow components to override aria-checked by providing it in attrs
94
+ const defaultAttrs = {
95
+ 'aria-checked': this.isActive.toString(),
96
+ disabled: this.isDisabled,
97
+ id: this.computedId,
98
+ role: type,
99
+ type
100
+ };
101
+ return h('input', { ...Object.assign(defaultAttrs, attrs),
100
102
  value: this.value,
101
103
  checked: this.isActive,
102
104
  onBlur: this.onBlur,
@@ -109,6 +111,7 @@ export default mixins(VInput, Rippleable, Comparable).extend({
109
111
  },
110
112
 
111
113
  onClick(e) {
114
+ e.preventDefault();
112
115
  this.onChange();
113
116
  this.$emit('click', e);
114
117
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {h} from 'vue'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n value: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.modelValue,\n lazyValue: this.modelValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.methods.genLabel.call(this)\n\n if (!label) return label\n\n // Label shouldn't cause the input to focus\n label!.onClick = prevent\n\n return label\n },\n genInput (type: string, attrs: object) {\n return h('input', {\n ...Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n value: this.value,\n checked: this.isActive,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown,\n onClick: prevent,\n ref: 'input'\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { h } from 'vue'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n props: {\n id: String,\n value: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.modelValue,\n lazyValue: this.modelValue,\n }\n },\n\n created() {\n this.$_emitChangeEvent = true\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n modelValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.methods.genLabel.call(this)\n\n if (!label) return label\n\n // Label shouldn't cause the input to focus\n label!.onClick = this.onClick\n\n return label\n },\n genInput (type: string, attrs: object) {\n // Allow components to override aria-checked by providing it in attrs\n const defaultAttrs = {\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }\n\n return h('input', {\n ...Object.assign(defaultAttrs, attrs),\n value: this.value,\n checked: this.isActive,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown,\n onClick: prevent,\n ref: 'input'\n })\n },\n onClick (e: Event) {\n e.preventDefault()\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAAgD,KAAhD;AAKA,OAAM,SAAU,OAAV,CAAmB,IAAI,GAAG,YAA1B,EAAwC,KAAK,GAAG,mBAAhD,EAAmE;AACvE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,YADe;AAErB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AAAE,QAAA,QAAQ,EAAE;AAAZ;AADH,KAFc;;AAMrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAL;AADP,OAAP;AAGD,KAVoB;;AAYrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,QAAL,GAAgB,CAAC,CAAC,GAAlB;AACD,OAHI;;AAIL,MAAA,QAAQ,CAAE,GAAF,EAAK;AACX,SAAC,CAAC,GAAF,KAAU,KAAK,IAAL,CAAV,IAAwB,KAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB,CAAxB;AACD;;AANI;AAZc,GAAD,CAAtB;AAqBD;AAED;;AACA,MAAM,UAAU,GAAG,OAAO,EAA1B;AAEA,eAAe,UAAf","sourcesContent":["import { defineComponent, VueConstructor } from 'vue'\n\nexport type Toggleable<T extends string = 'value'> = VueConstructor<Vue & { isActive: boolean } & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Toggleable<T>\nexport function factory (prop = 'modelValue', event = 'update:modelValue') {\n return defineComponent({\n name: 'toggleable',\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,SAAS,eAAT,QAA2C,KAA3C;AAKA,OAAM,SAAU,OAAV,CAAmB,IAAI,GAAG,YAA1B,EAAwC,KAAK,GAAG,mBAAhD,EAAmE;AACvE,SAAO,eAAe,CAAC;AACrB,IAAA,IAAI,EAAE,YADe;AAErB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AAAE,QAAA,QAAQ,EAAE;AAAZ;AADH,KAFc;;AAMrB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAL;AADP,OAAP;AAGD,KAVoB;;AAYrB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,QAAL,GAAgB,CAAC,CAAC,GAAlB;AACD,OAHI;;AAIL,MAAA,QAAQ,CAAE,GAAF,EAAK;AACX,SAAC,CAAC,GAAF,KAAU,KAAK,IAAL,CAAV,IAAwB,KAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB,CAAxB;AACD;;AANI;AAZc,GAAD,CAAtB;AAqBD;AAED;;AACA,MAAM,UAAU,GAAG,OAAO,EAA1B;AAEA,eAAe,UAAf","sourcesContent":["import { defineComponent, Component } from 'vue'\n\nexport type Toggleable<T extends string = 'value'> = Component<Vue & { isActive: boolean } & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Toggleable<T>\nexport function factory (prop = 'modelValue', event = 'update:modelValue') {\n return defineComponent({\n name: 'toggleable',\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":"","file":"index.js"}
@@ -20,7 +20,7 @@ export default defineComponent({
20
20
 
21
21
  },
22
22
 
23
- beforeDestroy() {
23
+ beforeUnmount() {
24
24
  window.removeEventListener('scroll', this.translate, false);
25
25
  window.removeEventListener('resize', this.translate, false);
26
26
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/translatable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,cADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AADH,GAHsB;AAO7B,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,WAAW,EAAE,CADF;AAEX,IAAA,QAAQ,EAAE,CAFC;AAGX,IAAA,YAAY,EAAE,CAHH;AAIX,IAAA,eAAe,EAAE,CAJN;AAKX,IAAA,SAAS,EAAE,CALA;AAMX,IAAA,YAAY,EAAE,CANH;AAOX,IAAA,YAAY,EAAE;AAPH,GAAP,CAPuB;AAiB7B,EAAA,QAAQ,EAAE;AACR,IAAA,SAAS,GAAA;AACP,aAAO,KAAK,SAAL,EAAP;AACD;;AAHO,GAjBmB;;AAuB7B,EAAA,aAAa,GAAA;AACX,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACA,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACD,GA1B4B;;AA4B7B,EAAA,OAAO,EAAE;AACP,IAAA,cAAc,GAAA;AACZ,YAAM,MAAM,GAAG,KAAK,GAAL,CAAS,qBAAT,EAAf;AAEA,WAAK,SAAL,GAAiB,MAAM,CAAC,WAAxB;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,MAA1C;AACA,WAAK,WAAL,GAAmB,MAAM,CAAC,GAAP,GAAa,KAAK,SAArC;AACA,WAAK,YAAL,GAAoB,MAAM,CAAC,WAA3B;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,YAA1C;AACD,KATM;;AAUP,IAAA,SAAS,GAAA;AACP,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACA,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACD,KAbM;;AAcP;AACA,IAAA,SAAS,GAAA;AACP,YAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN;AACD,KAjBM;;AAkBP,IAAA,SAAS,GAAA;AACP,WAAK,cAAL;AAEA,WAAK,eAAL,GACE,CAAC,KAAK,YAAL,GAAoB,KAAK,WAA1B,KACC,QAAQ,CAAC,KAAK,MAAN,CAAR,GAAwB,KAAK,YAD9B,CADF;AAKA,WAAK,QAAL,GAAgB,IAAI,CAAC,KAAL,CAAW,KAAK,YAAL,GAAoB,KAAK,eAApC,CAAhB;AACD;;AA3BM;AA5BoB,CAAD,CAA9B","sourcesContent":["import {defineComponent} from 'vue'\n\nexport default defineComponent({\n name: 'translatable',\n\n props: {\n height: Number,\n },\n\n data: () => ({\n elOffsetTop: 0,\n parallax: 0,\n parallaxDist: 0,\n percentScrolled: 0,\n scrollTop: 0,\n windowHeight: 0,\n windowBottom: 0,\n }),\n\n computed: {\n imgHeight (): number {\n return this.objHeight()\n },\n },\n\n beforeDestroy () {\n window.removeEventListener('scroll', this.translate, false)\n window.removeEventListener('resize', this.translate, false)\n },\n\n methods: {\n calcDimensions () {\n const offset = this.$el.getBoundingClientRect()\n\n this.scrollTop = window.pageYOffset\n this.parallaxDist = this.imgHeight - this.height\n this.elOffsetTop = offset.top + this.scrollTop\n this.windowHeight = window.innerHeight\n this.windowBottom = this.scrollTop + this.windowHeight\n },\n listeners () {\n window.addEventListener('scroll', this.translate, false)\n window.addEventListener('resize', this.translate, false)\n },\n /** @abstract **/\n objHeight (): number {\n throw new Error('Not implemented !')\n },\n translate () {\n this.calcDimensions()\n\n this.percentScrolled = (\n (this.windowBottom - this.elOffsetTop) /\n (parseInt(this.height) + this.windowHeight)\n )\n\n this.parallax = Math.round(this.parallaxDist * this.percentScrolled)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/translatable/index.ts"],"names":[],"mappings":"AAAA,SAAQ,eAAR,QAA8B,KAA9B;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,cADuB;AAG7B,EAAA,KAAK,EAAE;AACL,IAAA,MAAM,EAAE;AADH,GAHsB;AAO7B,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,WAAW,EAAE,CADF;AAEX,IAAA,QAAQ,EAAE,CAFC;AAGX,IAAA,YAAY,EAAE,CAHH;AAIX,IAAA,eAAe,EAAE,CAJN;AAKX,IAAA,SAAS,EAAE,CALA;AAMX,IAAA,YAAY,EAAE,CANH;AAOX,IAAA,YAAY,EAAE;AAPH,GAAP,CAPuB;AAiB7B,EAAA,QAAQ,EAAE;AACR,IAAA,SAAS,GAAA;AACP,aAAO,KAAK,SAAL,EAAP;AACD;;AAHO,GAjBmB;;AAuB7B,EAAA,aAAa,GAAA;AACX,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACA,IAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,SAA1C,EAAqD,KAArD;AACD,GA1B4B;;AA4B7B,EAAA,OAAO,EAAE;AACP,IAAA,cAAc,GAAA;AACZ,YAAM,MAAM,GAAG,KAAK,GAAL,CAAS,qBAAT,EAAf;AAEA,WAAK,SAAL,GAAiB,MAAM,CAAC,WAAxB;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,MAA1C;AACA,WAAK,WAAL,GAAmB,MAAM,CAAC,GAAP,GAAa,KAAK,SAArC;AACA,WAAK,YAAL,GAAoB,MAAM,CAAC,WAA3B;AACA,WAAK,YAAL,GAAoB,KAAK,SAAL,GAAiB,KAAK,YAA1C;AACD,KATM;;AAUP,IAAA,SAAS,GAAA;AACP,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACA,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,SAAvC,EAAkD,KAAlD;AACD,KAbM;;AAcP;AACA,IAAA,SAAS,GAAA;AACP,YAAM,IAAI,KAAJ,CAAU,mBAAV,CAAN;AACD,KAjBM;;AAkBP,IAAA,SAAS,GAAA;AACP,WAAK,cAAL;AAEA,WAAK,eAAL,GACE,CAAC,KAAK,YAAL,GAAoB,KAAK,WAA1B,KACC,QAAQ,CAAC,KAAK,MAAN,CAAR,GAAwB,KAAK,YAD9B,CADF;AAKA,WAAK,QAAL,GAAgB,IAAI,CAAC,KAAL,CAAW,KAAK,YAAL,GAAoB,KAAK,eAApC,CAAhB;AACD;;AA3BM;AA5BoB,CAAD,CAA9B","sourcesContent":["import {defineComponent} from 'vue'\n\nexport default defineComponent({\n name: 'translatable',\n\n props: {\n height: Number,\n },\n\n data: () => ({\n elOffsetTop: 0,\n parallax: 0,\n parallaxDist: 0,\n percentScrolled: 0,\n scrollTop: 0,\n windowHeight: 0,\n windowBottom: 0,\n }),\n\n computed: {\n imgHeight (): number {\n return this.objHeight()\n },\n },\n\n beforeUnmount () {\n window.removeEventListener('scroll', this.translate, false)\n window.removeEventListener('resize', this.translate, false)\n },\n\n methods: {\n calcDimensions () {\n const offset = this.$el.getBoundingClientRect()\n\n this.scrollTop = window.pageYOffset\n this.parallaxDist = this.imgHeight - this.height\n this.elOffsetTop = offset.top + this.scrollTop\n this.windowHeight = window.innerHeight\n this.windowBottom = this.scrollTop + this.windowHeight\n },\n listeners () {\n window.addEventListener('scroll', this.translate, false)\n window.addEventListener('resize', this.translate, false)\n },\n /** @abstract **/\n objHeight (): number {\n throw new Error('Not implemented !')\n },\n translate () {\n this.calcDimensions()\n\n this.percentScrolled = (\n (this.windowBottom - this.elOffsetTop) /\n (parseInt(this.height) + this.windowHeight)\n )\n\n this.parallax = Math.round(this.parallaxDist * this.percentScrolled)\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -4,13 +4,14 @@ import Themeable from '../themeable';
4
4
  import { inject as RegistrableInject } from '../registrable'; // Utilities
5
5
 
6
6
  import { deepEqual } from '../../util/helpers';
7
- import { consoleError } from '../../util/console';
8
- import mixins from '../../util/mixins';
9
- const baseMixins = mixins(Colorable, RegistrableInject('form'), Themeable);
7
+ import { consoleError, breaking } from '../../util/console';
8
+ import { defineComponent } from 'vue';
10
9
  /* @vue/component */
11
10
 
12
- export default baseMixins.extend({
11
+ export default defineComponent({
13
12
  name: 'validatable',
13
+ extends: RegistrableInject('form'),
14
+ mixins: [Colorable, Themeable],
14
15
  props: {
15
16
  disabled: {
16
17
  type: Boolean,
@@ -49,6 +50,8 @@ export default baseMixins.extend({
49
50
  },
50
51
 
51
52
  data() {
53
+ var _a;
54
+
52
55
  return {
53
56
  errorBucket: [],
54
57
  hasColor: false,
@@ -56,7 +59,7 @@ export default baseMixins.extend({
56
59
  hasInput: false,
57
60
  isFocused: false,
58
61
  isResetting: false,
59
- lazyValue: this.value,
62
+ lazyValue: (_a = this.modelValue) !== null && _a !== void 0 ? _a : null,
60
63
  valid: false
61
64
  };
62
65
  },
@@ -116,6 +119,7 @@ export default baseMixins.extend({
116
119
  set(val) {
117
120
  this.lazyValue = val;
118
121
  this.$emit('input', val);
122
+ this.$emit('update:modelValue', val);
119
123
  }
120
124
 
121
125
  },
@@ -208,7 +212,7 @@ export default baseMixins.extend({
208
212
  }
209
213
  },
210
214
 
211
- value(val) {
215
+ modelValue(val) {
212
216
  this.lazyValue = val;
213
217
  }
214
218
 
@@ -219,10 +223,16 @@ export default baseMixins.extend({
219
223
  },
220
224
 
221
225
  created() {
226
+ const breakingProps = [['value', 'modelValue'], ['onInput', 'onUpdate:modelValue']];
227
+ /* istanbul ignore next */
228
+
229
+ breakingProps.forEach(([original, replacement]) => {
230
+ if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this);
231
+ });
222
232
  this.form && this.form.register(this);
223
233
  },
224
234
 
225
- beforeDestroy() {
235
+ beforeUnmount() {
226
236
  this.form && this.form.unregister(this);
227
237
  },
228
238
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/validatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'form', any>('form'),\n Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'validatable',\n\n props: {\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n messages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n readonly: {\n type: Boolean,\n default: null,\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator<InputValidationRules>,\n success: Boolean,\n successMessages: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<InputMessage | null>,\n validateOnBlur: Boolean,\n modelValue: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.value,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled ?? (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly ?? (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n this.form && this.form.register(this)\n },\n\n beforeDestroy () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/validatable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,SAAP,MAAsB,cAAtB;AACA,OAAO,SAAP,MAAsB,cAAtB;AACA,SAAS,MAAM,IAAI,iBAAnB,QAA4C,gBAA5C,C,CAEA;;AACA,SAAS,SAAT,QAA0B,oBAA1B;AACA,SAAS,YAAT,EAAuB,QAAvB,QAAuC,oBAAvC;AACA,SAAS,eAAT,QAA0C,KAA1C;AAKA;;AACA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,aADuB;AAG7B,EAAA,OAAO,EAAE,iBAAiB,CAAc,MAAd,CAHG;AAK7B,EAAA,MAAM,EAAE,CAAC,SAAD,EAAY,SAAZ,CALqB;AAO7B,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KADL;AAKL,IAAA,KAAK,EAAE,OALF;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,MAAA,OAAO,EAAE;AAFC,KANP;AAUL,IAAA,aAAa,EAAE;AACb,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,KAAT,CADO;AAEb,MAAA,OAAO,EAAE,MAAM;AAFF,KAVV;AAcL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,KAAT,CADE;AAER,MAAA,OAAO,EAAE,MAAM;AAFP,KAdL;AAkBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,OADE;AAER,MAAA,OAAO,EAAE;AAFD,KAlBL;AAsBL,IAAA,KAAK,EAAE;AACL,MAAA,IAAI,EAAE,KADD;AAEL,MAAA,OAAO,EAAE,MAAM;AAFV,KAtBF;AA0BL,IAAA,OAAO,EAAE,OA1BJ;AA2BL,IAAA,eAAe,EAAE;AACf,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,KAAT,CADS;AAEf,MAAA,OAAO,EAAE,MAAM;AAFA,KA3BZ;AA+BL,IAAA,cAAc,EAAE,OA/BX;AAgCL,IAAA,UAAU,EAAE;AAAE,MAAA,QAAQ,EAAE;AAAZ;AAhCP,GAPsB;;AA0C7B,EAAA,IAAI,GAAA;;;AACF,WAAO;AACL,MAAA,WAAW,EAAE,EADR;AAEL,MAAA,QAAQ,EAAE,KAFL;AAGL,MAAA,UAAU,EAAE,KAHP;AAIL,MAAA,QAAQ,EAAE,KAJL;AAKL,MAAA,SAAS,EAAE,KALN;AAML,MAAA,WAAW,EAAE,KANR;AAOL,MAAA,SAAS,EAAE,CAAA,EAAA,GAAA,KAAK,UAAL,MAAe,IAAf,IAAe,EAAA,KAAA,KAAA,CAAf,GAAe,EAAf,GAAmB,IAPzB;AAQL,MAAA,KAAK,EAAE;AARF,KAAP;AAUD,GArD4B;;AAuD7B,EAAA,QAAQ,EAAE;AACR,IAAA,aAAa,GAAA;AACX,UAAI,KAAK,UAAT,EAAqB,OAAO,SAAP;AACrB,UAAI,KAAK,KAAT,EAAgB,OAAO,KAAK,KAAZ,CAFL,CAGX;AACA;AACA;AACA;AACA;;AACA,UAAI,KAAK,MAAL,IAAe,CAAC,KAAK,SAAzB,EAAoC,OAAO,OAAP,CAApC,KACK,OAAO,SAAP;AACN,KAXO;;AAYR,IAAA,QAAQ,GAAA;AACN,aACE,KAAK,qBAAL,CAA2B,MAA3B,GAAoC,CAApC,IACA,KAAK,WAAL,CAAiB,MAAjB,GAA0B,CAD1B,IAEA,KAAK,KAHP;AAKD,KAlBO;;AAmBR;AACA;AACA,IAAA,UAAU,GAAA;AACR,aACE,KAAK,uBAAL,CAA6B,MAA7B,GAAsC,CAAtC,IACA,KAAK,OAFP;AAID,KA1BO;;AA2BR,IAAA,aAAa,GAAA;AACX,aAAO,KAAK,qBAAL,CAA2B,MAA3B,GAAoC,CAApC,IAAyC,KAAK,KAArD;AACD,KA7BO;;AA8BR,IAAA,WAAW,GAAA;AACT,aAAO,KAAK,gBAAL,CAAsB,MAAtB,GAA+B,CAAtC;AACD,KAhCO;;AAiCR,IAAA,QAAQ,GAAA;AACN,UAAI,KAAK,UAAT,EAAqB,OAAO,KAAP;AAErB,aACE,KAAK,UAAL,IACC,KAAK,cAAL,IAAuB,KAAK,QAF/B;AAID,KAxCO;;AAyCR,IAAA,qBAAqB,GAAA;AACnB,aAAO,KAAK,mBAAL,CAAyB,KAAK,aAA9B,CAAP;AACD,KA3CO;;AA4CR,IAAA,gBAAgB,GAAA;AACd,aAAO,KAAK,mBAAL,CAAyB,KAAK,QAA9B,CAAP;AACD,KA9CO;;AA+CR,IAAA,uBAAuB,GAAA;AACrB,aAAO,KAAK,mBAAL,CAAyB,KAAK,eAA9B,CAAP;AACD,KAjDO;;AAkDR,IAAA,aAAa,EAAE;AACb,MAAA,GAAG,GAAA;AACD,eAAO,KAAK,SAAZ;AACD,OAHY;;AAIb,MAAA,GAAG,CAAE,GAAF,EAAU;AACX,aAAK,SAAL,GAAiB,GAAjB;AAEA,aAAK,KAAL,CAAW,OAAX,EAAoB,GAApB;AACA,aAAK,KAAL,CAAW,mBAAX,EAAgC,GAAhC;AACD;;AATY,KAlDP;;AA6DR,IAAA,UAAU,GAAA;;;AACR,aAAO,CAAA,EAAA,GAAA,KAAK,QAAL,MAAa,IAAb,IAAa,EAAA,KAAA,KAAA,CAAb,GAAa,EAAb,GACL,CAAC,CAAC,KAAK,IAAP,IACA,KAAK,IAAL,CAAU,QAFZ;AAID,KAlEO;;AAmER,IAAA,aAAa,GAAA;AACX,aAAO,CAAC,KAAK,UAAN,IAAoB,CAAC,KAAK,UAAjC;AACD,KArEO;;AAsER,IAAA,UAAU,GAAA;;;AACR,aAAO,CAAA,EAAA,GAAA,KAAK,QAAL,MAAa,IAAb,IAAa,EAAA,KAAA,KAAA,CAAb,GAAa,EAAb,GACL,CAAC,CAAC,KAAK,IAAP,IACA,KAAK,IAAL,CAAU,QAFZ;AAID,KA3EO;;AA4ER,IAAA,cAAc,GAAA;AACZ,UAAI,KAAK,aAAT,EAAwB,OAAO,IAAP;AACxB,UAAI,KAAK,WAAT,EAAsB,OAAO,KAAP;AAEtB,aAAO,KAAK,cAAL,GACH,KAAK,UAAL,IAAmB,CAAC,KAAK,SADtB,GAEF,KAAK,QAAL,IAAiB,KAAK,UAF3B;AAGD,KAnFO;;AAoFR,IAAA,WAAW,GAAA;AACT,aAAO,KAAK,gBAAL,CAAsB,KAAtB,CAA4B,CAA5B,EAA+B,MAAM,CAAC,KAAK,UAAN,CAArC,CAAP;AACD,KAtFO;;AAuFR,IAAA,eAAe,GAAA;AACb,UAAI,KAAK,UAAT,EAAqB,OAAO,SAAP;AACrB,UAAI,KAAK,QAAL,IAAiB,KAAK,cAA1B,EAA0C,OAAO,OAAP;AAC1C,UAAI,KAAK,UAAT,EAAqB,OAAO,SAAP;AACrB,UAAI,KAAK,QAAT,EAAmB,OAAO,KAAK,aAAZ;AACnB,aAAO,SAAP;AACD,KA7FO;;AA8FR,IAAA,gBAAgB,GAAA;AACd,UAAI,KAAK,qBAAL,CAA2B,MAA3B,GAAoC,CAAxC,EAA2C;AACzC,eAAO,KAAK,qBAAZ;AACD,OAFD,MAEO,IAAI,KAAK,eAAL,IAAwB,KAAK,eAAL,CAAqB,MAArB,GAA8B,CAA1D,EAA6D;AAClE,eAAO,KAAK,uBAAZ;AACD,OAFM,MAEA,IAAI,KAAK,QAAL,IAAiB,KAAK,QAAL,CAAc,MAAd,GAAuB,CAA5C,EAA+C;AACpD,eAAO,KAAK,gBAAZ;AACD,OAFM,MAEA,IAAI,KAAK,cAAT,EAAyB;AAC9B,eAAO,KAAK,WAAZ;AACD,OAFM,MAEA,OAAO,EAAP;AACR;;AAxGO,GAvDmB;AAkK7B,EAAA,KAAK,EAAE;AACL,IAAA,KAAK,EAAE;AACL,MAAA,OAAO,CAAE,MAAF,EAAU,MAAV,EAAgB;AACrB,YAAI,SAAS,CAAC,MAAD,EAAS,MAAT,CAAb,EAA+B;AAC/B,aAAK,QAAL;AACD,OAJI;;AAKL,MAAA,IAAI,EAAE;AALD,KADF;;AAQL,IAAA,aAAa,GAAA;AACX;AACA;AACA,WAAK,QAAL,GAAgB,IAAhB;AACA,WAAK,cAAL,IAAuB,KAAK,SAAL,CAAe,KAAK,QAApB,CAAvB;AACD,KAbI;;AAcL,IAAA,SAAS,CAAE,GAAF,EAAK;AACZ;AACA;AACA,UACE,CAAC,GAAD,IACA,CAAC,KAAK,UAFR,EAGE;AACA,aAAK,UAAL,GAAkB,IAAlB;AACA,aAAK,cAAL,IAAuB,KAAK,SAAL,CAAe,KAAK,QAApB,CAAvB;AACD;AACF,KAxBI;;AAyBL,IAAA,WAAW,GAAA;AACT,MAAA,UAAU,CAAC,MAAK;AACd,aAAK,QAAL,GAAgB,KAAhB;AACA,aAAK,UAAL,GAAkB,KAAlB;AACA,aAAK,WAAL,GAAmB,KAAnB;AACA,aAAK,QAAL;AACD,OALS,EAKP,CALO,CAAV;AAMD,KAhCI;;AAiCL,IAAA,QAAQ,CAAE,GAAF,EAAK;AACX,UAAI,KAAK,cAAT,EAAyB;AACvB,aAAK,KAAL,CAAW,cAAX,EAA2B,GAA3B;AACD;AACF,KArCI;;AAsCL,IAAA,UAAU,CAAE,GAAF,EAAK;AACb,WAAK,SAAL,GAAiB,GAAjB;AACD;;AAxCI,GAlKsB;;AA6M7B,EAAA,WAAW,GAAA;AACT,SAAK,QAAL;AACD,GA/M4B;;AAiN7B,EAAA,OAAO,GAAA;AACL,UAAM,aAAa,GAAG,CACpB,CAAC,OAAD,EAAU,YAAV,CADoB,EAEpB,CAAC,SAAD,EAAY,qBAAZ,CAFoB,CAAtB;AAKA;;AACA,IAAA,aAAa,CAAC,OAAd,CAAsB,CAAC,CAAC,QAAD,EAAW,WAAX,CAAD,KAA4B;AAChD,UAAI,KAAK,MAAL,CAAY,cAAZ,CAA2B,QAA3B,CAAJ,EAA0C,QAAQ,CAAC,QAAD,EAAW,WAAX,EAAwB,IAAxB,CAAR;AAC3C,KAFD;AAIA,SAAK,IAAL,IAAa,KAAK,IAAL,CAAU,QAAV,CAAmB,IAAnB,CAAb;AACD,GA7N4B;;AA+N7B,EAAA,aAAa,GAAA;AACX,SAAK,IAAL,IAAa,KAAK,IAAL,CAAU,UAAV,CAAqB,IAArB,CAAb;AACD,GAjO4B;;AAmO7B,EAAA,OAAO,EAAE;AACP,IAAA,mBAAmB,CAAE,QAAF,EAA+B;AAChD,UAAI,CAAC,QAAL,EAAe,OAAO,EAAP,CAAf,KACK,IAAI,KAAK,CAAC,OAAN,CAAc,QAAd,CAAJ,EAA6B,OAAO,QAAP,CAA7B,KACA,OAAO,CAAC,QAAD,CAAP;AACN,KALM;;AAMP;AACA,IAAA,KAAK,GAAA;AACH,WAAK,WAAL,GAAmB,IAAnB;AACA,WAAK,aAAL,GAAqB,KAAK,CAAC,OAAN,CAAc,KAAK,aAAnB,IACjB,EADiB,GAEjB,IAFJ;AAGD,KAZM;;AAaP;AACA,IAAA,eAAe,GAAA;AACb,WAAK,WAAL,GAAmB,IAAnB;AACD,KAhBM;;AAiBP;AACA,IAAA,QAAQ,CAAE,KAAK,GAAG,KAAV,EAAiB,KAAjB,EAA4B;AAClC,YAAM,WAAW,GAAG,EAApB;AACA,MAAA,KAAK,GAAG,KAAK,IAAI,KAAK,aAAtB;AAEA,UAAI,KAAJ,EAAW,KAAK,QAAL,GAAgB,KAAK,UAAL,GAAkB,IAAlC;;AAEX,WAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,KAAK,KAAL,CAAW,MAAvC,EAA+C,KAAK,EAApD,EAAwD;AACtD,cAAM,IAAI,GAAG,KAAK,KAAL,CAAW,KAAX,CAAb;AACA,cAAM,KAAK,GAAG,OAAO,IAAP,KAAgB,UAAhB,GAA6B,IAAI,CAAC,KAAD,CAAjC,GAA2C,IAAzD;;AAEA,YAAI,KAAK,KAAK,KAAV,IAAmB,OAAO,KAAP,KAAiB,QAAxC,EAAkD;AAChD,UAAA,WAAW,CAAC,IAAZ,CAAiB,KAAK,IAAI,EAA1B;AACD,SAFD,MAEO,IAAI,OAAO,KAAP,KAAiB,SAArB,EAAgC;AACrC,UAAA,YAAY,CAAC,sDAAsD,OAAO,KAAK,WAAnE,EAAgF,IAAhF,CAAZ;AACD;AACF;;AAED,WAAK,WAAL,GAAmB,WAAnB;AACA,WAAK,KAAL,GAAa,WAAW,CAAC,MAAZ,KAAuB,CAApC;AAEA,aAAO,KAAK,KAAZ;AACD;;AAvCM;AAnOoB,CAAD,CAA9B","sourcesContent":["// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError, breaking } from '../../util/console'\nimport { defineComponent, PropType } from 'vue'\n\n// Types\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'validatable',\n\n extends: RegistrableInject<'form', any>('form'),\n\n mixins: [Colorable, Themeable],\n\n props: {\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n errorCount: {\n type: [Number, String],\n default: 1,\n },\n errorMessages: {\n type: [String, Array] as PropType<InputMessage | null>,\n default: () => [],\n },\n messages: {\n type: [String, Array] as PropType<InputMessage | null>,\n default: () => [],\n },\n readonly: {\n type: Boolean,\n default: null,\n },\n rules: {\n type: Array as PropType<InputValidationRules>,\n default: () => [],\n },\n success: Boolean,\n successMessages: {\n type: [String, Array] as PropType<InputMessage | null>,\n default: () => [],\n },\n validateOnBlur: Boolean,\n modelValue: { required: false },\n },\n\n data () {\n return {\n errorBucket: [] as string[],\n hasColor: false,\n hasFocused: false,\n hasInput: false,\n isFocused: false,\n isResetting: false,\n lazyValue: this.modelValue ?? null,\n valid: false,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.color) return this.color\n // It's assumed that if the input is on a\n // dark background, the user will want to\n // have a white color. If the entire app\n // is setup to be dark, then they will\n // like want to use their primary color\n if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n hasError (): boolean {\n return (\n this.internalErrorMessages.length > 0 ||\n this.errorBucket.length > 0 ||\n this.error\n )\n },\n // TODO: Add logic that allows the user to enable based\n // upon a good validation\n hasSuccess (): boolean {\n return (\n this.internalSuccessMessages.length > 0 ||\n this.success\n )\n },\n externalError (): boolean {\n return this.internalErrorMessages.length > 0 || this.error\n },\n hasMessages (): boolean {\n return this.validationTarget.length > 0\n },\n hasState (): boolean {\n if (this.isDisabled) return false\n\n return (\n this.hasSuccess ||\n (this.shouldValidate && this.hasError)\n )\n },\n internalErrorMessages (): InputValidationRules {\n return this.genInternalMessages(this.errorMessages)\n },\n internalMessages (): InputValidationRules {\n return this.genInternalMessages(this.messages)\n },\n internalSuccessMessages (): InputValidationRules {\n return this.genInternalMessages(this.successMessages)\n },\n internalValue: {\n get (): unknown {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n\n this.$emit('input', val)\n this.$emit('update:modelValue', val)\n },\n },\n isDisabled (): boolean {\n return this.disabled ?? (\n !!this.form &&\n this.form.disabled\n )\n },\n isInteractive (): boolean {\n return !this.isDisabled && !this.isReadonly\n },\n isReadonly (): boolean {\n return this.readonly ?? (\n !!this.form &&\n this.form.readonly\n )\n },\n shouldValidate (): boolean {\n if (this.externalError) return true\n if (this.isResetting) return false\n\n return this.validateOnBlur\n ? this.hasFocused && !this.isFocused\n : (this.hasInput || this.hasFocused)\n },\n validations (): InputValidationRules {\n return this.validationTarget.slice(0, Number(this.errorCount))\n },\n validationState (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor) return this.computedColor\n return undefined\n },\n validationTarget (): InputValidationRules {\n if (this.internalErrorMessages.length > 0) {\n return this.internalErrorMessages\n } else if (this.successMessages && this.successMessages.length > 0) {\n return this.internalSuccessMessages\n } else if (this.messages && this.messages.length > 0) {\n return this.internalMessages\n } else if (this.shouldValidate) {\n return this.errorBucket\n } else return []\n },\n },\n\n watch: {\n rules: {\n handler (newVal, oldVal) {\n if (deepEqual(newVal, oldVal)) return\n this.validate()\n },\n deep: true,\n },\n internalValue () {\n // If it's the first time we're setting input,\n // mark it with hasInput\n this.hasInput = true\n this.validateOnBlur || this.$nextTick(this.validate)\n },\n isFocused (val) {\n // Should not check validation\n // if disabled\n if (\n !val &&\n !this.isDisabled\n ) {\n this.hasFocused = true\n this.validateOnBlur && this.$nextTick(this.validate)\n }\n },\n isResetting () {\n setTimeout(() => {\n this.hasInput = false\n this.hasFocused = false\n this.isResetting = false\n this.validate()\n }, 0)\n },\n hasError (val) {\n if (this.shouldValidate) {\n this.$emit('update:error', val)\n }\n },\n modelValue (val) {\n this.lazyValue = val\n },\n },\n\n beforeMount () {\n this.validate()\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n this.form && this.form.register(this)\n },\n\n beforeUnmount () {\n this.form && this.form.unregister(this)\n },\n\n methods: {\n genInternalMessages (messages: InputMessage | null): InputValidationRules {\n if (!messages) return []\n else if (Array.isArray(messages)) return messages\n else return [messages]\n },\n /** @public */\n reset () {\n this.isResetting = true\n this.internalValue = Array.isArray(this.internalValue)\n ? []\n : null\n },\n /** @public */\n resetValidation () {\n this.isResetting = true\n },\n /** @public */\n validate (force = false, value?: any): boolean {\n const errorBucket = []\n value = value || this.internalValue\n\n if (force) this.hasInput = this.hasFocused = true\n\n for (let index = 0; index < this.rules.length; index++) {\n const rule = this.rules[index]\n const valid = typeof rule === 'function' ? rule(value) : rule\n\n if (valid === false || typeof valid === 'string') {\n errorBucket.push(valid || '')\n } else if (typeof valid !== 'boolean') {\n consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n }\n }\n\n this.errorBucket = errorBucket\n this.valid = errorBucket.length === 0\n\n return this.valid\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -26,18 +26,57 @@ export function getContainer(container) {
26
26
  }
27
27
 
28
28
  function type(el) {
29
- return el == null ? el : el.constructor.name;
29
+ var _a;
30
+
31
+ if (el == null) return el; // Vue 3 component detection
32
+
33
+ if (isVue3Component(el)) return 'VueComponent';
34
+ return ((_a = el.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'Unknown';
35
+ } // Helper function to detect Vue 3 component instances
36
+
37
+
38
+ function isVue3Component(el) {
39
+ // Check for Vue 3 component instance properties
40
+ return !!(el && ( // Direct component instance with $el
41
+ el.$el || // Component instance with appContext (Vue 3 runtime)
42
+ el.appContext || // Component proxy with type property (from Vue Test Utils)
43
+ el.type && (el.type.name || el.type.__name) || // Component with setupState (Composition API)
44
+ el.setupState || // Component with ctx property (internal Vue 3)
45
+ el.ctx && el.ctx.type));
30
46
  }
31
47
 
32
48
  function $(el) {
33
49
  if (typeof el === 'string') {
34
50
  return document.querySelector(el);
35
- } else if (el && el._isVue) {
36
- return el.$el;
37
51
  } else if (el instanceof HTMLElement) {
38
52
  return el;
53
+ } else if (isVue3Component(el)) {
54
+ return extractElementFromVue3Component(el);
39
55
  } else {
40
56
  return null;
41
57
  }
58
+ } // Helper function to extract HTMLElement from Vue 3 component
59
+
60
+
61
+ function extractElementFromVue3Component(component) {
62
+ var _a, _b, _c;
63
+
64
+ if (component.$el instanceof HTMLElement) {
65
+ return component.$el;
66
+ }
67
+
68
+ if (component.element instanceof HTMLElement) {
69
+ return component.element;
70
+ }
71
+
72
+ if (((_b = (_a = component.ctx) === null || _a === void 0 ? void 0 : _a.vnode) === null || _b === void 0 ? void 0 : _b.el) instanceof HTMLElement) {
73
+ return component.ctx.vnode.el;
74
+ }
75
+
76
+ if (((_c = component.vnode) === null || _c === void 0 ? void 0 : _c.el) instanceof HTMLElement) {
77
+ return component.vnode.el;
78
+ }
79
+
80
+ return null;
42
81
  }
43
82
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":"AAEA;AACA,OAAM,SAAU,SAAV,CAAqB,MAArB,EAAgC;AACpC,MAAI,OAAO,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,WAAO,MAAP;AACD;;AAED,MAAI,EAAE,GAAG,CAAC,CAAC,MAAD,CAAV;;AAEA,MAAI,CAAC,EAAL,EAAS;AACP,UAAM,OAAO,MAAP,KAAkB,QAAlB,GACF,IAAI,KAAJ,CAAU,mBAAmB,MAAM,cAAnC,CADE,GAEF,IAAI,SAAJ,CAAc,uEAAuE,IAAI,CAAC,MAAD,CAAQ,WAAjG,CAFJ;AAGD;;AAED,MAAI,WAAW,GAAG,CAAlB;;AACA,SAAO,EAAP,EAAW;AACT,IAAA,WAAW,IAAI,EAAE,CAAC,SAAlB;AACA,IAAA,EAAE,GAAG,EAAE,CAAC,YAAR;AACD;;AAED,SAAO,WAAP;AACD;AAED,OAAM,SAAU,YAAV,CAAwB,SAAxB,EAAsC;AAC1C,QAAM,EAAE,GAAG,CAAC,CAAC,SAAD,CAAZ;AAEA,MAAI,EAAJ,EAAQ,OAAO,EAAP;AAER,QAAM,OAAO,SAAP,KAAqB,QAArB,GACF,IAAI,KAAJ,CAAU,sBAAsB,SAAS,cAAzC,CADE,GAEF,IAAI,SAAJ,CAAc,mEAAmE,IAAI,CAAC,SAAD,CAAW,WAAhG,CAFJ;AAGD;;AAED,SAAS,IAAT,CAAe,EAAf,EAAsB;AACpB,SAAO,EAAE,IAAI,IAAN,GAAa,EAAb,GAAkB,EAAE,CAAC,WAAH,CAAe,IAAxC;AACD;;AAED,SAAS,CAAT,CAAY,EAAZ,EAAmB;AACjB,MAAI,OAAO,EAAP,KAAc,QAAlB,EAA4B;AAC1B,WAAO,QAAQ,CAAC,aAAT,CAAoC,EAApC,CAAP;AACD,GAFD,MAEO,IAAI,EAAE,IAAI,EAAE,CAAC,MAAb,EAAqB;AAC1B,WAAQ,EAAU,CAAC,GAAnB;AACD,GAFM,MAEA,IAAI,EAAE,YAAY,WAAlB,EAA+B;AACpC,WAAO,EAAP;AACD,GAFM,MAEA;AACL,WAAO,IAAP;AACD;AACF","sourcesContent":["import Vue from 'vue'\n\n// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n if (typeof target === 'number') {\n return target\n }\n\n let el = $(target)\n\n if (!el) {\n throw typeof target === 'string'\n ? new Error(`Target element \"${target}\" not found.`)\n : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n }\n\n let totalOffset = 0\n while (el) {\n totalOffset += el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n const el = $(container)\n\n if (el) return el\n\n throw typeof container === 'string'\n ? new Error(`Container element \"${container}\" not found.`)\n : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n return el == null ? el : el.constructor.name\n}\n\nfunction $ (el: any): HTMLElement | null {\n if (typeof el === 'string') {\n return document.querySelector<HTMLElement>(el)\n } else if (el && el._isVue) {\n return (el as Vue).$el as HTMLElement\n } else if (el instanceof HTMLElement) {\n return el\n } else {\n return null\n }\n}\n"],"sourceRoot":"","file":"util.js"}
1
+ {"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":"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","sourcesContent":["// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n if (typeof target === 'number') {\n return target\n }\n\n let el = $(target)\n\n if (!el) {\n throw typeof target === 'string'\n ? new Error(`Target element \"${target}\" not found.`)\n : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n }\n\n let totalOffset = 0\n while (el) {\n totalOffset += el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n const el = $(container)\n\n if (el) return el\n\n throw typeof container === 'string'\n ? new Error(`Container element \"${container}\" not found.`)\n : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n if (el == null) return el\n // Vue 3 component detection\n if (isVue3Component(el)) return 'VueComponent'\n return el.constructor?.name || 'Unknown'\n}\n\n// Helper function to detect Vue 3 component instances\nfunction isVue3Component (el: any): boolean {\n // Check for Vue 3 component instance properties\n return !!(el && (\n // Direct component instance with $el\n el.$el ||\n // Component instance with appContext (Vue 3 runtime)\n el.appContext ||\n // Component proxy with type property (from Vue Test Utils)\n (el.type && (el.type.name || el.type.__name)) ||\n // Component with setupState (Composition API)\n el.setupState ||\n // Component with ctx property (internal Vue 3)\n (el.ctx && el.ctx.type)\n ))\n}\n\nfunction $ (el: any): HTMLElement | null {\n if (typeof el === 'string') {\n return document.querySelector<HTMLElement>(el)\n } else if (el instanceof HTMLElement) {\n return el\n } else if (isVue3Component(el)) {\n return extractElementFromVue3Component(el)\n } else {\n return null\n }\n}\n\n// Helper function to extract HTMLElement from Vue 3 component\nfunction extractElementFromVue3Component (component: any): HTMLElement | null {\n if (component.$el instanceof HTMLElement) {\n return component.$el\n }\n\n if (component.element instanceof HTMLElement) {\n return component.element\n }\n\n if (component.ctx?.vnode?.el instanceof HTMLElement) {\n return component.ctx.vnode.el\n }\n\n if (component.vnode?.el instanceof HTMLElement) {\n return component.vnode.el\n }\n\n return null\n}\n"],"sourceRoot":"","file":"util.js"}
@@ -10,7 +10,7 @@ export class Theme extends Service {
10
10
  this.disabled = false;
11
11
  this.isDark = null;
12
12
  this.unwatch = null;
13
- this.vueMeta = null;
13
+ this.metaManager = null;
14
14
  const {
15
15
  dark,
16
16
  disable,
@@ -36,11 +36,8 @@ export class Theme extends Service {
36
36
 
37
37
 
38
38
  set css(val) {
39
- if (this.vueMeta) {
40
- if (this.isVueMeta23) {
41
- this.applyVueMeta23();
42
- }
43
-
39
+ if (this.metaManager) {
40
+ this.applyVueMeta3(val);
44
41
  return;
45
42
  }
46
43
 
@@ -74,21 +71,19 @@ export class Theme extends Service {
74
71
 
75
72
 
76
73
  init(root, ssrContext) {
77
- if (this.disabled) return;
78
- /* istanbul ignore else */
74
+ if (this.disabled) return; // Инициализируем vue-meta 3
75
+
76
+ this.initVueMeta3(root);
79
77
 
80
- if (root.$meta) {
81
- this.initVueMeta(root);
82
- } else if (ssrContext) {
78
+ if (ssrContext) {
83
79
  this.initSSR(ssrContext);
80
+ } else {
81
+ this.initTheme(root);
84
82
  }
85
-
86
- this.initTheme(root);
87
83
  } // Allows for you to set target theme
88
84
 
89
85
 
90
86
  setTheme(theme, value) {
91
- console.log('setTheme');
92
87
  this.themes[theme] = Object.assign(this.themes[theme], value);
93
88
  this.applyTheme();
94
89
  } // Reset theme defaults
@@ -134,52 +129,17 @@ export class Theme extends Service {
134
129
  document.head.appendChild(this.styleEl);
135
130
  }
136
131
 
137
- initVueMeta(root) {
138
- console.log('init vue meta');
139
- this.vueMeta = root.$meta();
140
-
141
- if (this.isVueMeta23) {
142
- // vue-meta needs to apply after mounted()
143
- root.$nextTick(() => {
144
- this.applyVueMeta23();
145
- });
146
- return;
147
- }
148
-
149
- const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo';
150
- const metaInfo = root.$options[metaKeyName] || {};
151
-
152
- root.$options[metaKeyName] = () => {
153
- metaInfo.style = metaInfo.style || [];
154
- const vuetifyStylesheet = metaInfo.style.find(s => s.id === 'vuetify-theme-stylesheet');
155
-
156
- if (!vuetifyStylesheet) {
157
- metaInfo.style.push({
158
- cssText: this.generatedStyles,
159
- type: 'text/css',
160
- id: 'vuetify-theme-stylesheet',
161
- nonce: (this.options || {}).cspNonce
162
- });
163
- } else {
164
- vuetifyStylesheet.cssText = this.generatedStyles;
165
- }
166
-
167
- return metaInfo;
168
- };
132
+ initVueMeta3(root) {
133
+ // Vue Meta 3 теперь работает через плагин, а не через отдельный manager
134
+ // Стили будут добавляться напрямую через useMeta API в компонентах
135
+ // или через обычный DOM API
136
+ this.metaManager = null;
169
137
  }
170
138
 
171
- applyVueMeta23() {
172
- const {
173
- set
174
- } = this.vueMeta.addApp('vuetify');
175
- set({
176
- style: [{
177
- cssText: this.generatedStyles,
178
- type: 'text/css',
179
- id: 'vuetify-theme-stylesheet',
180
- nonce: this.options.cspNonce
181
- }]
182
- });
139
+ applyVueMeta3(css) {
140
+ // Vue Meta 3 больше не использует manager.addMeta API
141
+ // Используем обычный DOM API для обновления стилей
142
+ this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = css);
183
143
  }
184
144
 
185
145
  initSSR(ssrContext) {
@@ -242,12 +202,6 @@ export class Theme extends Service {
242
202
 
243
203
  get parsedTheme() {
244
204
  return ThemeUtils.parse(this.currentTheme || {}, undefined, getNestedValue(this.options, ['variations'], true));
245
- } // Is using v2.3 of vue-meta
246
- // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0
247
-
248
-
249
- get isVueMeta23() {
250
- return typeof this.vueMeta.addApp === 'function';
251
205
  }
252
206
 
253
207
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/theme/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport {App, reactive} from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private vueMeta = null as any | null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.vueMeta) {\n if (this.isVueMeta23) {\n this.applyVueMeta23()\n }\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: App, ssrContext?: any): void {\n if (this.disabled) return\n\n /* istanbul ignore else */\n if ((root as any).$meta) {\n this.initVueMeta(root)\n } else if (ssrContext) {\n this.initSSR(ssrContext)\n }\n\n this.initTheme(root)\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n console.log('setTheme')\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta (root: any) {\n console.log('init vue meta')\n this.vueMeta = root.$meta()\n if (this.isVueMeta23) {\n // vue-meta needs to apply after mounted()\n root.$nextTick(() => {\n this.applyVueMeta23()\n })\n return\n }\n\n const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo'\n const metaInfo = root.$options[metaKeyName] || {}\n\n root.$options[metaKeyName] = () => {\n metaInfo.style = metaInfo.style || []\n\n const vuetifyStylesheet = metaInfo.style.find((s: any) => s.id === 'vuetify-theme-stylesheet')\n\n if (!vuetifyStylesheet) {\n metaInfo.style.push({\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: (this.options || {}).cspNonce,\n })\n } else {\n vuetifyStylesheet.cssText = this.generatedStyles\n }\n\n return metaInfo\n }\n }\n\n private applyVueMeta23 () {\n const { set } = this.vueMeta.addApp('vuetify')\n\n set({\n style: [{\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: this.options.cspNonce,\n }],\n })\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: App) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n // root.$once('hook:created', () => {\n // const obs = reactive({ themes: this.themes })\n // this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n // })\n\n\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Is using v2.3 of vue-meta\n // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n private get isVueMeta23 (): boolean {\n return typeof this.vueMeta.addApp === 'function'\n }\n}\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/services/theme/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport {App, reactive} from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\n// Vue Meta 3\nimport { createMetaManager, useMeta } from 'vue-meta'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private metaManager: any = null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.metaManager) {\n this.applyVueMeta3(val)\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: App, ssrContext?: any): void {\n if (this.disabled) return\n\n // Инициализируем vue-meta 3\n this.initVueMeta3(root)\n\n if (ssrContext) {\n this.initSSR(ssrContext)\n } else {\n this.initTheme(root)\n }\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta3 (root: App) {\n // Vue Meta 3 теперь работает через плагин, а не через отдельный manager\n // Стили будут добавляться напрямую через useMeta API в компонентах\n // или через обычный DOM API\n this.metaManager = null\n }\n\n private applyVueMeta3 (css: string) {\n // Vue Meta 3 больше не использует manager.addMeta API\n // Используем обычный DOM API для обновления стилей\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = css)\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: App) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n\n // root.$once('hook:created', () => {\n // const obs = reactive({ themes: this.themes })\n // this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n // })\n\n\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Vue Meta 3 больше не нужен isVueMeta23 метод\n}\n"],"sourceRoot":"","file":"index.js"}