@vuetify/nightly 2.6.0 → 2.6.2-master-20211201.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/json/attributes.json +36 -0
  2. package/dist/json/tags.json +15 -6
  3. package/dist/json/web-types.json +99 -9
  4. package/dist/vuetify.css +37 -5
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +96 -84
  7. package/dist/vuetify.js.map +1 -1
  8. package/dist/vuetify.min.css +2 -2
  9. package/dist/vuetify.min.js +2 -2
  10. package/es5/components/VBanner/VBanner.js +3 -2
  11. package/es5/components/VBanner/VBanner.js.map +1 -1
  12. package/es5/components/VBottomNavigation/VBottomNavigation.js +10 -2
  13. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  14. package/es5/components/VBottomSheet/VBottomSheet.js +1 -4
  15. package/es5/components/VBottomSheet/VBottomSheet.js.map +1 -1
  16. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  17. package/es5/components/VCalendar/VCalendarDaily.js +16 -8
  18. package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
  19. package/es5/components/VCalendar/VCalendarWeekly.js +14 -10
  20. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  21. package/es5/components/VCalendar/mixins/calendar-with-events.js +19 -20
  22. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  23. package/es5/components/VCalendar/mixins/mouse.js +12 -3
  24. package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
  25. package/es5/components/VDataTable/MobileRow.js +2 -2
  26. package/es5/components/VDataTable/MobileRow.js.map +1 -1
  27. package/es5/components/VDataTable/Row.js +2 -2
  28. package/es5/components/VDataTable/Row.js.map +1 -1
  29. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  30. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  31. package/es5/components/VDialog/VDialog.js +4 -10
  32. package/es5/components/VDialog/VDialog.js.map +1 -1
  33. package/es5/components/VItemGroup/VItemGroup.js +8 -4
  34. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  35. package/es5/components/VRadioGroup/VRadioGroup.js +1 -3
  36. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  37. package/es5/components/VTabs/VTab.js +3 -2
  38. package/es5/components/VTabs/VTab.js.map +1 -1
  39. package/es5/directives/ripple/index.js +0 -7
  40. package/es5/directives/ripple/index.js.map +1 -1
  41. package/es5/framework.js +1 -1
  42. package/es5/locale/it.js +6 -6
  43. package/es5/locale/it.js.map +1 -1
  44. package/es5/mixins/routable/index.js +2 -5
  45. package/es5/mixins/routable/index.js.map +1 -1
  46. package/es5/util/helpers.js +5 -5
  47. package/es5/util/helpers.js.map +1 -1
  48. package/lib/components/VBanner/VBanner.js +3 -2
  49. package/lib/components/VBanner/VBanner.js.map +1 -1
  50. package/lib/components/VBottomNavigation/VBottomNavigation.js +10 -2
  51. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  52. package/lib/components/VBottomSheet/VBottomSheet.js +1 -4
  53. package/lib/components/VBottomSheet/VBottomSheet.js.map +1 -1
  54. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  55. package/lib/components/VCalendar/VCalendarDaily.js +20 -8
  56. package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
  57. package/lib/components/VCalendar/VCalendarWeekly.js +10 -2
  58. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  59. package/lib/components/VCalendar/mixins/calendar-with-events.js +6 -3
  60. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  61. package/lib/components/VCalendar/mixins/mouse.js +8 -3
  62. package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
  63. package/lib/components/VDataTable/MobileRow.js +2 -2
  64. package/lib/components/VDataTable/MobileRow.js.map +1 -1
  65. package/lib/components/VDataTable/Row.js +2 -2
  66. package/lib/components/VDataTable/Row.js.map +1 -1
  67. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  68. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  69. package/lib/components/VDialog/VDialog.js +4 -10
  70. package/lib/components/VDialog/VDialog.js.map +1 -1
  71. package/lib/components/VItemGroup/VItemGroup.js +7 -5
  72. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  73. package/lib/components/VRadioGroup/VRadioGroup.js +2 -4
  74. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  75. package/lib/components/VTabs/VTab.js +3 -2
  76. package/lib/components/VTabs/VTab.js.map +1 -1
  77. package/lib/directives/ripple/index.js +0 -7
  78. package/lib/directives/ripple/index.js.map +1 -1
  79. package/lib/framework.js +1 -1
  80. package/lib/locale/it.js +6 -6
  81. package/lib/locale/it.js.map +1 -1
  82. package/lib/mixins/routable/index.js +3 -5
  83. package/lib/mixins/routable/index.js.map +1 -1
  84. package/lib/util/helpers.js +5 -5
  85. package/lib/util/helpers.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/components/VBanner/VBanner.ts +16 -10
  88. package/src/components/VBottomNavigation/VBottomNavigation.ts +14 -2
  89. package/src/components/VBottomNavigation/__tests__/VBottomNavigation.spec.ts +9 -7
  90. package/src/components/VBottomSheet/VBottomSheet.ts +1 -4
  91. package/src/components/VCalendar/VCalendar.ts +1 -0
  92. package/src/components/VCalendar/VCalendarDaily.ts +9 -8
  93. package/src/components/VCalendar/VCalendarWeekly.ts +4 -2
  94. package/src/components/VCalendar/mixins/calendar-with-events.ts +4 -3
  95. package/src/components/VCalendar/mixins/mouse.ts +9 -3
  96. package/src/components/VDataTable/MobileRow.ts +2 -2
  97. package/src/components/VDataTable/Row.ts +2 -2
  98. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
  99. package/src/components/VDialog/VDialog.sass +1 -1
  100. package/src/components/VDialog/VDialog.ts +4 -10
  101. package/src/components/VItemGroup/VItemGroup.ts +5 -3
  102. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +19 -2
  103. package/src/components/VRadioGroup/VRadioGroup.ts +0 -4
  104. package/src/components/VStepper/VStepper.sass +4 -4
  105. package/src/components/VTabs/VTab.ts +10 -2
  106. package/src/components/VTextarea/VTextarea.sass +13 -0
  107. package/src/directives/ripple/VRipple.sass +4 -1
  108. package/src/directives/ripple/index.ts +0 -7
  109. package/src/locale/it.ts +6 -6
  110. package/src/mixins/routable/index.ts +1 -4
  111. package/src/styles/settings/_variables.scss +1 -1
  112. package/src/util/helpers.ts +5 -5
  113. package/CHANGELOG.md +0 -45
  114. package/src/directives/ripple/_variables.scss +0 -6
  115. package/types/.npmignore +0 -2
@@ -384,9 +384,10 @@ export default CalendarBase.extend({
384
384
  name: 'ripple',
385
385
  value: this.eventRipple ?? true,
386
386
  }],
387
- on: {
388
- click: (e: MouseEvent) => this.$emit('click:more', day, e),
389
- },
387
+ on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {
388
+ return { nativeEvent, ...day }
389
+ }),
390
+
390
391
  style: {
391
392
  display: 'none',
392
393
  height: `${eventHeight}px`,
@@ -65,11 +65,17 @@ export default Vue.extend({
65
65
  // Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target
66
66
  // This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at
67
67
  if (e && 'touches' in e) {
68
- const currentTarget = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY)
68
+ const classSeparator = ' '
69
+
70
+ const eventTargetClasses = (e.currentTarget as HTMLElement)?.className.split(classSeparator)
71
+ const currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY)
72
+
73
+ // Get "the same kind" current hovering target by checking
74
+ // If element has the same class of initial touch start element (which has touch event listener registered)
75
+ const currentTarget = currentTargets.find(t => t.className.split(classSeparator).some(c => eventTargetClasses.includes(c)))
69
76
 
70
77
  if (currentTarget &&
71
- !(e.target as HTMLElement)?.isSameNode(currentTarget) &&
72
- (e.target as HTMLElement)?.className === currentTarget.className
78
+ !(e.target as HTMLElement)?.isSameNode(currentTarget)
73
79
  ) {
74
80
  currentTarget.dispatchEvent(new TouchEvent(e.type, {
75
81
  changedTouches: e.changedTouches as unknown as Touch[],
@@ -27,8 +27,8 @@ export default Vue.extend({
27
27
  const value = getObjectValueByPath(props.item, header.value)
28
28
 
29
29
  const slotName = header.value
30
- const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]
31
- const regularSlot = computedSlots[slotName]
30
+ const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]
31
+ const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]
32
32
 
33
33
  if (scopedSlot) {
34
34
  children.push(scopedSlot({
@@ -30,8 +30,8 @@ export default Vue.extend({
30
30
  const value = getObjectValueByPath(props.item, header.value)
31
31
 
32
32
  const slotName = header.value
33
- const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]
34
- const regularSlot = computedSlots[slotName]
33
+ const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]
34
+ const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]
35
35
 
36
36
  if (scopedSlot) {
37
37
  children.push(...wrapInArray(scopedSlot({
@@ -73,7 +73,7 @@ export default mixins(header).extend({
73
73
  }
74
74
 
75
75
  children.push(
76
- this.$scopedSlots[header.value]
76
+ this.$scopedSlots.hasOwnProperty(header.value)
77
77
  ? this.$scopedSlots[header.value]!({ header })
78
78
  : this.$createElement('span', [header.text])
79
79
  )
@@ -7,6 +7,7 @@
7
7
  overflow-y: auto
8
8
  pointer-events: auto
9
9
  transition: .3s map-get($transition, 'fast-in-fast-out')
10
+ width: 100%
10
11
  z-index: inherit
11
12
  +elevation($dialog-elevation)
12
13
 
@@ -62,7 +63,6 @@
62
63
  .v-dialog--fullscreen
63
64
  border-radius: 0
64
65
  margin: 0
65
- width: 100%
66
66
  height: 100%
67
67
  position: fixed
68
68
  overflow-y: auto
@@ -48,10 +48,7 @@ export default baseMixins.extend({
48
48
  disabled: Boolean,
49
49
  fullscreen: Boolean,
50
50
  light: Boolean,
51
- maxWidth: {
52
- type: [String, Number],
53
- default: 'none',
54
- },
51
+ maxWidth: [String, Number],
55
52
  noClickAnimation: Boolean,
56
53
  origin: {
57
54
  type: String,
@@ -67,10 +64,7 @@ export default baseMixins.extend({
67
64
  type: [String, Boolean],
68
65
  default: 'dialog-transition',
69
66
  },
70
- width: {
71
- type: [String, Number],
72
- default: 'auto',
73
- },
67
+ width: [String, Number],
74
68
  },
75
69
 
76
70
  data () {
@@ -306,8 +300,8 @@ export default baseMixins.extend({
306
300
  if (!this.fullscreen) {
307
301
  data.style = {
308
302
  ...data.style as object,
309
- maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),
310
- width: this.width === 'auto' ? undefined : convertToUnit(this.width),
303
+ maxWidth: convertToUnit(this.maxWidth),
304
+ width: convertToUnit(this.width),
311
305
  }
312
306
  }
313
307
 
@@ -2,6 +2,7 @@
2
2
  import './VItemGroup.sass'
3
3
 
4
4
  // Mixins
5
+ import Comparable from '../../mixins/comparable'
5
6
  import Groupable from '../../mixins/groupable'
6
7
  import Proxyable from '../../mixins/proxyable'
7
8
  import Themeable from '../../mixins/themeable'
@@ -20,6 +21,7 @@ export type GroupableInstance = InstanceType<typeof Groupable> & {
20
21
  }
21
22
 
22
23
  export const BaseItemGroup = mixins(
24
+ Comparable,
23
25
  Proxyable,
24
26
  Themeable
25
27
  ).extend({
@@ -83,12 +85,12 @@ export const BaseItemGroup = mixins(
83
85
  },
84
86
  toggleMethod (): (v: any) => boolean {
85
87
  if (!this.multiple) {
86
- return (v: any) => this.internalValue === v
88
+ return (v: any) => this.valueComparator(this.internalValue, v)
87
89
  }
88
90
 
89
91
  const internalValue = this.internalValue
90
92
  if (Array.isArray(internalValue)) {
91
- return (v: any) => internalValue.includes(v)
93
+ return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))
92
94
  }
93
95
 
94
96
  return () => false
@@ -114,7 +116,7 @@ export const BaseItemGroup = mixins(
114
116
  }
115
117
  },
116
118
  getValue (item: GroupableInstance, i: number): unknown {
117
- return item.value == null || item.value === ''
119
+ return item.value === undefined
118
120
  ? i
119
121
  : item.value
120
122
  },
@@ -58,9 +58,9 @@ describe('VItemGroup', () => {
58
58
 
59
59
  const getValue = wrapper.vm.getValue
60
60
 
61
- expect(getValue({ value: null }, 0)).toBe(0)
61
+ expect(getValue({ value: null }, 0)).toBeNull()
62
62
  expect(getValue({ value: undefined }, 1)).toBe(1)
63
- expect(getValue({ value: '' }, 2)).toBe(2)
63
+ expect(getValue({ value: '' }, 2)).toBe('')
64
64
  expect(getValue({ value: 'foo' }, 'foo')).toBe('foo')
65
65
  })
66
66
 
@@ -167,6 +167,23 @@ describe('VItemGroup', () => {
167
167
  expect(wrapper.vm.toggleMethod(0)).toBe(false)
168
168
  })
169
169
 
170
+ it('should correctly be active with objects having different references', () => {
171
+ const wrapper = mountFunction()
172
+
173
+ wrapper.setProps({ value: { a: 1 } })
174
+ expect(wrapper.vm.toggleMethod({ a: 1 })).toBe(true)
175
+ expect(wrapper.vm.toggleMethod({ a: 2 })).toBe(false)
176
+ })
177
+
178
+ it('should have a customizable comparator function', () => {
179
+ const wrapper = mountFunction()
180
+
181
+ wrapper.setProps({ valueComparator: (a: any, b: any) => a === b + 1, value: 0 })
182
+
183
+ expect(wrapper.vm.toggleMethod(0)).toBe(false)
184
+ expect(wrapper.vm.toggleMethod(-1)).toBe(true)
185
+ })
186
+
170
187
  it('should select the first item if mandatory and no value', async () => {
171
188
  const wrapper = mountFunction({
172
189
  propsData: { mandatory: true },
@@ -6,15 +6,11 @@ import './VRadioGroup.sass'
6
6
  import VInput from '../VInput'
7
7
  import { BaseItemGroup } from '../VItemGroup/VItemGroup'
8
8
 
9
- // Mixins
10
- import Comparable from '../../mixins/comparable'
11
-
12
9
  // Types
13
10
  import mixins from '../../util/mixins'
14
11
  import { PropType } from 'vue'
15
12
 
16
13
  const baseMixins = mixins(
17
- Comparable,
18
14
  BaseItemGroup,
19
15
  VInput
20
16
  )
@@ -137,9 +137,8 @@
137
137
  color: inherit
138
138
 
139
139
  &__label
140
- align-items: flex-start
141
- display: flex
142
- flex-direction: column
140
+ display: block
141
+ flex-grow: 1
143
142
  line-height: $stepper-label-line-height
144
143
 
145
144
  +ltr()
@@ -149,6 +148,7 @@
149
148
  text-align: right
150
149
 
151
150
  small
151
+ display: block
152
152
  font-size: $stepper-label-small-font-size
153
153
  font-weight: $stepper-label-small-font-weight
154
154
  text-shadow: none
@@ -219,7 +219,7 @@
219
219
  flex-basis: $stepper-alt-labels-flex-basis
220
220
 
221
221
  small
222
- align-self: center
222
+ text-align: center
223
223
 
224
224
  .v-stepper__step__step
225
225
  margin-bottom: $stepper-alt-labels-step-step-margin-bottom
@@ -11,6 +11,9 @@ import { ExtractVue } from './../../util/mixins'
11
11
  // Types
12
12
  import { VNode } from 'vue/types'
13
13
 
14
+ // Components
15
+ import VTabsBar from '../VTabs/VTabsBar'
16
+
14
17
  const baseMixins = mixins(
15
18
  Routable,
16
19
  // Must be after routable
@@ -19,8 +22,11 @@ const baseMixins = mixins(
19
22
  Themeable
20
23
  )
21
24
 
25
+ type VTabBarInstance = InstanceType<typeof VTabsBar>
26
+
22
27
  interface options extends ExtractVue<typeof baseMixins> {
23
28
  $el: HTMLElement
29
+ tabsBar: VTabBarInstance
24
30
  }
25
31
 
26
32
  export default baseMixins.extend<options>().extend(
@@ -49,7 +55,9 @@ export default baseMixins.extend<options>().extend(
49
55
  }
50
56
  },
51
57
  value (): any {
52
- let to = this.to || this.href || ''
58
+ let to = this.to || this.href
59
+
60
+ if (to == null) return to
53
61
 
54
62
  if (this.$router &&
55
63
  this.to === Object(this.to)
@@ -92,7 +100,7 @@ export default baseMixins.extend<options>().extend(
92
100
  },
93
101
  toggle () {
94
102
  // VItemGroup treats a change event as a click
95
- if (!this.isActive) {
103
+ if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {
96
104
  this.$emit('change')
97
105
  }
98
106
  },
@@ -1,5 +1,14 @@
1
1
  @import './_variables.scss'
2
2
 
3
+ +theme(v-textarea) using ($material)
4
+ &.v-text-field--solo-inverted
5
+ &.v-input--is-focused
6
+ textarea
7
+ color: map-deep-get($material, 'inputs', 'solo-inverted-focused-text')
8
+
9
+ textarea::placeholder
10
+ color: map-deep-get($material, 'inputs', 'solo-inverted-focused-placeholder')
11
+
3
12
  .v-textarea
4
13
  textarea
5
14
  align-self: stretch
@@ -49,6 +58,10 @@
49
58
  &.v-text-field--solo
50
59
  align-items: flex-start
51
60
 
61
+ .v-input__control
62
+ textarea
63
+ caret-color: auto
64
+
52
65
  // Essentially revert styles
53
66
  // applied by v-text-field
54
67
  .v-input__prepend-inner,
@@ -1,4 +1,4 @@
1
- @import './_variables.scss'
1
+ @import '../../styles/styles.sass'
2
2
 
3
3
  .v-ripple
4
4
  &__container
@@ -28,9 +28,12 @@
28
28
 
29
29
  &--enter
30
30
  transition: none
31
+ opacity: 0
31
32
 
32
33
  &--in
33
34
  transition: $ripple-animation-transition-in
35
+ opacity: $ripple-animation-visible-opacity
34
36
 
35
37
  &--out
36
38
  transition: $ripple-animation-transition-out
39
+ opacity: 0
@@ -17,10 +17,6 @@ function transform (el: HTMLElement, value: string) {
17
17
  el.style.webkitTransform = value
18
18
  }
19
19
 
20
- function opacity (el: HTMLElement, value: number) {
21
- el.style.opacity = value.toString()
22
- }
23
-
24
20
  export interface RippleOptions {
25
21
  class?: string
26
22
  center?: boolean
@@ -109,14 +105,12 @@ const ripples = {
109
105
  animation.classList.add('v-ripple__animation--enter')
110
106
  animation.classList.add('v-ripple__animation--visible')
111
107
  transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)
112
- opacity(animation, 0)
113
108
  animation.dataset.activated = String(performance.now())
114
109
 
115
110
  setTimeout(() => {
116
111
  animation.classList.remove('v-ripple__animation--enter')
117
112
  animation.classList.add('v-ripple__animation--in')
118
113
  transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)
119
- opacity(animation, 0.25)
120
114
  }, 0)
121
115
  },
122
116
 
@@ -137,7 +131,6 @@ const ripples = {
137
131
  setTimeout(() => {
138
132
  animation.classList.remove('v-ripple__animation--in')
139
133
  animation.classList.add('v-ripple__animation--out')
140
- opacity(animation, 0)
141
134
 
142
135
  setTimeout(() => {
143
136
  const ripples = el.getElementsByClassName('v-ripple__animation')
package/src/locale/it.ts CHANGED
@@ -22,8 +22,8 @@ export default {
22
22
  itemsPerPageAll: 'Tutti',
23
23
  nextPage: 'Pagina seguente',
24
24
  prevPage: 'Pagina precedente',
25
- firstPage: 'Pagina prima',
26
- lastPage: 'Pagina ultima',
25
+ firstPage: 'Prima pagina',
26
+ lastPage: 'Ultima pagina',
27
27
  pageText: '{0}-{1} di {2}',
28
28
  },
29
29
  datePicker: {
@@ -38,15 +38,15 @@ export default {
38
38
  prev: 'Vista precedente',
39
39
  next: 'Prossima vista',
40
40
  ariaLabel: {
41
- delimiter: 'Carousel slide {0} of {1}',
41
+ delimiter: 'Carousel slide {0} di {1}',
42
42
  },
43
43
  },
44
44
  calendar: {
45
45
  moreEvents: '{0} di più',
46
46
  },
47
47
  fileInput: {
48
- counter: '{0} files',
49
- counterSize: '{0} files ({1} in totale)',
48
+ counter: '{0} file',
49
+ counterSize: '{0} file ({1} in totale)',
50
50
  },
51
51
  timePicker: {
52
52
  am: 'AM',
@@ -63,7 +63,7 @@ export default {
63
63
  },
64
64
  rating: {
65
65
  ariaLabel: {
66
- icon: 'Rating {0} of {1}',
66
+ icon: 'Valutazione {0} di {1}',
67
67
  },
68
68
  },
69
69
  }
@@ -80,9 +80,6 @@ export default Vue.extend({
80
80
  },
81
81
 
82
82
  methods: {
83
- click (e: MouseEvent): void {
84
- this.$emit('click', e)
85
- },
86
83
  generateRouteLink () {
87
84
  let exact = this.exact
88
85
  let tag
@@ -100,7 +97,7 @@ export default Vue.extend({
100
97
  }],
101
98
  [this.to ? 'nativeOn' : 'on']: {
102
99
  ...this.$listeners,
103
- click: this.click,
100
+ ...('click' in this ? { click: (this as any).click } : undefined), // #14447
104
101
  },
105
102
  ref: 'link',
106
103
  }
@@ -250,7 +250,7 @@ $secondary-transition: 0.2s map-get($transition, 'ease-in-out') !default;
250
250
  // Ripples //;
251
251
  $ripple-animation-transition-in: transform 0.25s map-get($transition, 'fast-out-slow-in'), opacity 0.1s map-get($transition, 'fast-out-slow-in') !default;
252
252
  $ripple-animation-transition-out: opacity 0.3s map-get($transition, 'fast-out-slow-in') !default;
253
- $ripple-animation-visible-opacity: 0.15 !default;
253
+ $ripple-animation-visible-opacity: 0.25 !default;
254
254
 
255
255
  // Elements //;
256
256
  $bootable-transition: 0.2s map-get($transition, 'fast-out-slow-in') !default;
@@ -385,11 +385,11 @@ export function searchItems<T extends any = any> (items: T[], search: string): T
385
385
  * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped
386
386
  */
387
387
  export function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {
388
- if (vm.$slots[name] && vm.$scopedSlots[name] && (vm.$scopedSlots[name] as any).name) {
388
+ if (vm.$slots.hasOwnProperty(name) && vm.$scopedSlots.hasOwnProperty(name) && (vm.$scopedSlots[name] as any).name) {
389
389
  return split ? 'v-slot' as any : 'scoped'
390
390
  }
391
- if (vm.$slots[name]) return 'normal'
392
- if (vm.$scopedSlots[name]) return 'scoped'
391
+ if (vm.$slots.hasOwnProperty(name)) return 'normal'
392
+ if (vm.$scopedSlots.hasOwnProperty(name)) return 'scoped'
393
393
  }
394
394
 
395
395
  export function debounce (fn: Function, delay: number) {
@@ -419,9 +419,9 @@ export function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {
419
419
  }
420
420
 
421
421
  export function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {
422
- if (vm.$scopedSlots[name]) {
422
+ if (vm.$scopedSlots.hasOwnProperty(name)) {
423
423
  return vm.$scopedSlots[name]!(data instanceof Function ? data() : data)
424
- } else if (vm.$slots[name] && (!data || optional)) {
424
+ } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {
425
425
  return vm.$slots[name]
426
426
  }
427
427
  return undefined
package/CHANGELOG.md DELETED
@@ -1,45 +0,0 @@
1
- # [](https://github.com/vuetifyjs/vuetify/compare/v2.6.0...v) (2021-11-15)
2
-
3
-
4
-
5
- # [2.6.0](https://github.com/vuetifyjs/vuetify/compare/v2.5.14...v2.6.0) (2021-11-15)
6
-
7
-
8
- ### Bug Fixes
9
-
10
- * **VOtpInput:** support string length ([6bc122c](https://github.com/vuetifyjs/vuetify/commit/6bc122cbcca59dc2f6d9cd1816a2797505e52ed4))
11
-
12
-
13
- ### Features
14
-
15
- * **styles:** add $spacers-steps sass variable ([#14367](https://github.com/vuetifyjs/vuetify/issues/14367)) ([60d3e54](https://github.com/vuetifyjs/vuetify/commit/60d3e54be5cfd9dd810c9bd756c8a377a3c7a450)), closes [#12341](https://github.com/vuetifyjs/vuetify/issues/12341)
16
- * **VTreeview:** add disablePerNode prop ([#14297](https://github.com/vuetifyjs/vuetify/issues/14297)) ([f37438b](https://github.com/vuetifyjs/vuetify/commit/f37438bb30f1c1a96c08be9455151245a4be44d0)), closes [#14282](https://github.com/vuetifyjs/vuetify/issues/14282)
17
-
18
-
19
-
20
- # [2.6.0-beta.0](https://github.com/vuetifyjs/vuetify/compare/v2.5.10...v2.6.0-beta.0) (2021-10-12)
21
-
22
-
23
- ### Bug Fixes
24
-
25
- * **VAutocomplete:** remove selected item when input is cleared ([#13854](https://github.com/vuetifyjs/vuetify/issues/13854)) ([57d3469](https://github.com/vuetifyjs/vuetify/commit/57d3469a95daf0b7c7f44d5abb6038d543b94cee)), closes [#5917](https://github.com/vuetifyjs/vuetify/issues/5917)
26
- * **VDialog:** default to auto width ([6ac8007](https://github.com/vuetifyjs/vuetify/commit/6ac800736f87f2d7a2186d04d93fa8772038a041)), closes [#6919](https://github.com/vuetifyjs/vuetify/issues/6919)
27
-
28
-
29
- ### Features
30
-
31
- * **locale:** add danish locale ([#13733](https://github.com/vuetifyjs/vuetify/issues/13733)) ([0ec9d53](https://github.com/vuetifyjs/vuetify/commit/0ec9d53cdc0703b731a9943dd44d4b0ea1d7da1a))
32
- * **VCalendar:** pass native event to v-calendar click:* events ([#13760](https://github.com/vuetifyjs/vuetify/issues/13760)) ([4429e6e](https://github.com/vuetifyjs/vuetify/commit/4429e6e722b7502fe6aae272e6ee17a51d530032)), closes [#13142](https://github.com/vuetifyjs/vuetify/issues/13142)
33
- * **VCalendar:** support horizontal scroll ([#13164](https://github.com/vuetifyjs/vuetify/issues/13164)) ([f55ee97](https://github.com/vuetifyjs/vuetify/commit/f55ee97dc5917b9f1ba4ea134ea0c1e1454b4e9c)), closes [#13070](https://github.com/vuetifyjs/vuetify/issues/13070)
34
- * **VDataTable:** allow item.* slots to return a <td> or <th> element ([a4b8856](https://github.com/vuetifyjs/vuetify/commit/a4b8856d31ce62699f2801ece0597846462ea429)), closes [#8474](https://github.com/vuetifyjs/vuetify/issues/8474) [#12791](https://github.com/vuetifyjs/vuetify/issues/12791)
35
- * **VDatePicker:** add date range first & last classes ([#12855](https://github.com/vuetifyjs/vuetify/issues/12855)) ([988558b](https://github.com/vuetifyjs/vuetify/commit/988558bd1b8f420fecfdca7d2dabc580900d9561)), closes [#12851](https://github.com/vuetifyjs/vuetify/issues/12851) [#12851](https://github.com/vuetifyjs/vuetify/issues/12851) [#12851](https://github.com/vuetifyjs/vuetify/issues/12851) [#12851](https://github.com/vuetifyjs/vuetify/issues/12851)
36
- * **VInput:** add hide-spin-buttons prop ([#13682](https://github.com/vuetifyjs/vuetify/issues/13682)) ([bc2d6cb](https://github.com/vuetifyjs/vuetify/commit/bc2d6cbf2bcc778152e0aa93106a986d3b072adf)), closes [#6157](https://github.com/vuetifyjs/vuetify/issues/6157)
37
- * **VOtpInput:** create new v-otp-input component ([#12761](https://github.com/vuetifyjs/vuetify/issues/12761)) ([e3aeae7](https://github.com/vuetifyjs/vuetify/commit/e3aeae7e0e152dc1878006c137f944a3b9f5d68b)), closes [#11425](https://github.com/vuetifyjs/vuetify/issues/11425)
38
- * **VSlideGroup:** add overscroll friction ([3796587](https://github.com/vuetifyjs/vuetify/commit/3796587eaa9259acb477dab6d9e250ea49f79bb3))
39
- * **VSnackbar:** only add app padding if app prop is true ([28e9e9d](https://github.com/vuetifyjs/vuetify/commit/28e9e9d2bf6f8d9b24dfc954501f0458bb29c3b7)), closes [#11758](https://github.com/vuetifyjs/vuetify/issues/11758)
40
- * **VTooltip:** add $tooltip-opacity sass variable ([bfdd32c](https://github.com/vuetifyjs/vuetify/commit/bfdd32ca133c9a2b41926545cdf8c0526dcbd4a2)), closes [#11184](https://github.com/vuetifyjs/vuetify/issues/11184)
41
- * **VTreeview:** add disabled prop ([de0820c](https://github.com/vuetifyjs/vuetify/commit/de0820c66bb55fa3a695e7db8e8eec706ae209cc)), closes [#5918](https://github.com/vuetifyjs/vuetify/issues/5918)
42
- * add tag attribute to createSimpleFunctional ([682936b](https://github.com/vuetifyjs/vuetify/commit/682936b8b4aaa9485c5efbdc35a53a3097a2580a)), closes [#10026](https://github.com/vuetifyjs/vuetify/issues/10026) [#5469](https://github.com/vuetifyjs/vuetify/issues/5469)
43
-
44
-
45
-
@@ -1,6 +0,0 @@
1
- @import '../../styles/styles.sass';
2
-
3
- $ripple-animation-transition-in: transform .25s map-get($transition, 'fast-in-slow-out'),
4
- opacity .1s map-get($transition, 'fast-in-slow-out') !default;
5
- $ripple-animation-transition-out: opacity .3s map-get($transition, 'fast-in-slow-out') !default;
6
- $ripple-animation-visible-opacity: .15 !default;
package/types/.npmignore DELETED
@@ -1,2 +0,0 @@
1
- # Ignore type tests
2
- test