@dimailn/vuetify 2.7.2-alpha31 → 2.7.2-alpha33

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 (302) hide show
  1. package/dist/vuetify.js +551 -368
  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/VCalendar/VCalendarWeekly.js +10 -5
  6. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  7. package/es5/components/VCheckbox/VCheckbox.js +7 -9
  8. package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
  9. package/es5/components/VContent/VContent.js +24 -5
  10. package/es5/components/VContent/VContent.js.map +1 -1
  11. package/es5/components/VCounter/VCounter.js.map +1 -1
  12. package/es5/components/VDatePicker/VDatePicker.js +15 -7
  13. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  14. package/es5/components/VDatePicker/VDatePickerTitle.js +30 -19
  15. package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  16. package/es5/components/VDatePicker/mixins/date-picker-table.js +1 -1
  17. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  18. package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
  19. package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
  20. package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  21. package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  22. package/es5/components/VGrid/VCol.js +3 -1
  23. package/es5/components/VGrid/VCol.js.map +1 -1
  24. package/es5/components/VGrid/VContainer.js +23 -10
  25. package/es5/components/VGrid/VContainer.js.map +1 -1
  26. package/es5/components/VGrid/grid.js +33 -15
  27. package/es5/components/VGrid/grid.js.map +1 -1
  28. package/es5/components/VHover/VHover.js +23 -17
  29. package/es5/components/VHover/VHover.js.map +1 -1
  30. package/es5/components/VIcon/VIcon.js +77 -53
  31. package/es5/components/VIcon/VIcon.js.map +1 -1
  32. package/es5/components/VItemGroup/VItem.js +7 -3
  33. package/es5/components/VItemGroup/VItem.js.map +1 -1
  34. package/es5/components/VLabel/VLabel.js +3 -1
  35. package/es5/components/VLabel/VLabel.js.map +1 -1
  36. package/es5/components/VOtpInput/VOtpInput.js +54 -33
  37. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  38. package/es5/components/VOverflowBtn/VOverflowBtn.js +14 -13
  39. package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  40. package/es5/components/VProgressLinear/VProgressLinear.js +12 -33
  41. package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
  42. package/es5/components/VSelect/VSelect.js +4 -1
  43. package/es5/components/VSelect/VSelect.js.map +1 -1
  44. package/es5/components/VStepper/VStepper.js +1 -1
  45. package/es5/components/VStepper/VStepper.js.map +1 -1
  46. package/es5/components/VStepper/VStepperContent.js +2 -5
  47. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  48. package/es5/components/VSwitch/VSwitch.js +1 -1
  49. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  50. package/es5/components/VTextField/VTextField.js +2 -1
  51. package/es5/components/VTextField/VTextField.js.map +1 -1
  52. package/es5/components/VTooltip/VTooltip.js +0 -7
  53. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  54. package/es5/directives/color/index.js +6 -3
  55. package/es5/directives/color/index.js.map +1 -1
  56. package/es5/directives/ripple/index.js +5 -2
  57. package/es5/directives/ripple/index.js.map +1 -1
  58. package/es5/directives/scroll/index.js +1 -2
  59. package/es5/directives/scroll/index.js.map +1 -1
  60. package/es5/directives/touch/index.js +7 -4
  61. package/es5/directives/touch/index.js.map +1 -1
  62. package/es5/framework.js +1 -1
  63. package/es5/mixins/activatable/index.js +0 -8
  64. package/es5/mixins/activatable/index.js.map +1 -1
  65. package/es5/mixins/groupable/index.js.map +1 -1
  66. package/es5/mixins/positionable/index.js.map +1 -1
  67. package/es5/mixins/proxyable/index.js.map +1 -1
  68. package/es5/mixins/registrable/index.js.map +1 -1
  69. package/es5/mixins/selectable/index.js +4 -2
  70. package/es5/mixins/selectable/index.js.map +1 -1
  71. package/es5/mixins/toggleable/index.js.map +1 -1
  72. package/es5/services/goto/util.js +42 -3
  73. package/es5/services/goto/util.js.map +1 -1
  74. package/es5/services/theme/index.js +20 -71
  75. package/es5/services/theme/index.js.map +1 -1
  76. package/es5/util/mergeData.js +6 -5
  77. package/es5/util/mergeData.js.map +1 -1
  78. package/es5/util/mixins.js +4 -3
  79. package/es5/util/mixins.js.map +1 -1
  80. package/lib/components/VCalendar/VCalendarWeekly.js +11 -6
  81. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  82. package/lib/components/VCheckbox/VCheckbox.js +5 -8
  83. package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
  84. package/lib/components/VContent/VContent.js +18 -3
  85. package/lib/components/VContent/VContent.js.map +1 -1
  86. package/lib/components/VCounter/VCounter.js.map +1 -1
  87. package/lib/components/VDatePicker/VDatePicker.js +17 -7
  88. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  89. package/lib/components/VDatePicker/VDatePickerTitle.js +25 -14
  90. package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
  91. package/lib/components/VDatePicker/mixins/date-picker-table.js +1 -1
  92. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  93. package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
  94. package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
  95. package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
  96. package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
  97. package/lib/components/VGrid/VCol.js +3 -1
  98. package/lib/components/VGrid/VCol.js.map +1 -1
  99. package/lib/components/VGrid/VContainer.js +11 -10
  100. package/lib/components/VGrid/VContainer.js.map +1 -1
  101. package/lib/components/VGrid/grid.js +15 -14
  102. package/lib/components/VGrid/grid.js.map +1 -1
  103. package/lib/components/VHover/VHover.js +23 -18
  104. package/lib/components/VHover/VHover.js.map +1 -1
  105. package/lib/components/VIcon/VIcon.js +79 -57
  106. package/lib/components/VIcon/VIcon.js.map +1 -1
  107. package/lib/components/VItemGroup/VItem.js +3 -2
  108. package/lib/components/VItemGroup/VItem.js.map +1 -1
  109. package/lib/components/VLabel/VLabel.js +3 -1
  110. package/lib/components/VLabel/VLabel.js.map +1 -1
  111. package/lib/components/VOtpInput/VOtpInput.js +58 -34
  112. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  113. package/lib/components/VOverflowBtn/VOverflowBtn.js +14 -14
  114. package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
  115. package/lib/components/VProgressLinear/VProgressLinear.js +12 -16
  116. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  117. package/lib/components/VSelect/VSelect.js +4 -1
  118. package/lib/components/VSelect/VSelect.js.map +1 -1
  119. package/lib/components/VStepper/VStepper.js +1 -1
  120. package/lib/components/VStepper/VStepper.js.map +1 -1
  121. package/lib/components/VStepper/VStepperContent.js +3 -6
  122. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  123. package/lib/components/VSwitch/VSwitch.js +1 -1
  124. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  125. package/lib/components/VTextField/VTextField.js +2 -1
  126. package/lib/components/VTextField/VTextField.js.map +1 -1
  127. package/lib/components/VTooltip/VTooltip.js +1 -8
  128. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  129. package/lib/directives/color/index.js +6 -3
  130. package/lib/directives/color/index.js.map +1 -1
  131. package/lib/directives/ripple/index.js +5 -3
  132. package/lib/directives/ripple/index.js.map +1 -1
  133. package/lib/directives/scroll/index.js +1 -2
  134. package/lib/directives/scroll/index.js.map +1 -1
  135. package/lib/directives/touch/index.js +7 -4
  136. package/lib/directives/touch/index.js.map +1 -1
  137. package/lib/framework.js +1 -1
  138. package/lib/mixins/activatable/index.js +1 -8
  139. package/lib/mixins/activatable/index.js.map +1 -1
  140. package/lib/mixins/groupable/index.js.map +1 -1
  141. package/lib/mixins/positionable/index.js.map +1 -1
  142. package/lib/mixins/proxyable/index.js.map +1 -1
  143. package/lib/mixins/registrable/index.js.map +1 -1
  144. package/lib/mixins/selectable/index.js +9 -7
  145. package/lib/mixins/selectable/index.js.map +1 -1
  146. package/lib/mixins/toggleable/index.js.map +1 -1
  147. package/lib/services/goto/util.js +42 -3
  148. package/lib/services/goto/util.js.map +1 -1
  149. package/lib/services/theme/index.js +18 -64
  150. package/lib/services/theme/index.js.map +1 -1
  151. package/lib/util/mergeData.js +6 -5
  152. package/lib/util/mergeData.js.map +1 -1
  153. package/lib/util/mixins.js +3 -2
  154. package/lib/util/mixins.js.map +1 -1
  155. package/package.json +2 -2
  156. package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +4 -4
  157. package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +2 -2
  158. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +75 -20
  159. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +38 -40
  160. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +26 -26
  161. package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +2 -2
  162. package/src/components/VBtn/__tests__/VBtn.spec.ts +8 -4
  163. package/src/components/VCalendar/VCalendarWeekly.ts +12 -5
  164. package/src/components/VCalendar/__tests__/VCalendar.spec.ts +1 -1
  165. package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +5 -5
  166. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +167 -168
  167. package/src/components/VCheckbox/VCheckbox.ts +4 -9
  168. package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +7 -1
  169. package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
  170. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +18 -18
  171. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
  172. package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +89 -69
  173. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +17 -12
  174. package/src/components/VContent/VContent.ts +10 -2
  175. package/src/components/VCounter/VCounter.ts +1 -1
  176. package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
  177. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +42 -42
  178. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +30 -30
  179. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +1 -1
  180. package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +6 -10
  181. package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +24 -21
  182. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +409 -409
  183. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +70 -70
  184. package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +8 -8
  185. package/src/components/VDataTable/mixins/__tests__/header.spec.ts +3 -3
  186. package/src/components/VDatePicker/VDatePicker.ts +23 -7
  187. package/src/components/VDatePicker/VDatePickerTitle.ts +28 -16
  188. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +86 -124
  189. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +85 -63
  190. package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +12 -27
  191. package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +9 -5
  192. package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +4 -4
  193. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +27 -9
  194. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +45 -35
  195. package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +15 -5
  196. package/src/components/VDatePicker/mixins/date-picker-table.ts +1 -1
  197. package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
  198. package/src/components/VExpansionPanel/VExpansionPanelContent.ts +5 -8
  199. package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +10 -14
  200. package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
  201. package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
  202. package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +4 -4
  203. package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +38 -38
  204. package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
  205. package/src/components/VGrid/VCol.ts +1 -1
  206. package/src/components/VGrid/VContainer.ts +12 -10
  207. package/src/components/VGrid/__tests__/VCol.spec.ts +4 -2
  208. package/src/components/VGrid/__tests__/VGrid.spec.ts +2 -3
  209. package/src/components/VGrid/grid.ts +14 -17
  210. package/src/components/VHover/VHover.ts +21 -17
  211. package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
  212. package/src/components/VIcon/VIcon.ts +72 -53
  213. package/src/components/VIcon/__tests__/VIcon.spec.ts +86 -176
  214. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
  215. package/src/components/VItemGroup/VItem.ts +1 -1
  216. package/src/components/VItemGroup/__tests__/VItem.spec.ts +20 -12
  217. package/src/components/VLabel/VLabel.ts +1 -1
  218. package/src/components/VList/__tests__/VListGroup.spec.ts +1 -1
  219. package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
  220. package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +2 -2
  221. package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
  222. package/src/components/VOtpInput/VOtpInput.ts +57 -32
  223. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
  224. package/src/components/VOverflowBtn/VOverflowBtn.ts +13 -10
  225. package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
  226. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
  227. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +32 -32
  228. package/src/components/VProgressLinear/VProgressLinear.ts +13 -18
  229. package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +20 -12
  230. package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
  231. package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
  232. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
  233. package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
  234. package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
  235. package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
  236. package/src/components/VSelect/VSelect.ts +5 -1
  237. package/src/components/VSelect/__tests__/VSelect2.spec.ts +5 -5
  238. package/src/components/VSelect/__tests__/VSelect3.spec.ts +7 -7
  239. package/src/components/VSelect/__tests__/VSelect4.spec.ts +2 -2
  240. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
  241. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +0 -284
  242. package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
  243. package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
  244. package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
  245. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
  246. package/src/components/VStepper/VStepper.ts +2 -2
  247. package/src/components/VStepper/VStepperContent.ts +7 -12
  248. package/src/components/VStepper/__tests__/VStepper.spec.ts +3 -3
  249. package/src/components/VStepper/__tests__/VStepperContent.spec.ts +25 -6
  250. package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
  251. package/src/components/VSwitch/VSwitch.ts +1 -1
  252. package/src/components/VSwitch/__tests__/VSwitch.spec.ts +4 -7
  253. package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
  254. package/src/components/VTextField/VTextField.ts +2 -1
  255. package/src/components/VTextField/__tests__/VTextField.spec.ts +24 -27
  256. package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
  257. package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +16 -6
  258. package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
  259. package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +3 -3
  260. package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +3 -3
  261. package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +2 -2
  262. package/src/components/VTooltip/VTooltip.ts +0 -6
  263. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +12 -11
  264. package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +42 -42
  265. package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +2 -2
  266. package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
  267. package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
  268. package/src/directives/color/__tests__/color.spec.ts +54 -34
  269. package/src/directives/color/index.ts +7 -3
  270. package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
  271. package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
  272. package/src/directives/resize/__tests__/resize.spec.ts +5 -5
  273. package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
  274. package/src/directives/ripple/index.ts +3 -6
  275. package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
  276. package/src/directives/scroll/index.ts +0 -1
  277. package/src/directives/touch/__tests__/touch.spec.ts +23 -16
  278. package/src/directives/touch/index.ts +6 -4
  279. package/src/globals.d.ts +6 -6
  280. package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
  281. package/src/mixins/activatable/index.ts +0 -6
  282. package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
  283. package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
  284. package/src/mixins/groupable/index.ts +6 -6
  285. package/src/mixins/positionable/index.ts +2 -2
  286. package/src/mixins/proxyable/index.ts +2 -2
  287. package/src/mixins/registrable/index.ts +4 -4
  288. package/src/mixins/selectable/index.ts +10 -7
  289. package/src/mixins/toggleable/index.ts +2 -2
  290. package/src/services/goto/__tests__/goto.spec.ts +146 -1
  291. package/src/services/goto/util.ts +44 -5
  292. package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
  293. package/src/services/theme/__tests__/theme.spec.ts +81 -83
  294. package/src/services/theme/index.ts +22 -60
  295. package/src/util/__tests__/dom.spec.ts +8 -5
  296. package/src/util/__tests__/helpers.spec.ts +1 -1
  297. package/src/util/__tests__/mergeData.spec.ts +8 -8
  298. package/src/util/mergeData.ts +10 -5
  299. package/src/util/mixins.ts +24 -7
  300. package/types/alacarte.d.ts +14 -14
  301. package/types/index.d.ts +8 -8
  302. package/types/lib.d.ts +173 -173
@@ -35,18 +35,57 @@ function getContainer(container) {
35
35
  }
36
36
 
37
37
  function type(el) {
38
- return el == null ? el : el.constructor.name;
38
+ var _a;
39
+
40
+ if (el == null) return el; // Vue 3 component detection
41
+
42
+ if (isVue3Component(el)) return 'VueComponent';
43
+ return ((_a = el.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'Unknown';
44
+ } // Helper function to detect Vue 3 component instances
45
+
46
+
47
+ function isVue3Component(el) {
48
+ // Check for Vue 3 component instance properties
49
+ return !!(el && ( // Direct component instance with $el
50
+ el.$el || // Component instance with appContext (Vue 3 runtime)
51
+ el.appContext || // Component proxy with type property (from Vue Test Utils)
52
+ el.type && (el.type.name || el.type.__name) || // Component with setupState (Composition API)
53
+ el.setupState || // Component with ctx property (internal Vue 3)
54
+ el.ctx && el.ctx.type));
39
55
  }
40
56
 
41
57
  function $(el) {
42
58
  if (typeof el === 'string') {
43
59
  return document.querySelector(el);
44
- } else if (el && el._isVue) {
45
- return el.$el;
46
60
  } else if (el instanceof HTMLElement) {
47
61
  return el;
62
+ } else if (isVue3Component(el)) {
63
+ return extractElementFromVue3Component(el);
48
64
  } else {
49
65
  return null;
50
66
  }
67
+ } // Helper function to extract HTMLElement from Vue 3 component
68
+
69
+
70
+ function extractElementFromVue3Component(component) {
71
+ var _a, _b, _c;
72
+
73
+ if (component.$el instanceof HTMLElement) {
74
+ return component.$el;
75
+ }
76
+
77
+ if (component.element instanceof HTMLElement) {
78
+ return component.element;
79
+ }
80
+
81
+ if (((_b = (_a = component.ctx) === null || _a === void 0 ? void 0 : _a.vnode) === null || _b === void 0 ? void 0 : _b.el) instanceof HTMLElement) {
82
+ return component.ctx.vnode.el;
83
+ }
84
+
85
+ if (((_c = component.vnode) === null || _c === void 0 ? void 0 : _c.el) instanceof HTMLElement) {
86
+ return component.vnode.el;
87
+ }
88
+
89
+ return null;
51
90
  }
52
91
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/goto/util.ts"],"names":[],"mappings":";;;;;;;;AAEA;AACM,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,4BAA6B,MAA7B,mBADE,GAEF,IAAI,SAAJ,+EAAqF,IAAI,CAAC,MAAD,CAAzF,eAFJ;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;;AAEK,SAAU,YAAV,CAAwB,SAAxB,EAAsC;AAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,SAAD,CAAZ;AAEA,MAAI,EAAJ,EAAQ,OAAO,EAAP;AAER,QAAM,OAAO,SAAP,KAAqB,QAArB,GACF,IAAI,KAAJ,+BAAgC,SAAhC,mBADE,GAEF,IAAI,SAAJ,2EAAiF,IAAI,CAAC,SAAD,CAArF,eAFJ;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"}
@@ -51,7 +51,7 @@ var Theme = /*#__PURE__*/function (_Service) {
51
51
  _this.disabled = false;
52
52
  _this.isDark = null;
53
53
  _this.unwatch = null;
54
- _this.vueMeta = null;
54
+ _this.metaManager = null;
55
55
  var _preset$Theme$propert = preset[Theme.property],
56
56
  dark = _preset$Theme$propert.dark,
57
57
  disable = _preset$Theme$propert.disable,
@@ -79,11 +79,8 @@ var Theme = /*#__PURE__*/function (_Service) {
79
79
  _createClass(Theme, [{
80
80
  key: "css",
81
81
  set: function set(val) {
82
- if (this.vueMeta) {
83
- if (this.isVueMeta23) {
84
- this.applyVueMeta23();
85
- }
86
-
82
+ if (this.metaManager) {
83
+ this.applyVueMeta3(val);
87
84
  return;
88
85
  }
89
86
 
@@ -120,22 +117,20 @@ var Theme = /*#__PURE__*/function (_Service) {
120
117
  }, {
121
118
  key: "init",
122
119
  value: function init(root, ssrContext) {
123
- if (this.disabled) return;
124
- /* istanbul ignore else */
120
+ if (this.disabled) return; // Инициализируем vue-meta 3
121
+
122
+ this.initVueMeta3(root);
125
123
 
126
- if (root.$meta) {
127
- this.initVueMeta(root);
128
- } else if (ssrContext) {
124
+ if (ssrContext) {
129
125
  this.initSSR(ssrContext);
126
+ } else {
127
+ this.initTheme(root);
130
128
  }
131
-
132
- this.initTheme(root);
133
129
  } // Allows for you to set target theme
134
130
 
135
131
  }, {
136
132
  key: "setTheme",
137
133
  value: function setTheme(theme, value) {
138
- console.log('setTheme');
139
134
  this.themes[theme] = Object.assign(this.themes[theme], value);
140
135
  this.applyTheme();
141
136
  } // Reset theme defaults
@@ -187,58 +182,19 @@ var Theme = /*#__PURE__*/function (_Service) {
187
182
  document.head.appendChild(this.styleEl);
188
183
  }
189
184
  }, {
190
- key: "initVueMeta",
191
- value: function initVueMeta(root) {
192
- var _this2 = this;
193
-
194
- console.log('init vue meta');
195
- this.vueMeta = root.$meta();
196
-
197
- if (this.isVueMeta23) {
198
- // vue-meta needs to apply after mounted()
199
- root.$nextTick(function () {
200
- _this2.applyVueMeta23();
201
- });
202
- return;
203
- }
204
-
205
- var metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo';
206
- var metaInfo = root.$options[metaKeyName] || {};
207
-
208
- root.$options[metaKeyName] = function () {
209
- metaInfo.style = metaInfo.style || [];
210
- var vuetifyStylesheet = metaInfo.style.find(function (s) {
211
- return s.id === 'vuetify-theme-stylesheet';
212
- });
213
-
214
- if (!vuetifyStylesheet) {
215
- metaInfo.style.push({
216
- cssText: _this2.generatedStyles,
217
- type: 'text/css',
218
- id: 'vuetify-theme-stylesheet',
219
- nonce: (_this2.options || {}).cspNonce
220
- });
221
- } else {
222
- vuetifyStylesheet.cssText = _this2.generatedStyles;
223
- }
224
-
225
- return metaInfo;
226
- };
185
+ key: "initVueMeta3",
186
+ value: function initVueMeta3(root) {
187
+ // Vue Meta 3 теперь работает через плагин, а не через отдельный manager
188
+ // Стили будут добавляться напрямую через useMeta API в компонентах
189
+ // или через обычный DOM API
190
+ this.metaManager = null;
227
191
  }
228
192
  }, {
229
- key: "applyVueMeta23",
230
- value: function applyVueMeta23() {
231
- var _this$vueMeta$addApp = this.vueMeta.addApp('vuetify'),
232
- set = _this$vueMeta$addApp.set;
233
-
234
- set({
235
- style: [{
236
- cssText: this.generatedStyles,
237
- type: 'text/css',
238
- id: 'vuetify-theme-stylesheet',
239
- nonce: this.options.cspNonce
240
- }]
241
- });
193
+ key: "applyVueMeta3",
194
+ value: function applyVueMeta3(css) {
195
+ // Vue Meta 3 больше не использует manager.addMeta API
196
+ // Используем обычный DOM API для обновления стилей
197
+ this.checkOrCreateStyleElement() && (this.styleEl.innerHTML = css);
242
198
  }
243
199
  }, {
244
200
  key: "initSSR",
@@ -306,13 +262,6 @@ var Theme = /*#__PURE__*/function (_Service) {
306
262
  key: "parsedTheme",
307
263
  get: function get() {
308
264
  return ThemeUtils.parse(this.currentTheme || {}, undefined, (0, _helpers.getNestedValue)(this.options, ['variations'], true));
309
- } // Is using v2.3 of vue-meta
310
- // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0
311
-
312
- }, {
313
- key: "isVueMeta23",
314
- get: function get() {
315
- return typeof this.vueMeta.addApp === 'function';
316
265
  }
317
266
  }]);
318
267
 
@@ -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"}
@@ -178,23 +178,24 @@ function mergeClasses(target, source) {
178
178
  }
179
179
 
180
180
  function mergeListeners() {
181
- if (!(arguments.length <= 0 ? undefined : arguments[0])) return arguments.length <= 1 ? undefined : arguments[1];
182
- if (!(arguments.length <= 1 ? undefined : arguments[1])) return arguments.length <= 0 ? undefined : arguments[0];
181
+ if (!(arguments.length <= 0 ? undefined : arguments[0]) && !(arguments.length <= 1 ? undefined : arguments[1])) return undefined;
183
182
  var dest = {};
184
183
 
185
184
  for (var i = 2; i--;) {
186
185
  var arg = i < 0 || arguments.length <= i ? undefined : arguments[i];
186
+ if (!arg) continue;
187
187
 
188
188
  for (var event in arg) {
189
189
  if (!arg[event]) continue;
190
+ var vueEventName = event.startsWith('on') && event.length > 2 && event.charAt(2) === event.charAt(2).toUpperCase() ? event : "on".concat(event.charAt(0).toUpperCase() + event.slice(1));
190
191
 
191
- if (dest[event]) {
192
+ if (dest[vueEventName]) {
192
193
  // Merge current listeners before (because we are iterating backwards).
193
194
  // Note that neither "target" or "source" must be altered.
194
- dest[event] = [].concat(arg[event], dest[event]);
195
+ dest[vueEventName] = [].concat(arg[event], dest[vueEventName]);
195
196
  } else {
196
197
  // Straight assign.
197
- dest[event] = arg[event];
198
+ dest[vueEventName] = arg[event];
198
199
  }
199
200
  }
200
201
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/mergeData.ts"],"names":[],"mappings":";;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,OAAO,GAAG;AACd,EAAA,SAAS,EAAE,eADG;AAEd,EAAA,SAAS,EAAE;AAFG,CAAhB;;AAKA,SAAS,UAAT,CAAqB,KAArB,EAAkC;AAChC,MAAM,QAAQ,GAAoB,EAAlC;;AADgC,6CAGhB,KAAK,CAAC,KAAN,CAAY,OAAO,CAAC,SAApB,CAHgB;AAAA;;AAAA;AAGhC,wDAAgD;AAAA,UAArC,CAAqC;;AAAA,qBAC7B,CAAC,CAAC,KAAF,CAAQ,OAAO,CAAC,SAAhB,CAD6B;AAAA;AAAA,UACzC,GADyC;AAAA,UACpC,GADoC;;AAE9C,MAAA,GAAG,GAAG,GAAG,CAAC,IAAJ,EAAN;;AACA,UAAI,CAAC,GAAL,EAAU;AACR;AACD,OAL6C,CAM9C;;;AACA,UAAI,OAAO,GAAP,KAAe,QAAnB,EAA6B;AAC3B,QAAA,GAAG,GAAG,GAAG,CAAC,IAAJ,EAAN;AACD;;AACD,MAAA,QAAQ,CAAC,uBAAS,GAAT,CAAD,CAAR,GAA0B,GAA1B;AACD;AAd+B;AAAA;AAAA;AAAA;AAAA;;AAgBhC,SAAO,QAAP;AACD;;AAQa,SAAU,SAAV,GAAmB;AAC/B,MAAM,WAAW,GAAgC,EAAjD;AACA,MAAI,CAAC,GAAW,SAAS,CAAC,MAA1B;AACA,MAAI,IAAJ,CAH+B,CAK/B;;AACA,SAAO,CAAC,EAAR,EAAY;AACV;AACA;AACA,qCAAa,MAAM,CAAC,IAAP,CAAY,SAAS,CAAC,CAAD,CAArB,CAAb,oCAAwC;AAAnC,MAAA,IAAmC;;AACtC,cAAQ,IAAR;AACE;AACA,aAAK,OAAL;AACA,aAAK,YAAL;AACE,cAAI,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAAJ,EAAwB;AACtB,YAAA,WAAW,CAAC,IAAD,CAAX,GAAoB,YAAY,CAAC,WAAW,CAAC,IAAD,CAAZ,EAAoB,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAApB,CAAhC;AACD;;AACD;;AACF,aAAK,OAAL;AACE,cAAI,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAAJ,EAAwB;AACtB,YAAA,WAAW,CAAC,IAAD,CAAX,GAAoB,WAAW,CAAC,WAAW,CAAC,IAAD,CAAZ,EAAoB,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAApB,CAA/B;AACD;;AACD;AACF;;AACA,aAAK,OAAL;AACE,cAAI,CAAC,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAAL,EAAyB;AACvB;AACD;;AACD,cAAI,WAAW,CAAC,IAAD,CAAX,KAAsB,SAA1B,EAAqC;AACnC,YAAA,WAAW,CAAC,IAAD,CAAX,GAAoB,EAApB;AACD;;AACD,cAAI,WAAW,CAAC,IAAD,CAAf,EAAuB;AACrB;AACA,YAAA,WAAW,CAAC,IAAD,CAAX,IAAqB,GAArB;AACD;;AACD,UAAA,WAAW,CAAC,IAAD,CAAX,IAAqB,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,EAAmB,IAAnB,EAArB;AACA;AACF;AACA;AACA;AACA;AACA;;AACA,aAAK,IAAL;AACA,aAAK,UAAL;AACE,cAAI,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAAJ,EAAwB;AACtB,YAAA,WAAW,CAAC,IAAD,CAAX,GAAoB,cAAc,CAAC,WAAW,CAAC,IAAD,CAAZ,EAAoB,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAApB,CAAlC;AACD;;AACD;AACF;;AACA,aAAK,OAAL;AACA,aAAK,OAAL;AACA,aAAK,UAAL;AACA,aAAK,aAAL;AACA,aAAK,aAAL;AACA,aAAK,MAAL;AACA,aAAK,YAAL;AACE,cAAI,CAAC,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAAL,EAAyB;AACvB;AACD;;AACD,cAAI,CAAC,WAAW,CAAC,IAAD,CAAhB,EAAwB;AACtB,YAAA,WAAW,CAAC,IAAD,CAAX,GAAoB,EAApB;AACD;;AACD,UAAA,WAAW,CAAC,IAAD,CAAX,mCAAyB,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAAzB,GAAgD,WAAW,CAAC,IAAD,CAA3D;AACA;AACF;;AACA;AAAS;AACP,cAAI,CAAC,WAAW,CAAC,IAAD,CAAhB,EAAwB;AACtB,YAAA,WAAW,CAAC,IAAD,CAAX,GAAoB,SAAS,CAAC,CAAD,CAAT,CAAa,IAAb,CAApB;AACD;;AA1DL;AA4DD;AACF;;AAED,SAAO,WAAP;AACD;;AAEK,SAAU,WAAV,CACJ,MADI,EAEJ,MAFI,EAE0C;AAE9C,MAAI,CAAC,MAAL,EAAa,OAAO,MAAP;AACb,MAAI,CAAC,MAAL,EAAa,OAAO,MAAP;AAEb,EAAA,MAAM,GAAG,0BAAY,OAAO,MAAP,KAAkB,QAAlB,GAA6B,UAAU,CAAC,MAAD,CAAvC,GAAkD,MAA9D,CAAT;AAEA,SAAQ,MAAmB,CAAC,MAApB,CAA2B,OAAO,MAAP,KAAkB,QAAlB,GAA6B,UAAU,CAAC,MAAD,CAAvC,GAAkD,MAA7E,CAAR;AACD;;AAEK,SAAU,YAAV,CAAwB,MAAxB,EAAqC,MAArC,EAAgD;AACpD,MAAI,CAAC,MAAL,EAAa,OAAO,MAAP;AACb,MAAI,CAAC,MAAL,EAAa,OAAO,MAAP;AAEb,SAAO,MAAM,GAAG,0BAAY,MAAZ,EAAoB,MAApB,CAA2B,MAA3B,CAAH,GAAwC,MAArD;AACD;;AAEK,SAAU,cAAV,GAGL;AACC,MAAI,mDAAJ,EAAc;AACd,MAAI,mDAAJ,EAAc;AAEd,MAAM,IAAI,GAA6C,EAAvD;;AAEA,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,EAAjB,GAAsB;AACpB,QAAM,GAAG,GAAQ,CAAR,4BAAQ,CAAR,yBAAQ,CAAR,CAAT;;AACA,SAAK,IAAM,KAAX,IAAoB,GAApB,EAAyB;AACvB,UAAI,CAAC,GAAG,CAAC,KAAD,CAAR,EAAiB;;AAEjB,UAAI,IAAI,CAAC,KAAD,CAAR,EAAiB;AACf;AACA;AACA,QAAA,IAAI,CAAC,KAAD,CAAJ,GAAe,GAAkB,MAAlB,CAAyB,GAAG,CAAC,KAAD,CAA5B,EAAqC,IAAI,CAAC,KAAD,CAAzC,CAAf;AACD,OAJD,MAIO;AACL;AACA,QAAA,IAAI,CAAC,KAAD,CAAJ,GAAc,GAAG,CAAC,KAAD,CAAjB;AACD;AACF;AACF;;AAED,SAAO,IAAP;AACD","sourcesContent":["/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary<any> = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary<any> = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'class':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n"],"sourceRoot":"","file":"mergeData.js"}
1
+ {"version":3,"sources":["../../src/util/mergeData.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary<any> = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary<any> = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'class':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0] && !args[1]) return undefined\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n if (!arg) continue\n\n for (const event in arg) {\n if (!arg[event]) continue\n\n const vueEventName = event.startsWith('on') && event.length > 2 && event.charAt(2) === event.charAt(2).toUpperCase()\n ? event\n : `on${event.charAt(0).toUpperCase() + event.slice(1)}`\n\n if (dest[vueEventName]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[vueEventName] = ([] as Function[]).concat(arg[event], dest[vueEventName])\n } else {\n // Straight assign.\n dest[vueEventName] = arg[event]\n }\n }\n }\n\n return dest\n}\n"],"sourceRoot":"","file":"mergeData.js"}
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = mixins;
7
7
 
8
+ var _vue = require("vue");
9
+
8
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
9
11
 
10
12
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
13
 
12
14
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
15
 
14
- /* eslint-disable max-len, import/export, no-use-before-define */
15
16
  function mixins() {
16
17
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17
18
  args[_key] = arguments[_key];
@@ -19,9 +20,9 @@ function mixins() {
19
20
 
20
21
  return {
21
22
  extend: function extend(options) {
22
- return _objectSpread({
23
+ return (0, _vue.defineComponent)(_objectSpread({
23
24
  mixins: args
24
- }, options);
25
+ }, options));
25
26
  }
26
27
  };
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/mixins.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;AACc,SAAU,MAAV,GAAyB;AAAA,oCAAJ,IAAI;AAAJ,IAAA,IAAI;AAAA;;AACrC,SAAO;AACL,IAAA,MADK,kBACE,OADF,EACS;AACZ;AACE,QAAA,MAAM,EAAE;AADV,SAEK,OAFL;AAID;AANI,GAAP;AAQD","sourcesContent":["/* eslint-disable max-len, import/export, no-use-before-define */\nexport default function mixins (...args){\n return {\n extend(options) {\n return {\n mixins: args,\n ...options\n }\n }\n }\n}"],"sourceRoot":"","file":"mixins.js"}
1
+ {"version":3,"sources":["../../src/util/mixins.ts"],"names":[],"mappings":";;;;;;;AACA;;;;;;;;AAIc,SAAU,MAAV,GAAsC;AAAA,oCAAjB,IAAiB;AAAjB,IAAA,IAAiB;AAAA;;AAClD,SAAO;AACL,IAAA,MADK,kBACG,OADH,EACU;AACb,aAAO;AACL,QAAA,MAAM,EAAE;AADH,SAEF,OAFE,EAAP;AAID;AANI,GAAP;AAQD","sourcesContent":["/* eslint-disable max-len, import/export, no-use-before-define */\nimport { Component, defineComponent } from 'vue'\n\nexport default function mixins<T extends Component[]> (...args: T): ExtractVue<T> extends infer V ? V extends Component ? Component<V> : never : never\nexport default function mixins<T extends Component> (...args: Component[]): Component<T>\nexport default function mixins (...args: Component[]) {\n return {\n extend (options) {\n return defineComponent({\n mixins: args,\n ...options,\n })\n },\n }\n}\n\n/**\n * Returns the instance type from a Vue 3 Component\n * Useful for adding types when using mixins().extend()\n */\nexport type ExtractVue<T extends Component | Component[]> = T extends (infer U)[]\n ? UnionToIntersection<\n U extends Component<infer V> ? V : never\n >\n : T extends Component<infer V> ? V : never\n\ntype UnionToIntersection<U> =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n"],"sourceRoot":"","file":"mixins.js"}
@@ -9,13 +9,18 @@ import CalendarBase from './mixins/calendar-base'; // Util
9
9
  import { getSlot } from '../../util/helpers';
10
10
  import { weekNumber } from '../../util/dateTimeUtils';
11
11
  import props from './util/props';
12
- import { createDayList, getDayIdentifier, createNativeLocaleFormatter } from './util/timestamp';
12
+ import { createDayList, getDayIdentifier, createNativeLocaleFormatter, validateTimestamp } from './util/timestamp';
13
13
  /* @vue/component */
14
14
 
15
15
  export default defineComponent({
16
16
  name: 'v-calendar-weekly',
17
17
  extends: CalendarBase,
18
- props: props.weeks,
18
+ props: { ...props.weeks,
19
+ now: {
20
+ type: String,
21
+ validator: validateTimestamp
22
+ }
23
+ },
19
24
  computed: {
20
25
  staticClass() {
21
26
  return 'v-calendar-weekly';
@@ -37,10 +42,10 @@ export default defineComponent({
37
42
  },
38
43
 
39
44
  todayWeek() {
40
- const today = this.times.today;
41
- const start = this.getStartOfWeek(today);
42
- const end = this.getEndOfWeek(today);
43
- return createDayList(start, end, today, this.weekdaySkips, this.parsedWeekdays.length, this.parsedWeekdays.length);
45
+ const now = this.times.now;
46
+ const start = this.getStartOfWeek(now);
47
+ const end = this.getEndOfWeek(now);
48
+ return createDayList(start, end, now, this.weekdaySkips, this.parsedWeekdays.length, this.parsedWeekdays.length);
44
49
  },
45
50
 
46
51
  monthFormatter() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VCalendar/VCalendarWeekly.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-calendar-weekly',\n extends: CalendarBase,\n\n props: props.weeks,\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const today = this.times.today\n const start = this.getStartOfWeek(today)\n const end = this.getEndOfWeek(today)\n\n return createDayList(\n start,\n end,\n today,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return h('div', {\n class: 'v-calendar-weekly__head',\n role: 'row',\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(h('div', {\n class: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return h('div', this.setTextColor(color, {\n key: day.date,\n class: ['v-calendar-weekly__head-weekday', this.getRelativeClasses(day, outside)],\n role: 'columnheader',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return h('div', {\n key: week[0].date,\n class: 'v-calendar-weekly__week',\n role: 'row',\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return h('div', {\n class: 'v-calendar-weekly__weeknumber',\n }, [\n h('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return h('div', {\n key: day.date,\n class: ['v-calendar-weekly__day', this.getRelativeClasses(day, outside)],\n role: 'cell',\n ...this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', { outside, index, week, ...day }) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return h('div', {\n class: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return h(VBtn, {\n color,\n fab: true,\n depressed: true,\n small: true,\n ...this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => ({ nativeEvent, ...day })),\n }, {\n default: () => hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n })\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return h('div', this.setTextColor(color, {\n class: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (): VNode {\n return h('div', {\n class: [this.staticClass, this.classes],\n onDragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VCalendarWeekly.js"}
1
+ {"version":3,"sources":["../../../src/components/VCalendar/VCalendarWeekly.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, defineComponent } from 'vue'\n// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n validateTimestamp,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-calendar-weekly',\n extends: CalendarBase,\n\n props: {\n ...props.weeks,\n now: {\n type: String,\n validator: validateTimestamp,\n },\n },\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const now = this.times.now\n const start = this.getStartOfWeek(now)\n const end = this.getEndOfWeek(now)\n\n return createDayList(\n start,\n end,\n now,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return h('div', {\n class: 'v-calendar-weekly__head',\n role: 'row',\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(h('div', {\n class: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return h('div', this.setTextColor(color, {\n key: day.date,\n class: ['v-calendar-weekly__head-weekday', this.getRelativeClasses(day, outside)],\n role: 'columnheader',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return h('div', {\n key: week[0].date,\n class: 'v-calendar-weekly__week',\n role: 'row',\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return h('div', {\n class: 'v-calendar-weekly__weeknumber',\n }, [\n h('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return h('div', {\n key: day.date,\n class: ['v-calendar-weekly__day', this.getRelativeClasses(day, outside)],\n role: 'cell',\n ...this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', { outside, index, week, ...day }) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return h('div', {\n class: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return h(VBtn, {\n color,\n fab: true,\n depressed: true,\n small: true,\n ...this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => ({ nativeEvent, ...day })),\n }, {\n default: () => hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n })\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return h('div', this.setTextColor(color, {\n class: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (): VNode {\n return h('div', {\n class: [this.staticClass, this.classes],\n onDragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VCalendarWeekly.js"}
@@ -29,7 +29,7 @@ export default defineComponent({
29
29
  default: '$checkboxOn'
30
30
  }
31
31
  },
32
- emits: ['click', 'focus', 'blur', 'update:indeterminate'],
32
+ emits: ['click', 'focus', 'blur', 'update:indeterminate', 'update:modelValue', 'change'],
33
33
 
34
34
  data() {
35
35
  return {
@@ -76,11 +76,6 @@ export default defineComponent({
76
76
 
77
77
  inputIndeterminate(val) {
78
78
  this.$emit('update:indeterminate', val);
79
- },
80
-
81
- isActive() {
82
- if (!this.indeterminate) return;
83
- this.inputIndeterminate = false;
84
79
  }
85
80
 
86
81
  },
@@ -98,8 +93,10 @@ export default defineComponent({
98
93
  genCheckbox() {
99
94
  const {
100
95
  title,
96
+ class: parentClass,
101
97
  ...checkboxAttrs
102
- } = this.attrs$;
98
+ } = this.$attrs;
99
+ const ariaChecked = this.inputIndeterminate ? 'mixed' : this.isActive.toString();
103
100
  return h('div', {
104
101
  class: 'v-input--selection-controls__input'
105
102
  }, [h(VIcon, this.setTextColor(this.validationState, {
@@ -107,7 +104,7 @@ export default defineComponent({
107
104
  dark: this.dark,
108
105
  light: this.light
109
106
  }), () => this.computedIcon), this.genInput('checkbox', { ...checkboxAttrs,
110
- 'aria-checked': this.inputIndeterminate ? 'mixed' : this.isActive.toString()
107
+ 'aria-checked': ariaChecked
111
108
  }), this.genRipple(this.setTextColor(this.rippleState))]);
112
109
  },
113
110
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VCheckbox/VCheckbox.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\nimport { defineComponent, h } from 'vue'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-checkbox',\n extends: Selectable,\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n emits: ['click', 'focus', 'blur', 'update:indeterminate'],\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n created () {\n const breakingProps = [\n ['inputValue', 'model-value'],\n ['input-value', 'model-value'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return h('div', {\n class: 'v-input--selection-controls__input',\n }, [\n h(VIcon, this.setTextColor(this.validationState, {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n }), () => this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n"],"sourceRoot":"","file":"VCheckbox.js"}
1
+ {"version":3,"sources":["../../../src/components/VCheckbox/VCheckbox.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\nimport { defineComponent, h } from 'vue'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-checkbox',\n extends: Selectable,\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n emits: ['click', 'focus', 'blur', 'update:indeterminate', 'update:modelValue', 'change'],\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n },\n\n created () {\n const breakingProps = [\n ['inputValue', 'model-value'],\n ['input-value', 'model-value'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genCheckbox () {\n const { title, class: parentClass, ...checkboxAttrs } = this.$attrs\n const ariaChecked = this.inputIndeterminate ? 'mixed' : this.isActive.toString()\n return h('div', {\n class: 'v-input--selection-controls__input',\n }, [\n h(VIcon, this.setTextColor(this.validationState, {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n }), () => this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': ariaChecked,\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n"],"sourceRoot":"","file":"VCheckbox.js"}
@@ -4,6 +4,7 @@ import { defineComponent } from 'vue'; // Extensions
4
4
 
5
5
  import VMain from '../VMain/VMain';
6
6
  import { deprecate } from '../../util/console';
7
+ import { normalizeClasses } from '../../util/helpers';
7
8
  /* @vue/component */
8
9
 
9
10
  export default defineComponent({
@@ -15,10 +16,24 @@ export default defineComponent({
15
16
  },
16
17
 
17
18
  render() {
18
- // Add the legacy class names
19
+ var _a; // Add the legacy class names
20
+
21
+
19
22
  const node = VMain.render.call(this, h);
20
- node.data.staticClass += ' v-content';
21
- node.children[0].data.staticClass += ' v-content__wrap';
23
+ const existingClasses = ((_a = node.data) === null || _a === void 0 ? void 0 : _a.class) || '';
24
+ const contentClasses = normalizeClasses(`${existingClasses} v-content`);
25
+ node.data = { ...node.data,
26
+ class: contentClasses
27
+ };
28
+
29
+ if (node.children && node.children[0] && node.children[0].data) {
30
+ const childExistingClasses = node.children[0].data.class || '';
31
+ const wrapClasses = normalizeClasses(`${childExistingClasses} v-content__wrap`);
32
+ node.children[0].data = { ...node.children[0].data,
33
+ class: wrapClasses
34
+ };
35
+ }
36
+
22
37
  return h(node.tag, node.data, node.children);
23
38
  }
24
39
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VContent/VContent.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,SAAgB,eAAhB,QAAuC,KAAvC,C,CAEA;;AACA,OAAO,KAAP,MAAkB,gBAAlB;AACA,SAAS,SAAT,QAA0B,oBAA1B;AAEA;;AACA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,QADuB;AAG7B,EAAA,OAAO,EAAE,KAHoB;;AAK7B,EAAA,OAAO,GAAA;AACL,IAAA,SAAS,CAAC,WAAD,EAAc,QAAd,EAAwB,IAAxB,CAAT;AACD,GAP4B;;AAS7B,EAAA,MAAM,GAAA;AACJ;AACA,UAAM,IAAI,GAAG,KAAK,CAAC,MAAN,CAAa,IAAb,CAAkB,IAAlB,EAAwB,CAAxB,CAAb;AAEA,IAAA,IAAI,CAAC,IAAL,CAAW,WAAX,IAA0B,YAA1B;AACA,IAAA,IAAI,CAAC,QAAL,CAAe,CAAf,EAAmB,IAAnB,CAAyB,WAAzB,IAAwC,kBAAxC;AAEA,WAAO,CAAC,CAAC,IAAI,CAAC,GAAN,EAAW,IAAI,CAAC,IAAhB,EAAsB,IAAI,CAAC,QAA3B,CAAR;AACD;;AAjB4B,CAAD,CAA9B","sourcesContent":["import {h} from 'vue'\n// Types\nimport { VNode, defineComponent } from 'vue'\n\n// Extensions\nimport VMain from '../VMain/VMain'\nimport { deprecate } from '../../util/console'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-main',\n\n extends: VMain,\n\n created () {\n deprecate('v-content', 'v-main', this)\n },\n\n render (): VNode {\n // Add the legacy class names\n const node = VMain.render.call(this, h)\n\n node.data!.staticClass += ' v-content'\n node.children![0]!.data!.staticClass += ' v-content__wrap'\n\n return h(node.tag, node.data, node.children)\n },\n})\n"],"sourceRoot":"","file":"VContent.js"}
1
+ {"version":3,"sources":["../../../src/components/VContent/VContent.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,QAAgB,KAAhB,C,CACA;;AACA,SAAgB,eAAhB,QAAuC,KAAvC,C,CAEA;;AACA,OAAO,KAAP,MAAkB,gBAAlB;AACA,SAAS,SAAT,QAA0B,oBAA1B;AACA,SAAS,gBAAT,QAAiC,oBAAjC;AAEA;;AACA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,QADuB;AAG7B,EAAA,OAAO,EAAE,KAHoB;;AAK7B,EAAA,OAAO,GAAA;AACL,IAAA,SAAS,CAAC,WAAD,EAAc,QAAd,EAAwB,IAAxB,CAAT;AACD,GAP4B;;AAS7B,EAAA,MAAM,GAAA;WAAA,CACJ;;;AACA,UAAM,IAAI,GAAG,KAAK,CAAC,MAAN,CAAa,IAAb,CAAkB,IAAlB,EAAwB,CAAxB,CAAb;AAEA,UAAM,eAAe,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAL,MAAS,IAAT,IAAS,EAAA,KAAA,KAAA,CAAT,GAAS,KAAA,CAAT,GAAS,EAAA,CAAE,KAAX,KAAoB,EAA5C;AACA,UAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,eAAe,YAAnB,CAAvC;AACA,IAAA,IAAI,CAAC,IAAL,GAAY,EAAE,GAAG,IAAI,CAAC,IAAV;AAAgB,MAAA,KAAK,EAAE;AAAvB,KAAZ;;AAEA,QAAI,IAAI,CAAC,QAAL,IAAiB,IAAI,CAAC,QAAL,CAAc,CAAd,CAAjB,IAAqC,IAAI,CAAC,QAAL,CAAc,CAAd,EAAiB,IAA1D,EAAgE;AAC9D,YAAM,oBAAoB,GAAG,IAAI,CAAC,QAAL,CAAc,CAAd,EAAiB,IAAjB,CAAsB,KAAtB,IAA+B,EAA5D;AACA,YAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,oBAAoB,kBAAxB,CAApC;AACA,MAAA,IAAI,CAAC,QAAL,CAAc,CAAd,EAAiB,IAAjB,GAAwB,EAAE,GAAG,IAAI,CAAC,QAAL,CAAc,CAAd,EAAiB,IAAtB;AAA4B,QAAA,KAAK,EAAE;AAAnC,OAAxB;AACD;;AAED,WAAO,CAAC,CAAC,IAAI,CAAC,GAAN,EAAW,IAAI,CAAC,IAAhB,EAAsB,IAAI,CAAC,QAA3B,CAAR;AACD;;AAxB4B,CAAD,CAA9B","sourcesContent":["import {h} from 'vue'\n// Types\nimport { VNode, defineComponent } from 'vue'\n\n// Extensions\nimport VMain from '../VMain/VMain'\nimport { deprecate } from '../../util/console'\nimport { normalizeClasses } from '../../util/helpers'\n\n/* @vue/component */\nexport default defineComponent({\n name: 'v-main',\n\n extends: VMain,\n\n created () {\n deprecate('v-content', 'v-main', this)\n },\n\n render (): VNode {\n // Add the legacy class names\n const node = VMain.render.call(this, h)\n\n const existingClasses = node.data?.class || ''\n const contentClasses = normalizeClasses(`${existingClasses} v-content`)\n node.data = { ...node.data, class: contentClasses }\n\n if (node.children && node.children[0] && node.children[0].data) {\n const childExistingClasses = node.children[0].data.class || ''\n const wrapClasses = normalizeClasses(`${childExistingClasses} v-content__wrap`)\n node.children[0].data = { ...node.children[0].data, class: wrapClasses }\n }\n\n return h(node.tag, node.data, node.children)\n },\n})\n"],"sourceRoot":"","file":"VContent.js"}