vuetify 2.6.6 → 2.6.9

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 (245) hide show
  1. package/dist/json/web-types.json +21 -7
  2. package/dist/vuetify.css +50 -69
  3. package/dist/vuetify.css.map +1 -1
  4. package/dist/vuetify.js +442 -327
  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/VAutocomplete/VAutocomplete.js +3 -3
  9. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  10. package/es5/components/VBtn/VBtn.js +2 -2
  11. package/es5/components/VBtn/VBtn.js.map +1 -1
  12. package/es5/components/VCalendar/VCalendar.js +3 -0
  13. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  14. package/es5/components/VCalendar/VCalendarWeekly.js +15 -3
  15. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  16. package/es5/components/VCalendar/mixins/calendar-with-events.js +6 -5
  17. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  18. package/es5/components/VCalendar/mixins/mouse.js +18 -26
  19. package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
  20. package/es5/components/VCarousel/VCarousel.js +2 -1
  21. package/es5/components/VCarousel/VCarousel.js.map +1 -1
  22. package/es5/components/VCheckbox/VSimpleCheckbox.js +5 -5
  23. package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  24. package/es5/components/VCombobox/VCombobox.js +2 -2
  25. package/es5/components/VCombobox/VCombobox.js.map +1 -1
  26. package/es5/components/VDataIterator/VDataFooter.js +5 -2
  27. package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
  28. package/es5/components/VDataTable/Row.js +2 -2
  29. package/es5/components/VDataTable/Row.js.map +1 -1
  30. package/es5/components/VDataTable/VDataTable.js +54 -43
  31. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  32. package/es5/components/VDataTable/mixins/header.js +4 -3
  33. package/es5/components/VDataTable/mixins/header.js.map +1 -1
  34. package/es5/components/VDatePicker/VDatePicker.js +2 -1
  35. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  36. package/es5/components/VDialog/VDialog.js +20 -17
  37. package/es5/components/VDialog/VDialog.js.map +1 -1
  38. package/es5/components/VItemGroup/VItemGroup.js +4 -2
  39. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  40. package/es5/components/VList/VListItem.js +5 -3
  41. package/es5/components/VList/VListItem.js.map +1 -1
  42. package/es5/components/VMenu/VMenu.js +2 -2
  43. package/es5/components/VMenu/VMenu.js.map +1 -1
  44. package/es5/components/VOtpInput/VOtpInput.js +33 -64
  45. package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
  46. package/es5/components/VPagination/VPagination.js +1 -1
  47. package/es5/components/VPagination/VPagination.js.map +1 -1
  48. package/es5/components/VRadioGroup/VRadio.js +3 -1
  49. package/es5/components/VRadioGroup/VRadio.js.map +1 -1
  50. package/es5/components/VRangeSlider/VRangeSlider.js +4 -3
  51. package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
  52. package/es5/components/VSelect/VSelect.js +10 -6
  53. package/es5/components/VSelect/VSelect.js.map +1 -1
  54. package/es5/components/VSelect/VSelectList.js +2 -1
  55. package/es5/components/VSelect/VSelectList.js.map +1 -1
  56. package/es5/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
  57. package/es5/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  58. package/es5/components/VSlideGroup/VSlideGroup.js +43 -23
  59. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  60. package/es5/components/VSlider/VSlider.js +8 -11
  61. package/es5/components/VSlider/VSlider.js.map +1 -1
  62. package/es5/components/VSparkline/VSparkline.js +2 -1
  63. package/es5/components/VSparkline/VSparkline.js.map +1 -1
  64. package/es5/components/VTabs/VTabs.js +10 -0
  65. package/es5/components/VTabs/VTabs.js.map +1 -1
  66. package/es5/components/VTextField/VTextField.js +5 -5
  67. package/es5/components/VTextField/VTextField.js.map +1 -1
  68. package/es5/components/VTextarea/VTextarea.js +2 -2
  69. package/es5/components/VTextarea/VTextarea.js.map +1 -1
  70. package/es5/components/VTimePicker/VTimePicker.js.map +1 -1
  71. package/es5/components/VTreeview/VTreeview.js +5 -4
  72. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  73. package/es5/components/VTreeview/VTreeviewNode.js +2 -1
  74. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  75. package/es5/components/VWindow/VWindow.js +5 -6
  76. package/es5/components/VWindow/VWindow.js.map +1 -1
  77. package/es5/directives/click-outside/index.js +2 -2
  78. package/es5/directives/click-outside/index.js.map +1 -1
  79. package/es5/directives/intersect/index.js +5 -5
  80. package/es5/directives/intersect/index.js.map +1 -1
  81. package/es5/directives/mutate/index.js +2 -2
  82. package/es5/directives/mutate/index.js.map +1 -1
  83. package/es5/directives/resize/index.js +2 -2
  84. package/es5/directives/resize/index.js.map +1 -1
  85. package/es5/directives/scroll/index.js +2 -2
  86. package/es5/directives/scroll/index.js.map +1 -1
  87. package/es5/framework.js +1 -1
  88. package/es5/mixins/activatable/index.js +1 -3
  89. package/es5/mixins/activatable/index.js.map +1 -1
  90. package/es5/mixins/binds-attrs/index.js.map +1 -1
  91. package/es5/mixins/dependent/index.js.map +1 -1
  92. package/es5/mixins/detachable/index.js.map +1 -1
  93. package/es5/mixins/overlayable/index.js +1 -1
  94. package/es5/mixins/overlayable/index.js.map +1 -1
  95. package/es5/mixins/routable/index.js +2 -2
  96. package/es5/mixins/routable/index.js.map +1 -1
  97. package/es5/util/helpers.js +1 -1
  98. package/es5/util/helpers.js.map +1 -1
  99. package/lib/components/VAutocomplete/VAutocomplete.js +3 -3
  100. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  101. package/lib/components/VBtn/VBtn.js +2 -2
  102. package/lib/components/VBtn/VBtn.js.map +1 -1
  103. package/lib/components/VCalendar/VCalendar.js +3 -0
  104. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  105. package/lib/components/VCalendar/VCalendarWeekly.js +15 -3
  106. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  107. package/lib/components/VCalendar/mixins/calendar-with-events.js +4 -4
  108. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  109. package/lib/components/VCalendar/mixins/mouse.js +11 -32
  110. package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
  111. package/lib/components/VCarousel/VCarousel.js +2 -1
  112. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  113. package/lib/components/VCheckbox/VSimpleCheckbox.js +3 -2
  114. package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
  115. package/lib/components/VCombobox/VCombobox.js +2 -2
  116. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  117. package/lib/components/VDataIterator/VDataFooter.js +5 -2
  118. package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
  119. package/lib/components/VDataTable/Row.js +2 -2
  120. package/lib/components/VDataTable/Row.js.map +1 -1
  121. package/lib/components/VDataTable/VDataTable.js +15 -5
  122. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  123. package/lib/components/VDataTable/mixins/header.js +2 -2
  124. package/lib/components/VDataTable/mixins/header.js.map +1 -1
  125. package/lib/components/VDatePicker/VDatePicker.js +2 -1
  126. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  127. package/lib/components/VDialog/VDialog.js +18 -14
  128. package/lib/components/VDialog/VDialog.js.map +1 -1
  129. package/lib/components/VItemGroup/VItemGroup.js +2 -2
  130. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  131. package/lib/components/VList/VListItem.js +5 -3
  132. package/lib/components/VList/VListItem.js.map +1 -1
  133. package/lib/components/VMenu/VMenu.js +2 -2
  134. package/lib/components/VMenu/VMenu.js.map +1 -1
  135. package/lib/components/VOtpInput/VOtpInput.js +32 -61
  136. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  137. package/lib/components/VPagination/VPagination.js +1 -1
  138. package/lib/components/VPagination/VPagination.js.map +1 -1
  139. package/lib/components/VRadioGroup/VRadio.js +3 -1
  140. package/lib/components/VRadioGroup/VRadio.js.map +1 -1
  141. package/lib/components/VRangeSlider/VRangeSlider.js +2 -2
  142. package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
  143. package/lib/components/VSelect/VSelect.js +10 -6
  144. package/lib/components/VSelect/VSelect.js.map +1 -1
  145. package/lib/components/VSelect/VSelectList.js +2 -1
  146. package/lib/components/VSelect/VSelectList.js.map +1 -1
  147. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +4 -4
  148. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  149. package/lib/components/VSlideGroup/VSlideGroup.js +23 -7
  150. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  151. package/lib/components/VSlider/VSlider.js +6 -11
  152. package/lib/components/VSlider/VSlider.js.map +1 -1
  153. package/lib/components/VSparkline/VSparkline.js +2 -1
  154. package/lib/components/VSparkline/VSparkline.js.map +1 -1
  155. package/lib/components/VTabs/VTabs.js +10 -0
  156. package/lib/components/VTabs/VTabs.js.map +1 -1
  157. package/lib/components/VTextField/VTextField.js +5 -5
  158. package/lib/components/VTextField/VTextField.js.map +1 -1
  159. package/lib/components/VTextarea/VTextarea.js +2 -2
  160. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  161. package/lib/components/VTimePicker/VTimePicker.js.map +1 -1
  162. package/lib/components/VTreeview/VTreeview.js +5 -4
  163. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  164. package/lib/components/VTreeview/VTreeviewNode.js +2 -1
  165. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  166. package/lib/components/VWindow/VWindow.js +3 -3
  167. package/lib/components/VWindow/VWindow.js.map +1 -1
  168. package/lib/directives/click-outside/index.js +2 -2
  169. package/lib/directives/click-outside/index.js.map +1 -1
  170. package/lib/directives/intersect/index.js +4 -4
  171. package/lib/directives/intersect/index.js.map +1 -1
  172. package/lib/directives/mutate/index.js +2 -2
  173. package/lib/directives/mutate/index.js.map +1 -1
  174. package/lib/directives/resize/index.js +2 -2
  175. package/lib/directives/resize/index.js.map +1 -1
  176. package/lib/directives/scroll/index.js +2 -2
  177. package/lib/directives/scroll/index.js.map +1 -1
  178. package/lib/framework.js +1 -1
  179. package/lib/mixins/activatable/index.js +1 -3
  180. package/lib/mixins/activatable/index.js.map +1 -1
  181. package/lib/mixins/binds-attrs/index.js.map +1 -1
  182. package/lib/mixins/dependent/index.js.map +1 -1
  183. package/lib/mixins/detachable/index.js.map +1 -1
  184. package/lib/mixins/overlayable/index.js +1 -1
  185. package/lib/mixins/overlayable/index.js.map +1 -1
  186. package/lib/mixins/routable/index.js +4 -3
  187. package/lib/mixins/routable/index.js.map +1 -1
  188. package/lib/util/helpers.js +1 -1
  189. package/lib/util/helpers.js.map +1 -1
  190. package/package.json +3 -2
  191. package/src/components/VAutocomplete/VAutocomplete.sass +0 -4
  192. package/src/components/VBtn/VBtn.sass +1 -1
  193. package/src/components/VCalendar/VCalendar.ts +3 -0
  194. package/src/components/VCalendar/VCalendarWeekly.ts +12 -0
  195. package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +165 -55
  196. package/src/components/VCalendar/mixins/__tests__/mouse.spec.ts +2 -2
  197. package/src/components/VCalendar/mixins/mouse.ts +8 -9
  198. package/src/components/VCarousel/VCarousel.ts +1 -0
  199. package/src/components/VCheckbox/VSimpleCheckbox.ts +3 -2
  200. package/src/components/VChip/VChip.sass +1 -1
  201. package/src/components/VDataTable/VDataTable.ts +4 -1
  202. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +14 -14
  203. package/src/components/VDatePicker/VDatePicker.ts +1 -1
  204. package/src/components/VDialog/VDialog.sass +1 -1
  205. package/src/components/VDialog/VDialog.ts +9 -6
  206. package/src/components/VDialog/__tests__/VDialog.spec.ts +5 -5
  207. package/src/components/VDialog/__tests__/__snapshots__/VDialog.spec.ts.snap +4 -16
  208. package/src/components/VExpansionPanel/VExpansionPanel.sass +2 -2
  209. package/src/components/VInput/VInput.sass +3 -6
  210. package/src/components/VItemGroup/VItemGroup.ts +2 -2
  211. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +29 -0
  212. package/src/components/VList/VListItem.ts +5 -3
  213. package/src/components/VList/__tests__/VListItem.spec.ts +12 -0
  214. package/src/components/VOtpInput/VOtpInput.ts +23 -43
  215. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +3 -27
  216. package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +14 -10
  217. package/src/components/VPagination/VPagination.ts +1 -1
  218. package/src/components/VRadioGroup/VRadio.sass +0 -4
  219. package/src/components/VRadioGroup/VRadio.ts +1 -0
  220. package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +2 -2
  221. package/src/components/VRangeSlider/__tests__/__snapshots__/VRangeSlider.spec.ts.snap +2 -2
  222. package/src/components/VSelect/VSelect.sass +3 -1
  223. package/src/components/VSelect/VSelect.ts +2 -2
  224. package/src/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
  225. package/src/components/VSlideGroup/VSlideGroup.ts +21 -9
  226. package/src/components/VSlider/VSlider.ts +1 -7
  227. package/src/components/VSlider/__tests__/VSlider.spec.ts +3 -2
  228. package/src/components/VSwitch/VSwitch.sass +3 -2
  229. package/src/components/VTabs/VTabs.ts +10 -0
  230. package/src/components/VTimePicker/VTimePicker.ts +1 -1
  231. package/src/components/VTimeline/VTimeline.sass +16 -9
  232. package/src/components/VTimeline/_mixins.sass +4 -3
  233. package/src/globals.d.ts +6 -6
  234. package/src/mixins/applicationable/__tests__/applicationable.spec.ts +1 -1
  235. package/src/mixins/binds-attrs/index.ts +2 -2
  236. package/src/mixins/dependent/index.ts +3 -3
  237. package/src/mixins/detachable/index.ts +3 -3
  238. package/src/mixins/overlayable/index.ts +7 -7
  239. package/src/styles/components/_selection-controls.sass +3 -0
  240. package/src/util/helpers.ts +2 -2
  241. package/es5/util/component.js +0 -11
  242. package/es5/util/component.js.map +0 -1
  243. package/lib/util/component.js +0 -4
  244. package/lib/util/component.js.map +0 -1
  245. package/src/util/component.ts +0 -21
@@ -109,7 +109,6 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
109
109
  },
110
110
  data: function data() {
111
111
  return {
112
- internalItemsLength: 0,
113
112
  isOverflowing: false,
114
113
  resizeTimeout: 0,
115
114
  startX: 0,
@@ -190,12 +189,33 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
190
189
  this.$refs.content.style.transform = "translateX(".concat(scroll, "px)");
191
190
  }
192
191
  },
193
- beforeUpdate: function beforeUpdate() {
194
- this.internalItemsLength = (this.$children || []).length;
195
- },
196
- updated: function updated() {
197
- if (this.internalItemsLength === (this.$children || []).length) return;
198
- this.setWidths();
192
+ mounted: function mounted() {
193
+ var _this = this;
194
+
195
+ if (typeof ResizeObserver !== 'undefined') {
196
+ var obs = new ResizeObserver(function () {
197
+ _this.onResize();
198
+ });
199
+ obs.observe(this.$el);
200
+ obs.observe(this.$refs.content);
201
+ this.$on('hook:destroyed', function () {
202
+ obs.disconnect();
203
+ });
204
+ } else {
205
+ var itemsLength = 0;
206
+ this.$on('hook:beforeUpdate', function () {
207
+ var _a;
208
+
209
+ itemsLength = (((_a = _this.$refs.content) === null || _a === void 0 ? void 0 : _a.children) || []).length;
210
+ });
211
+ this.$on('hook:updated', function () {
212
+ var _a;
213
+
214
+ if (itemsLength === (((_a = _this.$refs.content) === null || _a === void 0 ? void 0 : _a.children) || []).length) return;
215
+
216
+ _this.setWidths();
217
+ });
218
+ }
199
219
  },
200
220
  methods: {
201
221
  onScroll: function onScroll() {
@@ -238,7 +258,7 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
238
258
  },
239
259
  // Always generate next for scrollable hint
240
260
  genNext: function genNext() {
241
- var _this = this;
261
+ var _this2 = this;
242
262
 
243
263
  var slot = this.$scopedSlots.next ? this.$scopedSlots.next({}) : this.$slots.next || this.__cachedNext;
244
264
  return this.$createElement('div', {
@@ -248,7 +268,7 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
248
268
  },
249
269
  on: {
250
270
  click: function click() {
251
- return _this.onAffixClick('next');
271
+ return _this2.onAffixClick('next');
252
272
  }
253
273
  },
254
274
  key: 'next'
@@ -292,7 +312,7 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
292
312
  },
293
313
  // Always generate prev for scrollable hint
294
314
  genPrev: function genPrev() {
295
- var _this2 = this;
315
+ var _this3 = this;
296
316
 
297
317
  var slot = this.$scopedSlots.prev ? this.$scopedSlots.prev({}) : this.$slots.prev || this.__cachedPrev;
298
318
  return this.$createElement('div', {
@@ -302,7 +322,7 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
302
322
  },
303
323
  on: {
304
324
  click: function click() {
305
- return _this2.onAffixClick('prev');
325
+ return _this3.onAffixClick('prev');
306
326
  }
307
327
  },
308
328
  key: 'prev'
@@ -312,7 +332,7 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
312
332
  return this.$createElement(_transitions.VFadeTransition, [this.genIcon(location)]);
313
333
  },
314
334
  genWrapper: function genWrapper() {
315
- var _this3 = this;
335
+ var _this4 = this;
316
336
 
317
337
  return this.$createElement('div', {
318
338
  staticClass: 'v-slide-group__wrapper',
@@ -320,13 +340,13 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
320
340
  name: 'touch',
321
341
  value: {
322
342
  start: function start(e) {
323
- return _this3.overflowCheck(e, _this3.onTouchStart);
343
+ return _this4.overflowCheck(e, _this4.onTouchStart);
324
344
  },
325
345
  move: function move(e) {
326
- return _this3.overflowCheck(e, _this3.onTouchMove);
346
+ return _this4.overflowCheck(e, _this4.onTouchMove);
327
347
  },
328
348
  end: function end(e) {
329
- return _this3.overflowCheck(e, _this3.onTouchEnd);
349
+ return _this4.overflowCheck(e, _this4.onTouchEnd);
330
350
  }
331
351
  }
332
352
  }],
@@ -442,23 +462,23 @@ var BaseSlideGroup = (0, _mixins.default)(_VItemGroup.BaseItemGroup, _mobile.def
442
462
  }, this.$vuetify.rtl, this.scrollOffset);
443
463
  },
444
464
  setWidths: function setWidths() {
445
- var _this4 = this;
465
+ var _this5 = this;
446
466
 
447
467
  window.requestAnimationFrame(function () {
448
- if (_this4._isDestroyed) return;
449
- var _this4$$refs = _this4.$refs,
450
- content = _this4$$refs.content,
451
- wrapper = _this4$$refs.wrapper;
452
- _this4.widths = {
468
+ if (_this5._isDestroyed) return;
469
+ var _this5$$refs = _this5.$refs,
470
+ content = _this5$$refs.content,
471
+ wrapper = _this5$$refs.wrapper;
472
+ _this5.widths = {
453
473
  content: content ? content.clientWidth : 0,
454
474
  wrapper: wrapper ? wrapper.clientWidth : 0
455
475
  }; // https://github.com/vuetifyjs/vuetify/issues/13212
456
476
  // We add +1 to the wrappers width to prevent an issue where the `clientWidth`
457
477
  // gets calculated wrongly by the browser if using a different zoom-level.
458
478
 
459
- _this4.isOverflowing = _this4.widths.wrapper + 1 < _this4.widths.content;
479
+ _this5.isOverflowing = _this5.widths.wrapper + 1 < _this5.widths.content;
460
480
 
461
- _this4.scrollIntoView();
481
+ _this5.scrollIntoView();
462
482
  });
463
483
  }
464
484
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof BaseItemGroup,\n typeof Mobile,\n ]>\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n beforeUpdate () {\n this.internalItemsLength = (this.$children || []).length\n },\n\n updated () {\n if (this.internalItemsLength === (this.$children || []).length) return\n this.setWidths()\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VSlideGroup.js"}
1
+ {"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof BaseItemGroup,\n typeof Mobile,\n ]>\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VSlideGroup.js"}
@@ -198,15 +198,10 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
198
198
  value: {
199
199
  handler: function handler(v) {
200
200
  this.internalValue = v;
201
- }
201
+ },
202
+ immediate: true
202
203
  }
203
204
  },
204
- // If done in as immediate in
205
- // value watcher, causes issues
206
- // with vue-test-utils
207
- beforeMount: function beforeMount() {
208
- this.internalValue = this.value;
209
- },
210
205
  mounted: function mounted() {
211
206
  // Without a v-app, iOS does not work with body selectors
212
207
  this.app = document.querySelector('[data-app]') || (0, _console.consoleWarn)('Missing v-app or a non-body wrapping element with the [data-app] attribute', this);
@@ -252,7 +247,8 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
252
247
  disabled: true,
253
248
  readonly: true,
254
249
  tabindex: -1
255
- }, this.$attrs)
250
+ }, this.$attrs) // on: this.genListeners(), // TODO: do we need to attach the listeners to input?
251
+
256
252
  });
257
253
  },
258
254
  genTrackContainer: function genTrackContainer() {
@@ -382,14 +378,15 @@ var _default2 = (0, _mixins.default)(_VInput.default, _loadable.default
382
378
  }, direction, "".concat(value, "%"));
383
379
  },
384
380
  onSliderMouseDown: function onSliderMouseDown(e) {
385
- var _e$target,
386
- _this2 = this;
381
+ var _this2 = this;
382
+
383
+ var _a;
387
384
 
388
385
  e.preventDefault();
389
386
  this.oldValue = this.internalValue;
390
387
  this.isActive = true;
391
388
 
392
- if ((_e$target = e.target) != null && _e$target.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {
389
+ if ((_a = e.target) === null || _a === void 0 ? void 0 : _a.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {
393
390
  this.thumbPressed = true;
394
391
  var domRect = e.target.getBoundingClientRect();
395
392
  var touch = 'touches' in e ? e.touches[0] : e;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VSlider/VSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":"","file":"VSlider.js"}
1
+ {"version":3,"sources":["../../../src/components/VSlider/VSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof VInput,\n typeof Loadable\n ]>\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n ticks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial<CSSStyleDeclaration> {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n immediate: true,\n },\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":"","file":"VSlider.js"}
@@ -269,7 +269,8 @@ var _default2 = (0, _mixins.default)(_colorable.default).extend({
269
269
  textAnchor: 'middle',
270
270
  dominantBaseline: 'mathematical',
271
271
  fill: 'currentColor'
272
- }
272
+ } // TODO: TS 3.5 is too eager with the array type here
273
+
273
274
  }, children);
274
275
  },
275
276
  genPath: function genPath() {