vuetify 2.2.11 → 2.2.15

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 (116) hide show
  1. package/dist/json/attributes.json +12 -4
  2. package/dist/json/tags.json +2 -0
  3. package/dist/json/web-types.json +36 -13
  4. package/dist/vuetify.css +19 -8
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +123 -78
  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/VAutocomplete/VAutocomplete.js +4 -4
  11. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  12. package/es5/components/VChip/VChip.js +2 -1
  13. package/es5/components/VChip/VChip.js.map +1 -1
  14. package/es5/components/VData/VData.js +6 -1
  15. package/es5/components/VData/VData.js.map +1 -1
  16. package/es5/components/VDataIterator/VDataIterator.js +16 -3
  17. package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
  18. package/es5/components/VDataTable/VDataTable.js +3 -13
  19. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  20. package/es5/components/VDialog/VDialog.js +33 -27
  21. package/es5/components/VDialog/VDialog.js.map +1 -1
  22. package/es5/components/VIcon/VIcon.js +2 -2
  23. package/es5/components/VIcon/VIcon.js.map +1 -1
  24. package/es5/components/VList/VList.js +1 -1
  25. package/es5/components/VList/VList.js.map +1 -1
  26. package/es5/components/VMenu/VMenu.js +13 -11
  27. package/es5/components/VMenu/VMenu.js.map +1 -1
  28. package/es5/components/VRangeSlider/VRangeSlider.js +1 -0
  29. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  30. package/es5/components/VSelect/VSelect.js +4 -3
  31. package/es5/components/VSelect/VSelect.js.map +1 -1
  32. package/es5/components/VTimePicker/VTimePicker.js +2 -1
  33. package/es5/components/VTimePicker/VTimePicker.js.map +1 -1
  34. package/es5/components/VTimePicker/VTimePickerTitle.js +6 -2
  35. package/es5/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  36. package/es5/components/VTooltip/VTooltip.js +6 -4
  37. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  38. package/es5/framework.js +1 -1
  39. package/es5/mixins/menuable/index.js +11 -4
  40. package/es5/mixins/menuable/index.js.map +1 -1
  41. package/es5/services/icons/presets/fa4.js +1 -1
  42. package/es5/services/icons/presets/fa4.js.map +1 -1
  43. package/lib/components/VAutocomplete/VAutocomplete.js +4 -4
  44. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  45. package/lib/components/VChip/VChip.js +2 -1
  46. package/lib/components/VChip/VChip.js.map +1 -1
  47. package/lib/components/VData/VData.js +7 -1
  48. package/lib/components/VData/VData.js.map +1 -1
  49. package/lib/components/VDataIterator/VDataIterator.js +16 -4
  50. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  51. package/lib/components/VDataTable/VDataTable.js +3 -14
  52. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  53. package/lib/components/VDialog/VDialog.js +31 -26
  54. package/lib/components/VDialog/VDialog.js.map +1 -1
  55. package/lib/components/VIcon/VIcon.js +2 -2
  56. package/lib/components/VIcon/VIcon.js.map +1 -1
  57. package/lib/components/VList/VList.js +1 -1
  58. package/lib/components/VList/VList.js.map +1 -1
  59. package/lib/components/VMenu/VMenu.js +9 -9
  60. package/lib/components/VMenu/VMenu.js.map +1 -1
  61. package/lib/components/VRangeSlider/VRangeSlider.js +1 -0
  62. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  63. package/lib/components/VSelect/VSelect.js +4 -3
  64. package/lib/components/VSelect/VSelect.js.map +1 -1
  65. package/lib/components/VTimePicker/VTimePicker.js +2 -1
  66. package/lib/components/VTimePicker/VTimePicker.js.map +1 -1
  67. package/lib/components/VTimePicker/VTimePickerTitle.js +6 -2
  68. package/lib/components/VTimePicker/VTimePickerTitle.js.map +1 -1
  69. package/lib/components/VTooltip/VTooltip.js +2 -2
  70. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  71. package/lib/framework.js +1 -1
  72. package/lib/mixins/menuable/index.js +7 -2
  73. package/lib/mixins/menuable/index.js.map +1 -1
  74. package/lib/services/icons/presets/fa4.js +1 -1
  75. package/lib/services/icons/presets/fa4.js.map +1 -1
  76. package/package.json +2 -2
  77. package/src/components/VAutocomplete/VAutocomplete.ts +4 -4
  78. package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +11 -0
  79. package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +1 -1
  80. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +34 -0
  81. package/src/components/VChip/VChip.ts +1 -0
  82. package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +1 -0
  83. package/src/components/VData/VData.ts +6 -1
  84. package/src/components/VDataIterator/VDataIterator.ts +14 -3
  85. package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +26 -0
  86. package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +8 -8
  87. package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +8 -8
  88. package/src/components/VDataTable/VDataTable.ts +3 -14
  89. package/src/components/VDataTable/VSimpleTable.sass +12 -6
  90. package/src/components/VDataTable/__tests__/VDataTable.spec.ts +119 -0
  91. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +620 -53
  92. package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +15 -15
  93. package/src/components/VDialog/VDialog.ts +29 -25
  94. package/src/components/VIcon/VIcon.ts +2 -2
  95. package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +2 -2
  96. package/src/components/VList/VList.ts +1 -1
  97. package/src/components/VMenu/VMenu.ts +11 -13
  98. package/src/components/VMenu/__tests__/VMenu.spec.ts +17 -0
  99. package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +18 -0
  100. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +0 -66
  101. package/src/components/VRangeSlider/VRangeSlider.ts +1 -0
  102. package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +8 -0
  103. package/src/components/VRangeSlider/__tests__/__snapshots__/VRangeSlider.spec.ts.snap +4 -4
  104. package/src/components/VSelect/VSelect.ts +4 -3
  105. package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +8 -8
  106. package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
  107. package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +2 -2
  108. package/src/components/VSlideGroup/VSlideGroup.sass +2 -2
  109. package/src/components/VTimePicker/VTimePicker.ts +2 -1
  110. package/src/components/VTimePicker/VTimePickerTitle.sass +5 -0
  111. package/src/components/VTimePicker/VTimePickerTitle.ts +6 -2
  112. package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +94 -14
  113. package/src/components/VTooltip/VTooltip.ts +2 -2
  114. package/src/mixins/menuable/index.ts +5 -2
  115. package/src/services/icons/__tests__/__snapshots__/icons.spec.ts.snap +1 -1
  116. package/src/services/icons/presets/fa4.ts +1 -1
@@ -587,18 +587,18 @@ exports[`VDataTableHeader.ts mobile should render with data-table-select header
587
587
  <div role="button"
588
588
  aria-haspopup="listbox"
589
589
  aria-expanded="false"
590
- aria-owns="list-74"
590
+ aria-owns="list-69"
591
591
  class="v-input__slot"
592
592
  >
593
593
  <div class="v-select__slot">
594
- <label for="input-74"
594
+ <label for="input-69"
595
595
  class="v-label theme--light"
596
596
  style="left: 0px; position: absolute;"
597
597
  >
598
598
  Sort by
599
599
  </label>
600
600
  <div class="v-select__selections">
601
- <input id="input-74"
601
+ <input id="input-69"
602
602
  readonly="readonly"
603
603
  type="text"
604
604
  aria-readonly="false"
@@ -637,11 +637,11 @@ exports[`VDataTableHeader.ts mobile should work with multiSort 1`] = `
637
637
  <div role="button"
638
638
  aria-haspopup="listbox"
639
639
  aria-expanded="false"
640
- aria-owns="list-49"
640
+ aria-owns="list-47"
641
641
  class="v-input__slot"
642
642
  >
643
643
  <div class="v-select__slot">
644
- <label for="input-49"
644
+ <label for="input-47"
645
645
  class="v-label v-label--active theme--light"
646
646
  style="left: 0px; position: absolute;"
647
647
  >
@@ -661,7 +661,7 @@ exports[`VDataTableHeader.ts mobile should work with multiSort 1`] = `
661
661
  </div>
662
662
  </span>
663
663
  </span>
664
- <input id="input-49"
664
+ <input id="input-47"
665
665
  readonly="readonly"
666
666
  type="text"
667
667
  aria-readonly="false"
@@ -702,18 +702,18 @@ exports[`VDataTableHeader.ts mobile should work with showGroupBy 1`] = `
702
702
  <div role="button"
703
703
  aria-haspopup="listbox"
704
704
  aria-expanded="false"
705
- aria-owns="list-43"
705
+ aria-owns="list-42"
706
706
  class="v-input__slot"
707
707
  >
708
708
  <div class="v-select__slot">
709
- <label for="input-43"
709
+ <label for="input-42"
710
710
  class="v-label theme--light"
711
711
  style="left: 0px; position: absolute;"
712
712
  >
713
713
  Sort by
714
714
  </label>
715
715
  <div class="v-select__selections">
716
- <input id="input-43"
716
+ <input id="input-42"
717
717
  readonly="readonly"
718
718
  type="text"
719
719
  aria-readonly="false"
@@ -752,11 +752,11 @@ exports[`VDataTableHeader.ts mobile should work with sortBy correctly 1`] = `
752
752
  <div role="button"
753
753
  aria-haspopup="listbox"
754
754
  aria-expanded="false"
755
- aria-owns="list-57"
755
+ aria-owns="list-54"
756
756
  class="v-input__slot"
757
757
  >
758
758
  <div class="v-select__slot">
759
- <label for="input-57"
759
+ <label for="input-54"
760
760
  class="v-label v-label--active theme--light"
761
761
  style="left: 0px; position: absolute;"
762
762
  >
@@ -776,7 +776,7 @@ exports[`VDataTableHeader.ts mobile should work with sortBy correctly 1`] = `
776
776
  </div>
777
777
  </span>
778
778
  </span>
779
- <input id="input-57"
779
+ <input id="input-54"
780
780
  readonly="readonly"
781
781
  type="text"
782
782
  aria-readonly="false"
@@ -817,11 +817,11 @@ exports[`VDataTableHeader.ts mobile should work with sortDesc correctly 1`] = `
817
817
  <div role="button"
818
818
  aria-haspopup="listbox"
819
819
  aria-expanded="false"
820
- aria-owns="list-65"
820
+ aria-owns="list-61"
821
821
  class="v-input__slot"
822
822
  >
823
823
  <div class="v-select__slot">
824
- <label for="input-65"
824
+ <label for="input-61"
825
825
  class="v-label v-label--active theme--light"
826
826
  style="left: 0px; position: absolute;"
827
827
  >
@@ -841,7 +841,7 @@ exports[`VDataTableHeader.ts mobile should work with sortDesc correctly 1`] = `
841
841
  </div>
842
842
  </span>
843
843
  </span>
844
- <input id="input-65"
844
+ <input id="input-61"
845
845
  readonly="readonly"
846
846
  type="text"
847
847
  aria-readonly="false"
@@ -238,8 +238,31 @@ export default baseMixins.extend({
238
238
  focusable.length && (focusable[0] as HTMLElement).focus()
239
239
  }
240
240
  },
241
+ genContent () {
242
+ return this.showLazyContent(() => [
243
+ this.$createElement(VThemeProvider, {
244
+ props: {
245
+ root: true,
246
+ light: this.light,
247
+ dark: this.dark,
248
+ },
249
+ }, [
250
+ this.$createElement('div', {
251
+ class: this.contentClasses,
252
+ attrs: {
253
+ role: 'document',
254
+ tabindex: this.isActive ? 0 : undefined,
255
+ ...this.getScopeIdAttrs(),
256
+ },
257
+ on: { keydown: this.onKeydown },
258
+ style: { zIndex: this.activeZIndex },
259
+ ref: 'content',
260
+ }, [this.genTransition()]),
261
+ ]),
262
+ ])
263
+ },
241
264
  genTransition () {
242
- const content = this.genContent()
265
+ const content = this.genInnerContent()
243
266
 
244
267
  if (!this.transition) return content
245
268
 
@@ -247,10 +270,11 @@ export default baseMixins.extend({
247
270
  props: {
248
271
  name: this.transition,
249
272
  origin: this.origin,
273
+ appear: true,
250
274
  },
251
- }, this.showLazyContent(() => [content]))
275
+ }, [content])
252
276
  },
253
- genContent () {
277
+ genInnerContent () {
254
278
  const data = {
255
279
  class: this.classes,
256
280
  ref: 'dialog',
@@ -275,27 +299,7 @@ export default baseMixins.extend({
275
299
  }
276
300
  }
277
301
 
278
- return this.$createElement('div', {
279
- class: this.contentClasses,
280
- attrs: {
281
- role: 'document',
282
- tabindex: this.isActive ? 0 : undefined,
283
- ...this.getScopeIdAttrs(),
284
- },
285
- on: { keydown: this.onKeydown },
286
- style: { zIndex: this.activeZIndex },
287
- ref: 'content',
288
- }, [
289
- this.$createElement('div', data, [
290
- this.$createElement(VThemeProvider, {
291
- props: {
292
- root: true,
293
- light: this.light,
294
- dark: this.dark,
295
- },
296
- }, this.getContentSlot()),
297
- ]),
298
- ])
302
+ return this.$createElement('div', data, this.getContentSlot())
299
303
  },
300
304
  },
301
305
 
@@ -311,7 +315,7 @@ export default baseMixins.extend({
311
315
  attrs: { role: 'dialog' },
312
316
  }, [
313
317
  this.genActivator(),
314
- this.genTransition(),
318
+ this.genContent(),
315
319
  ])
316
320
  },
317
321
  })
@@ -157,8 +157,8 @@ const VIcon = mixins(
157
157
  attrs: {
158
158
  xmlns: 'http://www.w3.org/2000/svg',
159
159
  viewBox: '0 0 24 24',
160
- height: fontSize || '32',
161
- width: fontSize || '32',
160
+ height: fontSize || '24',
161
+ width: fontSize || '24',
162
162
  role: 'img',
163
163
  'aria-hidden': true,
164
164
  },
@@ -6,8 +6,8 @@ exports[`VIcon for component icon should render an svg icon 1`] = `
6
6
  >
7
7
  <svg xmlns="http://www.w3.org/2000/svg"
8
8
  viewbox="0 0 24 24"
9
- height="32"
10
- width="32"
9
+ height="24"
10
+ width="24"
11
11
  role="img"
12
12
  aria-hidden="true"
13
13
  >
@@ -102,6 +102,6 @@ export default VSheet.extend<options>().extend({
102
102
  },
103
103
  }
104
104
 
105
- return h('div', this.setBackgroundColor(this.color, data), [this.$slots.default])
105
+ return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])
106
106
  },
107
107
  })
@@ -300,7 +300,7 @@ export default baseMixins.extend({
300
300
  props: {
301
301
  name: this.transition,
302
302
  },
303
- }, this.showLazyContent(() => [content]))
303
+ }, [content])
304
304
  },
305
305
  genDirectives (): VNodeDirective[] {
306
306
  const directives: VNodeDirective[] = [{
@@ -360,17 +360,7 @@ export default baseMixins.extend({
360
360
  options.on.mouseleave = this.mouseLeaveHandler
361
361
  }
362
362
 
363
- return this.$createElement(
364
- 'div',
365
- options,
366
- [this.$createElement(VThemeProvider, {
367
- props: {
368
- root: true,
369
- light: this.light,
370
- dark: this.dark,
371
- },
372
- }, this.getContentSlot())]
373
- )
363
+ return this.$createElement('div', options, this.getContentSlot())
374
364
  },
375
365
  getTiles () {
376
366
  if (!this.$refs.content) return
@@ -479,7 +469,15 @@ export default baseMixins.extend({
479
469
 
480
470
  return h('div', data, [
481
471
  !this.activator && this.genActivator(),
482
- this.genTransition(),
472
+ this.showLazyContent(() => [
473
+ this.$createElement(VThemeProvider, {
474
+ props: {
475
+ root: true,
476
+ light: this.light,
477
+ dark: this.dark,
478
+ },
479
+ }, [this.genTransition()]),
480
+ ]),
483
481
  ])
484
482
  },
485
483
  })
@@ -55,6 +55,23 @@ describe('VMenu.ts', () => {
55
55
  expect('Unable to locate target [data-app]').toHaveBeenTipped()
56
56
  })
57
57
 
58
+ it('should render multiple content nodes', async () => {
59
+ const wrapper = mountFunction({
60
+ propsData: {
61
+ eager: true,
62
+ },
63
+ scopedSlots: {
64
+ activator: '<button v-on="props.on"></button>',
65
+ },
66
+ slots: {
67
+ default: '<span>foo</span><span>bar</span>',
68
+ },
69
+ })
70
+
71
+ expect(wrapper.html()).toMatchSnapshot()
72
+ expect('Unable to locate target [data-app]').toHaveBeenTipped()
73
+ })
74
+
58
75
  it('should round dimensions', async () => {
59
76
  const wrapper = mountFunction({
60
77
  propsData: {
@@ -1,5 +1,23 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
+ exports[`VMenu.ts should render multiple content nodes 1`] = `
4
+ <div class="v-menu">
5
+ <button>
6
+ </button>
7
+ <div role="menu"
8
+ class="v-menu__content theme--light "
9
+ style="max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 0; display: none;"
10
+ >
11
+ <span>
12
+ foo
13
+ </span>
14
+ <span>
15
+ bar
16
+ </span>
17
+ </div>
18
+ </div>
19
+ `;
20
+
3
21
  exports[`VMenu.ts should round dimensions 1`] = `"max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 0; display: none;"`;
4
22
 
5
23
  exports[`VMenu.ts should update position dynamically 1`] = `"max-height: auto; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 8; display: none;"`;
@@ -33,39 +33,6 @@ exports[`VOverflowBtn.js should use default autocomplete selections 1`] = `
33
33
  >
34
34
  </div>
35
35
  <div class="v-menu">
36
- <div class="v-menu__content theme--light v-autocomplete__content"
37
- style="max-height: 304px; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 0; display: none;"
38
- >
39
- <div role="listbox"
40
- tabindex="-1"
41
- class="v-list v-select-list v-sheet v-sheet--tile theme--light theme--light"
42
- id="list-1"
43
- >
44
- <div tabindex="0"
45
- aria-selected="true"
46
- id="list-item-5-0"
47
- role="option"
48
- class="v-list-item primary--text v-list-item--active v-list-item--link theme--light"
49
- >
50
- <div class="v-list-item__action">
51
- <div class="v-simple-checkbox">
52
- <div class="v-input--selection-controls__ripple primary--text">
53
- </div>
54
- <i aria-hidden="true"
55
- class="v-icon notranslate material-icons theme--light primary--text"
56
- >
57
- $checkboxOn
58
- </i>
59
- </div>
60
- </div>
61
- <div class="v-list-item__content">
62
- <div class="v-list-item__title">
63
- foo
64
- </div>
65
- </div>
66
- </div>
67
- </div>
68
- </div>
69
36
  </div>
70
37
  </div>
71
38
  <div class="v-text-field__details">
@@ -114,39 +81,6 @@ exports[`VOverflowBtn.js should use default autocomplete selections 2`] = `
114
81
  >
115
82
  </div>
116
83
  <div class="v-menu">
117
- <div class="v-menu__content theme--light v-autocomplete__content"
118
- style="max-height: 304px; min-width: 0px; max-width: auto; top: 12px; left: 0px; transform-origin: top left; z-index: 0; display: none;"
119
- >
120
- <div role="listbox"
121
- tabindex="-1"
122
- class="v-list v-select-list v-sheet v-sheet--tile theme--light theme--light"
123
- id="list-1"
124
- >
125
- <div tabindex="0"
126
- aria-selected="true"
127
- id="list-item-5-0"
128
- role="option"
129
- class="v-list-item primary--text v-list-item--active v-list-item--link theme--light"
130
- >
131
- <div class="v-list-item__action">
132
- <div class="v-simple-checkbox">
133
- <div class="v-input--selection-controls__ripple primary--text">
134
- </div>
135
- <i aria-hidden="true"
136
- class="v-icon notranslate material-icons theme--light primary--text"
137
- >
138
- $checkboxOn
139
- </i>
140
- </div>
141
- </div>
142
- <div class="v-list-item__content">
143
- <div class="v-list-item__title">
144
- foo
145
- </div>
146
- </div>
147
- </div>
148
- </div>
149
- </div>
150
84
  </div>
151
85
  </div>
152
86
  <div class="v-text-field__details">
@@ -107,6 +107,7 @@ export default VSlider.extend({
107
107
  input.data = input.data || {}
108
108
  input.data.attrs = input.data.attrs || {}
109
109
  input.data.attrs.value = this.internalValue[i]
110
+ input.data.attrs.id = `input-${i ? 'max' : 'min'}-${this._uid}`
110
111
 
111
112
  return input
112
113
  })
@@ -220,4 +220,12 @@ describe('VRangeSlider.ts', () => {
220
220
  expect(wrapper.vm.internalValue).toEqual([0, 0])
221
221
  })
222
222
  })
223
+
224
+ // https://github.com/vuetifyjs/vuetify/issues/6843
225
+ it('should be uniq id', async () => {
226
+ const wrapper = mountFunction()
227
+ const [min, max] = wrapper.vm.genInput()
228
+
229
+ expect(min.data.attrs.id).not.toEqual(max.data.attrs.id)
230
+ })
223
231
  })
@@ -6,12 +6,12 @@ exports[`VRangeSlider.ts should render a vertical slider 1`] = `
6
6
  <div class="v-input__slot">
7
7
  <div class="v-slider v-slider--vertical theme--light">
8
8
  <input value="0"
9
- id="input-29"
9
+ id="input-min-29"
10
10
  readonly="readonly"
11
11
  tabindex="-1"
12
12
  >
13
13
  <input value="0"
14
- id="input-29"
14
+ id="input-max-29"
15
15
  readonly="readonly"
16
16
  tabindex="-1"
17
17
  >
@@ -68,13 +68,13 @@ exports[`VRangeSlider.ts should render disabled slider 1`] = `
68
68
  <div class="v-input__slot">
69
69
  <div class="v-slider v-slider--horizontal v-slider--disabled theme--light">
70
70
  <input value="0"
71
- id="input-33"
71
+ id="input-min-33"
72
72
  disabled="disabled"
73
73
  readonly="readonly"
74
74
  tabindex="-1"
75
75
  >
76
76
  <input value="0"
77
- id="input-33"
77
+ id="input-max-33"
78
78
  disabled="disabled"
79
79
  readonly="readonly"
80
80
  tabindex="-1"
@@ -310,8 +310,9 @@ export default baseMixins.extend<options>().extend({
310
310
  !this._isDestroyed &&
311
311
 
312
312
  // Click originates from outside the menu content
313
- this.getContent() &&
314
- !this.getContent().contains(e.target as Node) &&
313
+ // Multiple selects don't close when an item is clicked
314
+ (!this.getContent() ||
315
+ !this.getContent().contains(e.target as Node)) &&
315
316
 
316
317
  // Click originates from outside the element
317
318
  this.$el &&
@@ -445,7 +446,7 @@ export default baseMixins.extend<options>().extend({
445
446
  readonly: true,
446
447
  type: 'text',
447
448
  'aria-readonly': String(this.readonly),
448
- 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id', undefined),
449
+ 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),
449
450
  autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),
450
451
  },
451
452
  on: { keypress: this.onKeyPress },
@@ -220,12 +220,12 @@ exports[`VSelect.ts should render v-select correctly when not using scope slot 1
220
220
  <div role="button"
221
221
  aria-haspopup="listbox"
222
222
  aria-expanded="false"
223
- aria-owns="list-35"
223
+ aria-owns="list-32"
224
224
  class="v-input__slot"
225
225
  >
226
226
  <div class="v-select__slot">
227
227
  <div class="v-select__selections">
228
- <input id="input-35"
228
+ <input id="input-32"
229
229
  readonly="readonly"
230
230
  type="text"
231
231
  aria-readonly="false"
@@ -265,12 +265,12 @@ exports[`VSelect.ts should render v-select correctly when not using v-list-item
265
265
  <div role="button"
266
266
  aria-haspopup="listbox"
267
267
  aria-expanded="false"
268
- aria-owns="list-28"
268
+ aria-owns="list-26"
269
269
  class="v-input__slot"
270
270
  >
271
271
  <div class="v-select__slot">
272
272
  <div class="v-select__selections">
273
- <input id="input-28"
273
+ <input id="input-26"
274
274
  readonly="readonly"
275
275
  type="text"
276
276
  aria-readonly="false"
@@ -310,12 +310,12 @@ exports[`VSelect.ts should render v-select correctly when using v-list-item in i
310
310
  <div role="button"
311
311
  aria-haspopup="listbox"
312
312
  aria-expanded="false"
313
- aria-owns="list-20"
313
+ aria-owns="list-19"
314
314
  class="v-input__slot"
315
315
  >
316
316
  <div class="v-select__slot">
317
317
  <div class="v-select__selections">
318
- <input id="input-20"
318
+ <input id="input-19"
319
319
  readonly="readonly"
320
320
  type="text"
321
321
  aria-readonly="false"
@@ -353,11 +353,11 @@ exports[`VSelect.ts should use slotted no-data 1`] = `
353
353
  <div role="listbox"
354
354
  tabindex="-1"
355
355
  class="v-list v-select-list v-sheet v-sheet--tile theme--light theme--light"
356
- id="list-147"
356
+ id="list-134"
357
357
  >
358
358
  <div tabindex="0"
359
359
  aria-selected="false"
360
- id="list-item-152-0"
360
+ id="list-item-139-0"
361
361
  role="option"
362
362
  class="v-list-item v-list-item--link theme--light"
363
363
  >
@@ -6,7 +6,7 @@ exports[`VSelect.ts should be clearable with prop, dirty and multi select 1`] =
6
6
  <div role="button"
7
7
  aria-haspopup="listbox"
8
8
  aria-expanded="false"
9
- aria-owns="list-104"
9
+ aria-owns="list-100"
10
10
  class="v-input__slot"
11
11
  >
12
12
  <div class="v-select__slot">
@@ -14,7 +14,7 @@ exports[`VSelect.ts should be clearable with prop, dirty and multi select 1`] =
14
14
  <div class="v-select__selection v-select__selection--comma">
15
15
  1
16
16
  </div>
17
- <input id="input-104"
17
+ <input id="input-100"
18
18
  readonly="readonly"
19
19
  type="text"
20
20
  aria-readonly="false"
@@ -66,7 +66,7 @@ exports[`VSelect.ts should be clearable with prop, dirty and single select 1`] =
66
66
  <div role="button"
67
67
  aria-haspopup="listbox"
68
68
  aria-expanded="false"
69
- aria-owns="list-96"
69
+ aria-owns="list-93"
70
70
  class="v-input__slot"
71
71
  >
72
72
  <div class="v-select__slot">
@@ -74,7 +74,7 @@ exports[`VSelect.ts should be clearable with prop, dirty and single select 1`] =
74
74
  <div class="v-select__selection v-select__selection--comma">
75
75
  1
76
76
  </div>
77
- <input id="input-96"
77
+ <input id="input-93"
78
78
  readonly="readonly"
79
79
  type="text"
80
80
  aria-readonly="false"
@@ -6,7 +6,7 @@ exports[`VSelect.ts should add color to selected index 1`] = `
6
6
  <div role="button"
7
7
  aria-haspopup="listbox"
8
8
  aria-expanded="false"
9
- aria-owns="list-56"
9
+ aria-owns="list-50"
10
10
  class="v-input__slot"
11
11
  >
12
12
  <div class="v-select__slot">
@@ -14,7 +14,7 @@ exports[`VSelect.ts should add color to selected index 1`] = `
14
14
  <div class="v-select__selection v-select__selection--comma primary--text">
15
15
  foo
16
16
  </div>
17
- <input id="input-56"
17
+ <input id="input-50"
18
18
  readonly="readonly"
19
19
  type="text"
20
20
  aria-readonly="false"
@@ -6,8 +6,8 @@
6
6
  display: flex
7
7
 
8
8
  &:not(.v-slide-group--has-affixes)
9
- .v-slide-group__prev,
10
- .v-slide-group__next
9
+ > .v-slide-group__prev,
10
+ > .v-slide-group__next
11
11
  display: none
12
12
 
13
13
  // Needed increased specificity
@@ -338,7 +338,8 @@ export default mixins(
338
338
  genPickerTitle () {
339
339
  return this.$createElement(VTimePickerTitle, {
340
340
  props: {
341
- ampm: this.ampmInTitle && this.isAmPm,
341
+ ampm: this.isAmPm,
342
+ ampmReadonly: this.isAmPm && !this.ampmInTitle,
342
343
  disabled: this.disabled,
343
344
  hour: this.inputHour,
344
345
  minute: this.inputMinute,
@@ -1,4 +1,5 @@
1
1
  @import './_variables.scss'
2
+ @import '../VPicker/_variables.scss'
2
3
 
3
4
  .v-time-picker-title
4
5
  color: $time-picker-title-color
@@ -34,6 +35,10 @@
34
35
  div:only-child
35
36
  flex-direction: row
36
37
 
38
+ &--readonly
39
+ .v-picker__title__btn.v-picker__title__btn--active
40
+ opacity: $picker-inactive-btn-opacity
41
+
37
42
  .v-picker__title--landscape
38
43
  .v-time-picker-title
39
44
  flex-direction: column
@@ -18,6 +18,7 @@ export default mixins(
18
18
 
19
19
  props: {
20
20
  ampm: Boolean,
21
+ ampmReadonly: Boolean,
21
22
  disabled: Boolean,
22
23
  hour: Number,
23
24
  minute: Number,
@@ -58,9 +59,12 @@ export default mixins(
58
59
  genAmPm () {
59
60
  return this.$createElement('div', {
60
61
  staticClass: 'v-time-picker-title__ampm',
62
+ class: {
63
+ 'v-time-picker-title__ampm--readonly': this.ampmReadonly,
64
+ },
61
65
  }, [
62
- this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),
63
- this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),
66
+ (!this.ampmReadonly || this.period === 'am') ? this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly) : null,
67
+ (!this.ampmReadonly || this.period === 'pm') ? this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly) : null,
64
68
  ])
65
69
  },
66
70
  },