vuetify 2.7.0 → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/json/web-types.json +18 -6
  2. package/dist/vuetify.css +1 -1
  3. package/dist/vuetify.css.map +1 -1
  4. package/dist/vuetify.js +135 -77
  5. package/dist/vuetify.js.map +1 -1
  6. package/dist/vuetify.min.css +2 -2
  7. package/dist/vuetify.min.js +2 -2
  8. package/es5/components/VAlert/VAlert.js +4 -2
  9. package/es5/components/VAlert/VAlert.js.map +1 -1
  10. package/es5/components/VApp/VApp.js +3 -1
  11. package/es5/components/VApp/VApp.js.map +1 -1
  12. package/es5/components/VAppBar/VAppBarTitle.js +2 -2
  13. package/es5/components/VAppBar/VAppBarTitle.js.map +1 -1
  14. package/es5/components/VAvatar/VAvatar.js +1 -1
  15. package/es5/components/VAvatar/VAvatar.js.map +1 -1
  16. package/es5/components/VBanner/VBanner.js +3 -3
  17. package/es5/components/VBanner/VBanner.js.map +1 -1
  18. package/es5/components/VBottomNavigation/VBottomNavigation.js +3 -1
  19. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  20. package/es5/components/VBreadcrumbs/VBreadcrumbs.js +3 -1
  21. package/es5/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  22. package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js +3 -1
  23. package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  24. package/es5/components/VBtn/VBtn.js +4 -2
  25. package/es5/components/VBtn/VBtn.js.map +1 -1
  26. package/es5/components/VCard/VCard.js +3 -1
  27. package/es5/components/VCard/VCard.js.map +1 -1
  28. package/es5/components/VChip/VChip.js +3 -1
  29. package/es5/components/VChip/VChip.js.map +1 -1
  30. package/es5/components/VDataIterator/VDataIterator.js +3 -3
  31. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  32. package/es5/components/VDataTable/VEditDialog.js +2 -2
  33. package/es5/components/VDataTable/VEditDialog.js.map +1 -1
  34. package/es5/components/VDataTable/VSimpleTable.js +2 -2
  35. package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
  36. package/es5/components/VDataTable/VVirtualTable.js +1 -1
  37. package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
  38. package/es5/components/VDatePicker/VDatePickerHeader.js +3 -1
  39. package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  40. package/es5/components/VFooter/VFooter.js +1 -1
  41. package/es5/components/VFooter/VFooter.js.map +1 -1
  42. package/es5/components/VForm/VForm.js +3 -1
  43. package/es5/components/VForm/VForm.js.map +1 -1
  44. package/es5/components/VInput/VInput.js +2 -2
  45. package/es5/components/VInput/VInput.js.map +1 -1
  46. package/es5/components/VItemGroup/VItemGroup.js +3 -1
  47. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  48. package/es5/components/VList/VList.js +5 -2
  49. package/es5/components/VList/VList.js.map +1 -1
  50. package/es5/components/VList/VListGroup.js +7 -5
  51. package/es5/components/VList/VListGroup.js.map +1 -1
  52. package/es5/components/VList/VListItem.js +2 -2
  53. package/es5/components/VList/VListItem.js.map +1 -1
  54. package/es5/components/VMain/VMain.js +3 -1
  55. package/es5/components/VMain/VMain.js.map +1 -1
  56. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +1 -1
  57. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  58. package/es5/components/VOverlay/VOverlay.js +3 -1
  59. package/es5/components/VOverlay/VOverlay.js.map +1 -1
  60. package/es5/components/VParallax/VParallax.js +3 -1
  61. package/es5/components/VParallax/VParallax.js.map +1 -1
  62. package/es5/components/VPicker/VPicker.js +3 -3
  63. package/es5/components/VPicker/VPicker.js.map +1 -1
  64. package/es5/components/VProgressCircular/VProgressCircular.js +1 -1
  65. package/es5/components/VProgressCircular/VProgressCircular.js.map +1 -1
  66. package/es5/components/VSelect/VSelect.js +4 -2
  67. package/es5/components/VSelect/VSelect.js.map +1 -1
  68. package/es5/components/VSelect/VSelectList.js +5 -0
  69. package/es5/components/VSelect/VSelectList.js.map +1 -1
  70. package/es5/components/VSlideGroup/VSlideGroup.js +3 -3
  71. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  72. package/es5/components/VSpeedDial/VSpeedDial.js +4 -2
  73. package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
  74. package/es5/components/VStepper/VStepper.js +3 -1
  75. package/es5/components/VStepper/VStepper.js.map +1 -1
  76. package/es5/components/VStepper/VStepperContent.js +1 -1
  77. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  78. package/es5/components/VStepper/VStepperStep.js +1 -1
  79. package/es5/components/VStepper/VStepperStep.js.map +1 -1
  80. package/es5/components/VSubheader/VSubheader.js +3 -1
  81. package/es5/components/VSubheader/VSubheader.js.map +1 -1
  82. package/es5/components/VSwitch/VSwitch.js +1 -1
  83. package/es5/components/VSwitch/VSwitch.js.map +1 -1
  84. package/es5/components/VTabs/VTab.js +1 -1
  85. package/es5/components/VTabs/VTab.js.map +1 -1
  86. package/es5/components/VTabs/VTabs.js +1 -1
  87. package/es5/components/VTabs/VTabs.js.map +1 -1
  88. package/es5/components/VTextField/VTextField.js +1 -1
  89. package/es5/components/VTextField/VTextField.js.map +1 -1
  90. package/es5/components/VTimeline/VTimeline.js +3 -1
  91. package/es5/components/VTimeline/VTimeline.js.map +1 -1
  92. package/es5/components/VTimeline/VTimelineItem.js +5 -7
  93. package/es5/components/VTimeline/VTimelineItem.js.map +1 -1
  94. package/es5/components/VWindow/VWindow.js +3 -1
  95. package/es5/components/VWindow/VWindow.js.map +1 -1
  96. package/es5/components/VWindow/VWindowItem.js +1 -1
  97. package/es5/components/VWindow/VWindowItem.js.map +1 -1
  98. package/es5/framework.js +1 -1
  99. package/es5/locale/fr.js +2 -2
  100. package/es5/locale/fr.js.map +1 -1
  101. package/es5/mixins/loadable/index.js +3 -1
  102. package/es5/mixins/loadable/index.js.map +1 -1
  103. package/es5/mixins/picker/index.js +3 -1
  104. package/es5/mixins/picker/index.js.map +1 -1
  105. package/es5/util/helpers.js +5 -0
  106. package/es5/util/helpers.js.map +1 -1
  107. package/lib/components/VAlert/VAlert.js +3 -2
  108. package/lib/components/VAlert/VAlert.js.map +1 -1
  109. package/lib/components/VApp/VApp.js +2 -1
  110. package/lib/components/VApp/VApp.js.map +1 -1
  111. package/lib/components/VAppBar/VAppBarTitle.js +3 -3
  112. package/lib/components/VAppBar/VAppBarTitle.js.map +1 -1
  113. package/lib/components/VAvatar/VAvatar.js +2 -2
  114. package/lib/components/VAvatar/VAvatar.js.map +1 -1
  115. package/lib/components/VBanner/VBanner.js +3 -3
  116. package/lib/components/VBanner/VBanner.js.map +1 -1
  117. package/lib/components/VBottomNavigation/VBottomNavigation.js +2 -1
  118. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  119. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +2 -1
  120. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  121. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +2 -1
  122. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  123. package/lib/components/VBtn/VBtn.js +3 -2
  124. package/lib/components/VBtn/VBtn.js.map +1 -1
  125. package/lib/components/VCard/VCard.js +2 -1
  126. package/lib/components/VCard/VCard.js.map +1 -1
  127. package/lib/components/VChip/VChip.js +2 -1
  128. package/lib/components/VChip/VChip.js.map +1 -1
  129. package/lib/components/VDataIterator/VDataIterator.js +3 -3
  130. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  131. package/lib/components/VDataTable/VEditDialog.js +3 -3
  132. package/lib/components/VDataTable/VEditDialog.js.map +1 -1
  133. package/lib/components/VDataTable/VSimpleTable.js +3 -3
  134. package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
  135. package/lib/components/VDataTable/VVirtualTable.js +2 -2
  136. package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
  137. package/lib/components/VDatePicker/VDatePickerHeader.js +2 -1
  138. package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
  139. package/lib/components/VFooter/VFooter.js +2 -2
  140. package/lib/components/VFooter/VFooter.js.map +1 -1
  141. package/lib/components/VForm/VForm.js +2 -1
  142. package/lib/components/VForm/VForm.js.map +1 -1
  143. package/lib/components/VInput/VInput.js +2 -2
  144. package/lib/components/VInput/VInput.js.map +1 -1
  145. package/lib/components/VItemGroup/VItemGroup.js +2 -1
  146. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  147. package/lib/components/VList/VList.js +4 -2
  148. package/lib/components/VList/VList.js.map +1 -1
  149. package/lib/components/VList/VListGroup.js +7 -5
  150. package/lib/components/VList/VListGroup.js.map +1 -1
  151. package/lib/components/VList/VListItem.js +3 -3
  152. package/lib/components/VList/VListItem.js.map +1 -1
  153. package/lib/components/VMain/VMain.js +2 -1
  154. package/lib/components/VMain/VMain.js.map +1 -1
  155. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +1 -1
  156. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  157. package/lib/components/VOverlay/VOverlay.js +2 -1
  158. package/lib/components/VOverlay/VOverlay.js.map +1 -1
  159. package/lib/components/VParallax/VParallax.js +2 -1
  160. package/lib/components/VParallax/VParallax.js.map +1 -1
  161. package/lib/components/VPicker/VPicker.js +4 -4
  162. package/lib/components/VPicker/VPicker.js.map +1 -1
  163. package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
  164. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  165. package/lib/components/VSelect/VSelect.js +5 -2
  166. package/lib/components/VSelect/VSelect.js.map +1 -1
  167. package/lib/components/VSelect/VSelectList.js +5 -0
  168. package/lib/components/VSelect/VSelectList.js.map +1 -1
  169. package/lib/components/VSlideGroup/VSlideGroup.js +4 -4
  170. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  171. package/lib/components/VSpeedDial/VSpeedDial.js +3 -2
  172. package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
  173. package/lib/components/VStepper/VStepper.js +2 -1
  174. package/lib/components/VStepper/VStepper.js.map +1 -1
  175. package/lib/components/VStepper/VStepperContent.js +2 -2
  176. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  177. package/lib/components/VStepper/VStepperStep.js +2 -2
  178. package/lib/components/VStepper/VStepperStep.js.map +1 -1
  179. package/lib/components/VSubheader/VSubheader.js +2 -1
  180. package/lib/components/VSubheader/VSubheader.js.map +1 -1
  181. package/lib/components/VSwitch/VSwitch.js +2 -2
  182. package/lib/components/VSwitch/VSwitch.js.map +1 -1
  183. package/lib/components/VTabs/VTab.js +2 -2
  184. package/lib/components/VTabs/VTab.js.map +1 -1
  185. package/lib/components/VTabs/VTabs.js +2 -2
  186. package/lib/components/VTabs/VTabs.js.map +1 -1
  187. package/lib/components/VTextField/VTextField.js +2 -2
  188. package/lib/components/VTextField/VTextField.js.map +1 -1
  189. package/lib/components/VTimeline/VTimeline.js +2 -1
  190. package/lib/components/VTimeline/VTimeline.js.map +1 -1
  191. package/lib/components/VTimeline/VTimelineItem.js +4 -7
  192. package/lib/components/VTimeline/VTimelineItem.js.map +1 -1
  193. package/lib/components/VWindow/VWindow.js +2 -1
  194. package/lib/components/VWindow/VWindow.js.map +1 -1
  195. package/lib/components/VWindow/VWindowItem.js +2 -2
  196. package/lib/components/VWindow/VWindowItem.js.map +1 -1
  197. package/lib/framework.js +1 -1
  198. package/lib/locale/fr.js +2 -2
  199. package/lib/locale/fr.js.map +1 -1
  200. package/lib/mixins/loadable/index.js +2 -1
  201. package/lib/mixins/loadable/index.js.map +1 -1
  202. package/lib/mixins/picker/index.js +2 -1
  203. package/lib/mixins/picker/index.js.map +1 -1
  204. package/lib/util/helpers.js +6 -0
  205. package/lib/util/helpers.js.map +1 -1
  206. package/package.json +2 -2
  207. package/src/components/VAlert/VAlert.ts +4 -3
  208. package/src/components/VApp/VApp.ts +2 -1
  209. package/src/components/VAppBar/VAppBarTitle.ts +3 -3
  210. package/src/components/VAvatar/VAvatar.ts +2 -2
  211. package/src/components/VBanner/VBanner.ts +4 -7
  212. package/src/components/VBottomNavigation/VBottomNavigation.ts +2 -1
  213. package/src/components/VBreadcrumbs/VBreadcrumbs.ts +2 -1
  214. package/src/components/VBreadcrumbs/VBreadcrumbsItem.ts +2 -1
  215. package/src/components/VBtn/VBtn.ts +3 -2
  216. package/src/components/VCard/VCard.ts +2 -1
  217. package/src/components/VChip/VChip.ts +2 -1
  218. package/src/components/VDataIterator/VDataIterator.ts +3 -3
  219. package/src/components/VDataTable/VEditDialog.ts +3 -3
  220. package/src/components/VDataTable/VSimpleTable.ts +4 -4
  221. package/src/components/VDataTable/VVirtualTable.ts +3 -3
  222. package/src/components/VDatePicker/VDatePickerHeader.ts +2 -1
  223. package/src/components/VFooter/VFooter.ts +2 -2
  224. package/src/components/VForm/VForm.ts +2 -1
  225. package/src/components/VInput/VInput.ts +2 -2
  226. package/src/components/VItemGroup/VItemGroup.ts +2 -1
  227. package/src/components/VList/VList.ts +3 -1
  228. package/src/components/VList/VListGroup.ts +7 -5
  229. package/src/components/VList/VListItem.ts +5 -7
  230. package/src/components/VMain/VMain.ts +2 -1
  231. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +1 -1
  232. package/src/components/VOverlay/VOverlay.ts +2 -1
  233. package/src/components/VParallax/VParallax.ts +3 -2
  234. package/src/components/VPicker/VPicker.ts +4 -4
  235. package/src/components/VProgressCircular/VProgressCircular.ts +2 -2
  236. package/src/components/VSelect/VSelect.ts +5 -2
  237. package/src/components/VSelect/VSelectList.ts +5 -0
  238. package/src/components/VSlideGroup/VSlideGroup.ts +4 -4
  239. package/src/components/VSpeedDial/VSpeedDial.ts +3 -2
  240. package/src/components/VStepper/VStepper.ts +2 -1
  241. package/src/components/VStepper/VStepperContent.ts +2 -2
  242. package/src/components/VStepper/VStepperStep.ts +2 -2
  243. package/src/components/VSubheader/VSubheader.ts +2 -1
  244. package/src/components/VSwitch/VSwitch.ts +2 -2
  245. package/src/components/VTabs/VTab.ts +2 -2
  246. package/src/components/VTabs/VTabs.ts +2 -2
  247. package/src/components/VTabs/_variables.scss +1 -1
  248. package/src/components/VTextField/VTextField.ts +2 -2
  249. package/src/components/VTimeline/VTimeline.ts +2 -1
  250. package/src/components/VTimeline/VTimelineItem.ts +4 -7
  251. package/src/components/VWindow/VWindow.ts +2 -1
  252. package/src/components/VWindow/VWindowItem.ts +2 -2
  253. package/src/locale/fr.ts +2 -2
  254. package/src/mixins/loadable/index.ts +2 -1
  255. package/src/mixins/picker/index.ts +2 -1
  256. package/src/util/helpers.ts +5 -0
@@ -12,7 +12,7 @@ import { factory as ToggleableFactory } from '../../mixins/toggleable'
12
12
  import Ripple from '../../directives/ripple'
13
13
 
14
14
  // Utilities
15
- import { keyCodes } from './../../util/helpers'
15
+ import { getSlot, keyCodes } from './../../util/helpers'
16
16
  import { ExtractVue } from './../../util/mixins'
17
17
  import { removed } from '../../util/console'
18
18
 
@@ -183,12 +183,10 @@ export default baseMixins.extend<options>().extend({
183
183
  delete data.nativeOn
184
184
  }
185
185
 
186
- const children = this.$scopedSlots.default
187
- ? this.$scopedSlots.default({
188
- active: this.isActive,
189
- toggle: this.toggle,
190
- })
191
- : this.$slots.default
186
+ const children = getSlot(this, 'default', {
187
+ active: this.isActive,
188
+ toggle: this.toggle,
189
+ })
192
190
 
193
191
  return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)
194
192
  },
@@ -3,6 +3,7 @@ import './VMain.sass'
3
3
 
4
4
  // Mixins
5
5
  import SSRBootable from '../../mixins/ssr-bootable'
6
+ import { getSlot } from '../../util/helpers'
6
7
 
7
8
  // Types
8
9
  import { VNode } from 'vue'
@@ -44,7 +45,7 @@ export default SSRBootable.extend({
44
45
  h(
45
46
  'div',
46
47
  { staticClass: 'v-main__wrap' },
47
- this.$slots.default
48
+ getSlot(this),
48
49
  ),
49
50
  ])
50
51
  },
@@ -385,7 +385,7 @@ export default baseMixins.extend({
385
385
  genContent () {
386
386
  return this.$createElement('div', {
387
387
  staticClass: 'v-navigation-drawer__content',
388
- }, this.$slots.default)
388
+ }, getSlot(this))
389
389
  },
390
390
  genBorder () {
391
391
  return this.$createElement('div', {
@@ -8,6 +8,7 @@ import Toggleable from './../../mixins/toggleable'
8
8
 
9
9
  // Utilities
10
10
  import mixins from '../../util/mixins'
11
+ import { getSlot } from '../../util/helpers'
11
12
 
12
13
  // Types
13
14
  import { VNode } from 'vue'
@@ -75,7 +76,7 @@ export default mixins(
75
76
  genContent () {
76
77
  return this.$createElement('div', {
77
78
  staticClass: 'v-overlay__content',
78
- }, this.$slots.default)
79
+ }, getSlot(this))
79
80
  },
80
81
  },
81
82
 
@@ -3,10 +3,11 @@ import './VParallax.sass'
3
3
 
4
4
  // Mixins
5
5
  import Translatable from '../../mixins/translatable'
6
+ import mixins from '../../util/mixins'
7
+ import { getSlot } from '../../util/helpers'
6
8
 
7
9
  // Types
8
10
  import { VNode, VNodeData } from 'vue/types/vnode'
9
- import mixins from '../../util/mixins'
10
11
 
11
12
  const baseMixins = mixins(
12
13
  Translatable
@@ -95,7 +96,7 @@ export default baseMixins.extend<options>().extend({
95
96
 
96
97
  const content = h('div', {
97
98
  staticClass: 'v-parallax__content',
98
- }, this.$slots.default)
99
+ }, getSlot(this))
99
100
 
100
101
  return h('div', {
101
102
  staticClass: 'v-parallax',
@@ -7,7 +7,7 @@ import Elevatable from '../../mixins/elevatable'
7
7
  import Themeable from '../../mixins/themeable'
8
8
 
9
9
  // Helpers
10
- import { convertToUnit } from '../../util/helpers'
10
+ import { convertToUnit, getSlot } from '../../util/helpers'
11
11
 
12
12
  // Types
13
13
  import { VNode } from 'vue/types'
@@ -50,14 +50,14 @@ export default mixins(
50
50
  class: {
51
51
  'v-picker__title--landscape': this.landscape,
52
52
  },
53
- }), this.$slots.title)
53
+ }), getSlot(this, 'title'))
54
54
  },
55
55
  genBodyTransition () {
56
56
  return this.$createElement('transition', {
57
57
  props: {
58
58
  name: this.transition,
59
59
  },
60
- }, this.$slots.default)
60
+ }, getSlot(this))
61
61
  },
62
62
  genBody () {
63
63
  return this.$createElement('div', {
@@ -79,7 +79,7 @@ export default mixins(
79
79
  class: {
80
80
  'v-picker__actions--no-title': this.noTitle,
81
81
  },
82
- }, this.$slots.actions)
82
+ }, getSlot(this, 'actions'))
83
83
  },
84
84
  },
85
85
 
@@ -8,7 +8,7 @@ import intersect from '../../directives/intersect'
8
8
  import Colorable from '../../mixins/colorable'
9
9
 
10
10
  // Utils
11
- import { convertToUnit } from '../../util/helpers'
11
+ import { convertToUnit, getSlot } from '../../util/helpers'
12
12
 
13
13
  // Types
14
14
  import { VNode, VNodeChildren } from 'vue'
@@ -136,7 +136,7 @@ export default Colorable.extend({
136
136
  genInfo (): VNode {
137
137
  return this.$createElement('div', {
138
138
  staticClass: 'v-progress-circular__info',
139
- }, this.$slots.default)
139
+ }, getSlot(this))
140
140
  },
141
141
  onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {
142
142
  this.isVisible = isIntersecting
@@ -754,7 +754,10 @@ export default baseMixins.extend<options>().extend({
754
754
  },
755
755
  onScroll () {
756
756
  if (!this.isMenuActive) {
757
- requestAnimationFrame(() => (this.getContent().scrollTop = 0))
757
+ requestAnimationFrame(() => {
758
+ const content = this.getContent()
759
+ if (content) content.scrollTop = 0
760
+ })
758
761
  } else {
759
762
  if (this.lastItem > this.computedItems.length) return
760
763
 
@@ -855,7 +858,7 @@ export default baseMixins.extend<options>().extend({
855
858
  if (this.hideSelected) {
856
859
  this.setMenuIndex(-1)
857
860
  } else {
858
- const index = this.allItems.indexOf(item)
861
+ const index = this.computedItems.indexOf(item)
859
862
  if (~index) {
860
863
  this.$nextTick(() => this.$refs.menu.getTiles())
861
864
  setTimeout(() => this.setMenuIndex(index))
@@ -253,6 +253,11 @@ export default mixins(Colorable, Themeable).extend({
253
253
  role: 'listbox',
254
254
  tabindex: -1,
255
255
  },
256
+ on: {
257
+ mousedown: (e: Event) => {
258
+ e.preventDefault()
259
+ },
260
+ },
256
261
  props: { dense: this.dense },
257
262
  }, children)
258
263
  },
@@ -20,7 +20,7 @@ import mixins, { ExtractVue } from '../../util/mixins'
20
20
 
21
21
  // Types
22
22
  import Vue, { VNode } from 'vue'
23
- import { composedPath } from '../../util/helpers'
23
+ import { composedPath, getSlot } from '../../util/helpers'
24
24
 
25
25
  interface TouchEvent {
26
26
  touchstartX: number
@@ -283,7 +283,7 @@ export const BaseSlideGroup = mixins<options &
283
283
  genNext (): VNode | null {
284
284
  const slot = this.$scopedSlots.next
285
285
  ? this.$scopedSlots.next({})
286
- : this.$slots.next || this.__cachedNext
286
+ : getSlot(this, 'next') || this.__cachedNext
287
287
 
288
288
  return this.$createElement('div', {
289
289
  staticClass: 'v-slide-group__next',
@@ -303,7 +303,7 @@ export const BaseSlideGroup = mixins<options &
303
303
  on: {
304
304
  focusin: this.onFocusin,
305
305
  },
306
- }, this.$slots.default)
306
+ }, getSlot(this))
307
307
  },
308
308
  genData (): object {
309
309
  return {
@@ -341,7 +341,7 @@ export const BaseSlideGroup = mixins<options &
341
341
  genPrev (): VNode | null {
342
342
  const slot = this.$scopedSlots.prev
343
343
  ? this.$scopedSlots.prev({})
344
- : this.$slots.prev || this.__cachedPrev
344
+ : getSlot(this, 'prev') || this.__cachedPrev
345
345
 
346
346
  return this.$createElement('div', {
347
347
  staticClass: 'v-slide-group__prev',
@@ -13,6 +13,7 @@ import ClickOutside from '../../directives/click-outside'
13
13
  import mixins from '../../util/mixins'
14
14
  import { VNode, VNodeData } from 'vue'
15
15
  import { Prop } from 'vue/types/options'
16
+ import { getSlot } from '../../util/helpers'
16
17
 
17
18
  /* @vue/component */
18
19
  export default mixins(Positionable, Toggleable, Transitionable).extend({
@@ -71,7 +72,7 @@ export default mixins(Positionable, Toggleable, Transitionable).extend({
71
72
 
72
73
  if (this.isActive) {
73
74
  let btnCount = 0
74
- children = (this.$slots.default || []).map((b, i) => {
75
+ children = (getSlot(this) || []).map((b, i) => {
75
76
  if (b.tag && typeof b.componentOptions !== 'undefined' && (b.componentOptions.Ctor.options.name === 'v-btn' || b.componentOptions.Ctor.options.name === 'v-tooltip')) {
76
77
  btnCount++
77
78
  return h('div', {
@@ -97,6 +98,6 @@ export default mixins(Positionable, Toggleable, Transitionable).extend({
97
98
  },
98
99
  }, children)
99
100
 
100
- return h('div', data, [this.$slots.activator, list])
101
+ return h('div', data, [getSlot(this, 'activator'), list])
101
102
  },
102
103
  })
@@ -15,6 +15,7 @@ import Proxyable from '../../mixins/proxyable'
15
15
  // Utilities
16
16
  import mixins from '../../util/mixins'
17
17
  import { breaking } from '../../util/console'
18
+ import { getSlot } from '../../util/helpers'
18
19
 
19
20
  // Types
20
21
  import { VNode } from 'vue'
@@ -135,6 +136,6 @@ export default baseMixins.extend({
135
136
  staticClass: 'v-stepper',
136
137
  class: this.classes,
137
138
  style: this.styles,
138
- }, this.$slots.default)
139
+ }, getSlot(this))
139
140
  },
140
141
  })
@@ -8,7 +8,7 @@ import {
8
8
  import { inject as RegistrableInject } from '../../mixins/registrable'
9
9
 
10
10
  // Helpers
11
- import { convertToUnit } from '../../util/helpers'
11
+ import { convertToUnit, getSlot } from '../../util/helpers'
12
12
 
13
13
  // Utilities
14
14
  import mixins from '../../util/mixins'
@@ -155,7 +155,7 @@ export default baseMixins.extend<options>().extend({
155
155
  }]
156
156
  }
157
157
 
158
- const wrapper = h('div', wrapperData, [this.$slots.default])
158
+ const wrapper = h('div', wrapperData, getSlot(this))
159
159
  const content = h('div', contentData, [wrapper])
160
160
 
161
161
  return h(this.computedTransition, {
@@ -10,7 +10,7 @@ import ripple from '../../directives/ripple'
10
10
 
11
11
  // Utilities
12
12
  import mixins from '../../util/mixins'
13
- import { keyCodes } from '../../util/helpers'
13
+ import { getSlot, keyCodes } from '../../util/helpers'
14
14
 
15
15
  // Types
16
16
  import { VNode } from 'vue'
@@ -106,7 +106,7 @@ export default baseMixins.extend<options>().extend({
106
106
  genLabel () {
107
107
  return this.$createElement('div', {
108
108
  staticClass: 'v-stepper__label',
109
- }, this.$slots.default)
109
+ }, getSlot(this))
110
110
  },
111
111
  genStep () {
112
112
  const color = (!this.hasError && (this.complete || this.isActive)) ? this.color : false
@@ -4,6 +4,7 @@ import './VSubheader.sass'
4
4
  // Mixins
5
5
  import Themeable from '../../mixins/themeable'
6
6
  import mixins from '../../util/mixins'
7
+ import { getSlot } from '../../util/helpers'
7
8
 
8
9
  // Types
9
10
  import { VNode } from 'vue'
@@ -27,6 +28,6 @@ export default mixins(
27
28
  },
28
29
  attrs: this.$attrs,
29
30
  on: this.$listeners,
30
- }, this.$slots.default)
31
+ }, getSlot(this))
31
32
  },
32
33
  })
@@ -14,7 +14,7 @@ import { VFabTransition } from '../transitions'
14
14
  import VProgressCircular from '../VProgressCircular/VProgressCircular'
15
15
 
16
16
  // Helpers
17
- import { keyCodes } from '../../util/helpers'
17
+ import { getSlot, keyCodes } from '../../util/helpers'
18
18
 
19
19
  // Types
20
20
  import { VNode, VNodeData } from 'vue'
@@ -109,7 +109,7 @@ export default Selectable.extend({
109
109
  return this.$createElement(VFabTransition, {}, [
110
110
  this.loading === false
111
111
  ? null
112
- : this.$slots.progress || this.$createElement(VProgressCircular, {
112
+ : getSlot(this, 'progress') || this.$createElement(VProgressCircular, {
113
113
  props: {
114
114
  color: (this.loading === true || this.loading === '')
115
115
  ? (this.color || 'primary')
@@ -4,7 +4,7 @@ import Routable from '../../mixins/routable'
4
4
  import Themeable from '../../mixins/themeable'
5
5
 
6
6
  // Utilities
7
- import { keyCodes } from './../../util/helpers'
7
+ import { getSlot, keyCodes } from './../../util/helpers'
8
8
  import mixins from '../../util/mixins'
9
9
  import { ExtractVue } from './../../util/mixins'
10
10
 
@@ -129,6 +129,6 @@ export default baseMixins.extend<options>().extend(
129
129
  },
130
130
  }
131
131
 
132
- return h(tag, data, this.$slots.default)
132
+ return h(tag, data, getSlot(this))
133
133
  },
134
134
  })
@@ -15,7 +15,7 @@ import Themeable from '../../mixins/themeable'
15
15
  import Resize from '../../directives/resize'
16
16
 
17
17
  // Utilities
18
- import { convertToUnit } from '../../util/helpers'
18
+ import { convertToUnit, getSlot } from '../../util/helpers'
19
19
  import { ExtractVue } from './../../util/mixins'
20
20
  import mixins from '../../util/mixins'
21
21
 
@@ -268,7 +268,7 @@ export default baseMixins.extend<options>().extend({
268
268
  let slider = null
269
269
  const item = []
270
270
  const tab = []
271
- const slot = this.$slots.default || []
271
+ const slot = getSlot(this) || []
272
272
  const length = slot.length
273
273
 
274
274
  for (let i = 0; i < length; i++) {
@@ -3,7 +3,7 @@
3
3
  $tab-disabled-opacity: .5 !default;
4
4
  $tab-font-size: map-deep-get($headings, 'subtitle-2', 'size') !default;
5
5
  $tab-font-weight: map-deep-get($headings, 'subtitle-2', 'weight') !default;
6
- $tab-text-transform: 'uppercase' !default;
6
+ $tab-text-transform: uppercase !default;
7
7
  $tab-line-height: normal !default;
8
8
  $tabs-bar-background-color: 'cards' !default;
9
9
  $tabs-bar-height: 48px !default;
@@ -19,7 +19,7 @@ import ripple from '../../directives/ripple'
19
19
 
20
20
  // Utilities
21
21
  import { attachedRoot } from '../../util/dom'
22
- import { convertToUnit, keyCodes } from '../../util/helpers'
22
+ import { convertToUnit, getSlot, keyCodes } from '../../util/helpers'
23
23
  import { breaking, consoleWarn } from '../../util/console'
24
24
 
25
25
  // Types
@@ -372,7 +372,7 @@ export default baseMixins.extend<options>().extend({
372
372
  },
373
373
  }
374
374
 
375
- return this.$createElement(VLabel, data, this.$slots.label || this.label)
375
+ return this.$createElement(VLabel, data, getSlot(this, 'label') || this.label)
376
376
  },
377
377
  genLegend () {
378
378
  const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0
@@ -7,6 +7,7 @@ import mixins from '../../util/mixins'
7
7
 
8
8
  // Mixins
9
9
  import Themeable from '../../mixins/themeable'
10
+ import { getSlot } from '../../util/helpers'
10
11
 
11
12
  export default mixins(
12
13
  Themeable
@@ -39,6 +40,6 @@ export default mixins(
39
40
  return h('div', {
40
41
  staticClass: 'v-timeline',
41
42
  class: this.classes,
42
- }, this.$slots.default)
43
+ }, getSlot(this))
43
44
  },
44
45
  })
@@ -9,6 +9,7 @@ import VIcon from '../VIcon'
9
9
  // Mixins
10
10
  import Themeable from '../../mixins/themeable'
11
11
  import Colorable from '../../mixins/colorable'
12
+ import { getSlot } from '../../util/helpers'
12
13
 
13
14
  const baseMixins = mixins(
14
15
  Colorable,
@@ -52,14 +53,10 @@ export default baseMixins.extend<options>().extend({
52
53
  genBody () {
53
54
  return this.$createElement('div', {
54
55
  staticClass: 'v-timeline-item__body',
55
- }, this.$slots.default)
56
+ }, getSlot(this))
56
57
  },
57
58
  genIcon (): VNode | VNode[] {
58
- if (this.$slots.icon) {
59
- return this.$slots.icon
60
- }
61
-
62
- return this.$createElement(VIcon, {
59
+ return getSlot(this, 'icon') || this.$createElement(VIcon, {
63
60
  props: {
64
61
  color: this.iconColor,
65
62
  dark: !this.theme.isDark,
@@ -96,7 +93,7 @@ export default baseMixins.extend<options>().extend({
96
93
  genOpposite () {
97
94
  return this.$createElement('div', {
98
95
  staticClass: 'v-timeline-item__opposite',
99
- }, this.$slots.opposite)
96
+ }, getSlot(this, 'opposite'))
100
97
  },
101
98
  },
102
99
 
@@ -13,6 +13,7 @@ import Touch from '../../directives/touch'
13
13
  import VBtn from '../VBtn'
14
14
  import VIcon from '../VIcon'
15
15
  import { BaseItemGroup } from '../VItemGroup/VItemGroup'
16
+ import { getSlot } from '../../util/helpers'
16
17
 
17
18
  /* @vue/component */
18
19
  export default BaseItemGroup.extend({
@@ -118,7 +119,7 @@ export default BaseItemGroup.extend({
118
119
 
119
120
  methods: {
120
121
  genDefaultSlot () {
121
- return this.$slots.default
122
+ return getSlot(this)
122
123
  },
123
124
  genContainer (): VNode {
124
125
  const children = [this.genDefaultSlot()]
@@ -9,7 +9,7 @@ import { factory as GroupableFactory } from '../../mixins/groupable'
9
9
  import Touch from '../../directives/touch'
10
10
 
11
11
  // Utilities
12
- import { convertToUnit } from '../../util/helpers'
12
+ import { convertToUnit, getSlot } from '../../util/helpers'
13
13
  import mixins, { ExtractVue } from '../../util/mixins'
14
14
 
15
15
  // Types
@@ -75,7 +75,7 @@ export default baseMixins.extend<options>().extend(
75
75
 
76
76
  methods: {
77
77
  genDefaultSlot () {
78
- return this.$slots.default
78
+ return getSlot(this)
79
79
  },
80
80
  genWindowItem () {
81
81
  return this.$createElement('div', {
package/src/locale/fr.ts CHANGED
@@ -3,7 +3,7 @@ export default {
3
3
  close: 'Fermer',
4
4
  dataIterator: {
5
5
  noResultsText: 'Aucun enregistrement correspondant trouvé',
6
- loadingText: `Chargement de l'élément...`,
6
+ loadingText: `Chargement de l'élément…`,
7
7
  },
8
8
  dataTable: {
9
9
  itemsPerPageText: 'Lignes par page :',
@@ -71,5 +71,5 @@ export default {
71
71
  icon: 'Note de {0} sur {1}',
72
72
  },
73
73
  },
74
- loading: 'Loading...',
74
+ loading: 'Chargement…',
75
75
  }
@@ -1,5 +1,6 @@
1
1
  import Vue, { VNode } from 'vue'
2
2
  import VProgressLinear from '../../components/VProgressLinear'
3
+ import { getSlot } from '../../util/helpers'
3
4
 
4
5
  interface colorable extends Vue {
5
6
  color?: string
@@ -33,7 +34,7 @@ export default Vue.extend<colorable>().extend({
33
34
  genProgress (): VNode | VNode[] | null {
34
35
  if (this.loading === false) return null
35
36
 
36
- return this.$slots.progress || this.$createElement(VProgressLinear, {
37
+ return getSlot(this, 'progress') || this.$createElement(VProgressLinear, {
37
38
  props: {
38
39
  absolute: true,
39
40
  color: (this.loading === true || this.loading === '')
@@ -8,6 +8,7 @@ import Themeable from '../themeable'
8
8
 
9
9
  // Utils
10
10
  import mixins from '../../util/mixins'
11
+ import { getSlot } from '../../util/helpers'
11
12
 
12
13
  // Types
13
14
  import { VNode } from 'vue'
@@ -43,7 +44,7 @@ export default mixins(
43
44
  return this.$scopedSlots.default ? this.$scopedSlots.default({
44
45
  save: (this as any).save,
45
46
  cancel: (this as any).cancel,
46
- }) : this.$slots.default
47
+ }) : getSlot(this)
47
48
  },
48
49
  genPicker (staticClass: string) {
49
50
  const children: VNode[] = []
@@ -409,10 +409,15 @@ export function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {
409
409
  }
410
410
 
411
411
  export function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {
412
+ const kebabName = kebabCase(name)
412
413
  if (vm.$scopedSlots.hasOwnProperty(name)) {
413
414
  return vm.$scopedSlots[name]!(data instanceof Function ? data() : data)
415
+ } else if (vm.$scopedSlots.hasOwnProperty(kebabName)) {
416
+ return vm.$scopedSlots[kebabName]!(data instanceof Function ? data() : data)
414
417
  } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {
415
418
  return vm.$slots[name]
419
+ } else if (vm.$slots.hasOwnProperty(kebabName) && (!data || optional)) {
420
+ return vm.$slots[kebabName]
416
421
  }
417
422
  return undefined
418
423
  }