vuetify 2.5.13 → 2.6.1

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 (225) hide show
  1. package/dist/json/attributes.json +188 -0
  2. package/dist/json/tags.json +86 -20
  3. package/dist/json/web-types.json +697 -139
  4. package/dist/vuetify.css +136 -5
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +927 -304
  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 +1 -0
  11. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  12. package/es5/components/VBanner/VBanner.js +3 -2
  13. package/es5/components/VBanner/VBanner.js.map +1 -1
  14. package/es5/components/VBottomSheet/VBottomSheet.js +1 -4
  15. package/es5/components/VBottomSheet/VBottomSheet.js.map +1 -1
  16. package/es5/components/VCalendar/VCalendar.js +2 -2
  17. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  18. package/es5/components/VCalendar/VCalendarDaily.js +16 -8
  19. package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
  20. package/es5/components/VCalendar/VCalendarWeekly.js +14 -10
  21. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  22. package/es5/components/VCalendar/mixins/calendar-with-events.js +19 -20
  23. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  24. package/es5/components/VCalendar/mixins/mouse.js +13 -4
  25. package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
  26. package/es5/components/VDataTable/MobileRow.js +2 -2
  27. package/es5/components/VDataTable/MobileRow.js.map +1 -1
  28. package/es5/components/VDataTable/Row.js +25 -9
  29. package/es5/components/VDataTable/Row.js.map +1 -1
  30. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  31. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  32. package/es5/components/VDatePicker/mixins/date-picker-table.js +13 -3
  33. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  34. package/es5/components/VDialog/VDialog.js +4 -10
  35. package/es5/components/VDialog/VDialog.js.map +1 -1
  36. package/es5/components/VInput/VInput.js +3 -1
  37. package/es5/components/VInput/VInput.js.map +1 -1
  38. package/es5/components/VItemGroup/VItemGroup.js +8 -4
  39. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  40. package/es5/components/VMenu/VMenu.js +1 -1
  41. package/es5/components/VMenu/VMenu.js.map +1 -1
  42. package/es5/components/VOtpInput/VOtpInput.js +375 -0
  43. package/es5/components/VOtpInput/VOtpInput.js.map +1 -0
  44. package/es5/components/VOtpInput/index.js +20 -0
  45. package/es5/components/VOtpInput/index.js.map +1 -0
  46. package/es5/components/VRadioGroup/VRadioGroup.js +1 -3
  47. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  48. package/es5/components/VSlideGroup/VSlideGroup.js +8 -1
  49. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  50. package/es5/components/VSnackbar/VSnackbar.js +4 -8
  51. package/es5/components/VSnackbar/VSnackbar.js.map +1 -1
  52. package/es5/components/VTabs/VTab.js +3 -2
  53. package/es5/components/VTabs/VTab.js.map +1 -1
  54. package/es5/components/VTextField/VTextField.js +6 -1
  55. package/es5/components/VTextField/VTextField.js.map +1 -1
  56. package/es5/components/VTooltip/VTooltip.js +0 -1
  57. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  58. package/es5/components/VTreeview/VTreeview.js +2 -1
  59. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  60. package/es5/components/VTreeview/VTreeviewNode.js +3 -1
  61. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  62. package/es5/components/index.js +13 -0
  63. package/es5/components/index.js.map +1 -1
  64. package/es5/directives/click-outside/index.js +3 -1
  65. package/es5/directives/click-outside/index.js.map +1 -1
  66. package/es5/directives/intersect/index.js +8 -5
  67. package/es5/directives/intersect/index.js.map +1 -1
  68. package/es5/directives/mutate/index.js +3 -2
  69. package/es5/directives/mutate/index.js.map +1 -1
  70. package/es5/directives/resize/index.js +3 -1
  71. package/es5/directives/resize/index.js.map +1 -1
  72. package/es5/directives/ripple/index.js +0 -7
  73. package/es5/directives/ripple/index.js.map +1 -1
  74. package/es5/directives/scroll/index.js.map +1 -1
  75. package/es5/framework.js +1 -1
  76. package/es5/locale/da.js +77 -0
  77. package/es5/locale/da.js.map +1 -0
  78. package/es5/locale/index.js +8 -0
  79. package/es5/locale/index.js.map +1 -1
  80. package/es5/locale/it.js +6 -6
  81. package/es5/locale/it.js.map +1 -1
  82. package/es5/mixins/intersectable/index.js +6 -0
  83. package/es5/mixins/intersectable/index.js.map +1 -1
  84. package/es5/mixins/routable/index.js +2 -5
  85. package/es5/mixins/routable/index.js.map +1 -1
  86. package/es5/util/helpers.js +13 -6
  87. package/es5/util/helpers.js.map +1 -1
  88. package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
  89. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  90. package/lib/components/VBanner/VBanner.js +3 -2
  91. package/lib/components/VBanner/VBanner.js.map +1 -1
  92. package/lib/components/VBottomSheet/VBottomSheet.js +1 -4
  93. package/lib/components/VBottomSheet/VBottomSheet.js.map +1 -1
  94. package/lib/components/VCalendar/VCalendar.js +2 -2
  95. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  96. package/lib/components/VCalendar/VCalendarDaily.js +20 -8
  97. package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
  98. package/lib/components/VCalendar/VCalendarWeekly.js +10 -2
  99. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  100. package/lib/components/VCalendar/mixins/calendar-with-events.js +6 -3
  101. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  102. package/lib/components/VCalendar/mixins/mouse.js +9 -4
  103. package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
  104. package/lib/components/VDataTable/MobileRow.js +2 -2
  105. package/lib/components/VDataTable/MobileRow.js.map +1 -1
  106. package/lib/components/VDataTable/Row.js +15 -8
  107. package/lib/components/VDataTable/Row.js.map +1 -1
  108. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  109. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  110. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
  111. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  112. package/lib/components/VDialog/VDialog.js +4 -10
  113. package/lib/components/VDialog/VDialog.js.map +1 -1
  114. package/lib/components/VInput/VInput.js +2 -0
  115. package/lib/components/VInput/VInput.js.map +1 -1
  116. package/lib/components/VItemGroup/VItemGroup.js +7 -5
  117. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  118. package/lib/components/VMenu/VMenu.js +1 -1
  119. package/lib/components/VMenu/VMenu.js.map +1 -1
  120. package/lib/components/VOtpInput/VOtpInput.js +342 -0
  121. package/lib/components/VOtpInput/VOtpInput.js.map +1 -0
  122. package/lib/components/VOtpInput/index.js +4 -0
  123. package/lib/components/VOtpInput/index.js.map +1 -0
  124. package/lib/components/VRadioGroup/VRadioGroup.js +2 -4
  125. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  126. package/lib/components/VSlideGroup/VSlideGroup.js +9 -1
  127. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  128. package/lib/components/VSnackbar/VSnackbar.js +4 -8
  129. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  130. package/lib/components/VTabs/VTab.js +3 -2
  131. package/lib/components/VTabs/VTab.js.map +1 -1
  132. package/lib/components/VTextField/VTextField.js +8 -1
  133. package/lib/components/VTextField/VTextField.js.map +1 -1
  134. package/lib/components/VTooltip/VTooltip.js +0 -1
  135. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  136. package/lib/components/VTreeview/VTreeview.js +2 -1
  137. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  138. package/lib/components/VTreeview/VTreeviewNode.js +3 -1
  139. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  140. package/lib/components/index.js +1 -0
  141. package/lib/components/index.js.map +1 -1
  142. package/lib/directives/click-outside/index.js +3 -1
  143. package/lib/directives/click-outside/index.js.map +1 -1
  144. package/lib/directives/intersect/index.js +7 -5
  145. package/lib/directives/intersect/index.js.map +1 -1
  146. package/lib/directives/mutate/index.js +3 -2
  147. package/lib/directives/mutate/index.js.map +1 -1
  148. package/lib/directives/resize/index.js +3 -1
  149. package/lib/directives/resize/index.js.map +1 -1
  150. package/lib/directives/ripple/index.js +0 -7
  151. package/lib/directives/ripple/index.js.map +1 -1
  152. package/lib/directives/scroll/index.js.map +1 -1
  153. package/lib/framework.js +1 -1
  154. package/lib/locale/da.js +70 -0
  155. package/lib/locale/da.js.map +1 -0
  156. package/lib/locale/index.js +1 -0
  157. package/lib/locale/index.js.map +1 -1
  158. package/lib/locale/it.js +6 -6
  159. package/lib/locale/it.js.map +1 -1
  160. package/lib/mixins/intersectable/index.js +4 -0
  161. package/lib/mixins/intersectable/index.js.map +1 -1
  162. package/lib/mixins/routable/index.js +3 -5
  163. package/lib/mixins/routable/index.js.map +1 -1
  164. package/lib/util/helpers.js +13 -6
  165. package/lib/util/helpers.js.map +1 -1
  166. package/package.json +2 -2
  167. package/src/components/VAutocomplete/VAutocomplete.ts +2 -0
  168. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +16 -0
  169. package/src/components/VBanner/VBanner.ts +16 -10
  170. package/src/components/VBottomSheet/VBottomSheet.ts +1 -4
  171. package/src/components/VCalendar/VCalendar.ts +3 -2
  172. package/src/components/VCalendar/VCalendarCategory.sass +67 -0
  173. package/src/components/VCalendar/VCalendarDaily.ts +9 -8
  174. package/src/components/VCalendar/VCalendarWeekly.ts +4 -2
  175. package/src/components/VCalendar/_variables.scss +4 -0
  176. package/src/components/VCalendar/mixins/calendar-with-events.ts +4 -3
  177. package/src/components/VCalendar/mixins/mouse.ts +10 -4
  178. package/src/components/VDataTable/MobileRow.ts +2 -2
  179. package/src/components/VDataTable/Row.ts +23 -16
  180. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
  181. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +16 -0
  182. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +16 -0
  183. package/src/components/VDatePicker/mixins/date-picker-table.ts +24 -2
  184. package/src/components/VDialog/VDialog.ts +4 -10
  185. package/src/components/VInput/VInput.sass +8 -0
  186. package/src/components/VInput/VInput.ts +2 -0
  187. package/src/components/VItemGroup/VItemGroup.ts +5 -3
  188. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +19 -2
  189. package/src/components/VMenu/VMenu.ts +1 -1
  190. package/src/components/VOtpInput/VOtpInput.sass +37 -0
  191. package/src/components/VOtpInput/VOtpInput.ts +322 -0
  192. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +294 -0
  193. package/src/components/VOtpInput/_variables.scss +4 -0
  194. package/src/components/VOtpInput/index.ts +4 -0
  195. package/src/components/VRadioGroup/VRadioGroup.ts +0 -4
  196. package/src/components/VSlideGroup/VSlideGroup.ts +14 -1
  197. package/src/components/VSnackbar/VSnackbar.ts +3 -7
  198. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +4 -1
  199. package/src/components/VStepper/VStepper.sass +4 -4
  200. package/src/components/VTabs/VTab.ts +10 -2
  201. package/src/components/VTextField/VTextField.ts +8 -3
  202. package/src/components/VTooltip/VTooltip.sass +4 -1
  203. package/src/components/VTooltip/VTooltip.ts +0 -1
  204. package/src/components/VTooltip/_variables.scss +1 -0
  205. package/src/components/VTreeview/VTreeview.ts +2 -1
  206. package/src/components/VTreeview/VTreeviewNode.ts +3 -1
  207. package/src/components/index.ts +1 -0
  208. package/src/directives/click-outside/index.ts +2 -2
  209. package/src/directives/intersect/index.ts +6 -5
  210. package/src/directives/mutate/index.ts +2 -3
  211. package/src/directives/resize/index.ts +2 -2
  212. package/src/directives/ripple/VRipple.sass +4 -1
  213. package/src/directives/ripple/index.ts +0 -7
  214. package/src/directives/scroll/index.ts +1 -1
  215. package/src/globals.d.ts +5 -5
  216. package/src/locale/da.ts +69 -0
  217. package/src/locale/index.ts +1 -0
  218. package/src/locale/it.ts +6 -6
  219. package/src/mixins/intersectable/index.ts +6 -0
  220. package/src/mixins/routable/index.ts +1 -4
  221. package/src/styles/settings/_variables.scss +4 -3
  222. package/src/util/__tests__/__snapshots__/helpers.spec.ts.snap +11 -0
  223. package/src/util/__tests__/helpers.spec.ts +17 -0
  224. package/src/util/helpers.ts +14 -7
  225. package/src/directives/ripple/_variables.scss +0 -6
@@ -345,8 +345,7 @@ var _default = _calendarBase.default.extend({
345
345
  });
346
346
  },
347
347
  genMore: function genMore(day) {
348
- var _this$eventRipple2,
349
- _this6 = this;
348
+ var _this$eventRipple2;
350
349
 
351
350
  var eventHeight = this.eventHeight;
352
351
  var eventMarginBottom = this.eventMarginBottom;
@@ -363,11 +362,11 @@ var _default = _calendarBase.default.extend({
363
362
  name: 'ripple',
364
363
  value: (_this$eventRipple2 = this.eventRipple) != null ? _this$eventRipple2 : true
365
364
  }],
366
- on: {
367
- click: function click() {
368
- return _this6.$emit('click:more', day);
369
- }
370
- },
365
+ on: this.getDefaultMouseEventHandlers(':more', function (nativeEvent) {
366
+ return _objectSpread({
367
+ nativeEvent: nativeEvent
368
+ }, day);
369
+ }),
371
370
  style: {
372
371
  display: 'none',
373
372
  height: "".concat(eventHeight, "px"),
@@ -395,24 +394,24 @@ var _default = _calendarBase.default.extend({
395
394
  });
396
395
  },
397
396
  getEventsForDayAll: function getEventsForDayAll(day) {
398
- var _this7 = this;
397
+ var _this6 = this;
399
398
 
400
399
  var identifier = (0, _timestamp.getDayIdentifier)(day);
401
400
  var firstWeekday = this.eventWeekdays[0];
402
401
  return this.parsedEvents.filter(function (event) {
403
- return event.allDay && (_this7.categoryMode ? (0, _events.isEventOn)(event, identifier) : (0, _events.isEventStart)(event, day, identifier, firstWeekday)) && _this7.isEventForCategory(event, day.category);
402
+ return event.allDay && (_this6.categoryMode ? (0, _events.isEventOn)(event, identifier) : (0, _events.isEventStart)(event, day, identifier, firstWeekday)) && _this6.isEventForCategory(event, day.category);
404
403
  });
405
404
  },
406
405
  getEventsForDayTimed: function getEventsForDayTimed(day) {
407
- var _this8 = this;
406
+ var _this7 = this;
408
407
 
409
408
  var identifier = (0, _timestamp.getDayIdentifier)(day);
410
409
  return this.parsedEvents.filter(function (event) {
411
- return !event.allDay && (0, _events.isEventOn)(event, identifier) && _this8.isEventForCategory(event, day.category);
410
+ return !event.allDay && (0, _events.isEventOn)(event, identifier) && _this7.isEventForCategory(event, day.category);
412
411
  });
413
412
  },
414
413
  getScopedSlots: function getScopedSlots() {
415
- var _this9 = this;
414
+ var _this8 = this;
416
415
 
417
416
  if (this.noEvents) {
418
417
  return _objectSpread({}, this.$scopedSlots);
@@ -426,7 +425,7 @@ var _default = _calendarBase.default.extend({
426
425
 
427
426
  var getSlotChildren = function getSlotChildren(day, getter, mapper, timed) {
428
427
  var events = getter(day);
429
- var visuals = mode(day, events, timed, _this9.categoryMode);
428
+ var visuals = mode(day, events, timed, _this8.categoryMode);
430
429
 
431
430
  if (timed) {
432
431
  return visuals.map(function (visual) {
@@ -437,7 +436,7 @@ var _default = _calendarBase.default.extend({
437
436
  var children = [];
438
437
  visuals.forEach(function (visual, index) {
439
438
  while (children.length < visual.column) {
440
- children.push(_this9.genPlaceholder(day));
439
+ children.push(_this8.genPlaceholder(day));
441
440
  }
442
441
 
443
442
  var mapped = mapper(visual, day);
@@ -455,10 +454,10 @@ var _default = _calendarBase.default.extend({
455
454
  var slotDayBody = slots['day-body'];
456
455
  return _objectSpread(_objectSpread({}, slots), {}, {
457
456
  day: function day(_day) {
458
- var children = getSlotChildren(_day, _this9.getEventsForDay, _this9.genDayEvent, false);
457
+ var children = getSlotChildren(_day, _this8.getEventsForDay, _this8.genDayEvent, false);
459
458
 
460
- if (children && children.length > 0 && _this9.eventMore) {
461
- children.push(_this9.genMore(_day));
459
+ if (children && children.length > 0 && _this8.eventMore) {
460
+ children.push(_this8.genMore(_day));
462
461
  }
463
462
 
464
463
  if (slotDay) {
@@ -472,7 +471,7 @@ var _default = _calendarBase.default.extend({
472
471
  return children;
473
472
  },
474
473
  'day-header': function dayHeader(day) {
475
- var children = getSlotChildren(day, _this9.getEventsForDayAll, _this9.genDayEvent, false);
474
+ var children = getSlotChildren(day, _this8.getEventsForDayAll, _this8.genDayEvent, false);
476
475
 
477
476
  if (slotDayHeader) {
478
477
  var slot = slotDayHeader(day);
@@ -485,8 +484,8 @@ var _default = _calendarBase.default.extend({
485
484
  return children;
486
485
  },
487
486
  'day-body': function dayBody(day) {
488
- var events = getSlotChildren(day, _this9.getEventsForDayTimed, _this9.genTimedEvent, true);
489
- var children = [_this9.$createElement('div', {
487
+ var events = getSlotChildren(day, _this8.getEventsForDayTimed, _this8.genTimedEvent, true);
488
+ var children = [_this8.$createElement('div', {
490
489
  staticClass: 'v-event-timed-container'
491
490
  }, events)];
492
491
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VCalendar/mixins/calendar-with-events.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Helpers\nimport { escapeHTML } from '../../../util/helpers'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n isEventHiddenOn,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n CalendarCategory,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter<D> = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode<D> = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = <D extends CalendarDaySlotScope>(\n day: D,\n getter: VEventGetter<D>,\n mapper: VEventVisualToNode<D>,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => escapeHTML(event.input[this.eventName as string] as string || '')\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) < 0 || day.timeDelta(event.start) >= 1 || isEventHiddenOn(event, day)) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n if (event.start.hasTime) {\n const eventSummaryClass = 'v-event-summary'\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : '<br>'\n\n return `<span class=\"${eventSummaryClass}\"><strong>${name}</strong>${delimiter}${time}</span>`\n } else {\n const time = formatTime(event.start, true)\n\n return `<span class=\"${eventSummaryClass}\"><strong>${time}</strong> ${name}</span>`\n }\n }\n\n return name\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n domProps: {\n innerHTML: eventSummary(),\n },\n })\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: {\n click: () => this.$emit('click:more', day),\n },\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && category === event.category) ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n"],"sourceRoot":"","file":"calendar-with-events.js"}
1
+ {"version":3,"sources":["../../../../src/components/VCalendar/mixins/calendar-with-events.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Helpers\nimport { escapeHTML } from '../../../util/helpers'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n isEventHiddenOn,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n CalendarCategory,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter<D> = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode<D> = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = <D extends CalendarDaySlotScope>(\n day: D,\n getter: VEventGetter<D>,\n mapper: VEventVisualToNode<D>,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => escapeHTML(event.input[this.eventName as string] as string || '')\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) < 0 || day.timeDelta(event.start) >= 1 || isEventHiddenOn(event, day)) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n if (event.start.hasTime) {\n const eventSummaryClass = 'v-event-summary'\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : '<br>'\n\n return `<span class=\"${eventSummaryClass}\"><strong>${name}</strong>${delimiter}${time}</span>`\n } else {\n const time = formatTime(event.start, true)\n\n return `<span class=\"${eventSummaryClass}\"><strong>${time}</strong> ${name}</span>`\n }\n }\n\n return name\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n domProps: {\n innerHTML: eventSummary(),\n },\n })\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && category === event.category) ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n"],"sourceRoot":"","file":"calendar-with-events.js"}
@@ -70,11 +70,20 @@ var _default = _vue.default.extend({
70
70
 
71
71
 
72
72
  if (e && 'touches' in e) {
73
- var _e$target, _e$target2;
73
+ var _e$currentTarget, _e$target;
74
74
 
75
- var currentTarget = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY);
75
+ var classSeparator = ' ';
76
+ var eventTargetClasses = (_e$currentTarget = e.currentTarget) == null ? void 0 : _e$currentTarget.className.split(classSeparator);
77
+ var currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY); // Get "the same kind" current hovering target by checking
78
+ // If element has the same class of initial touch start element (which has touch event listener registered)
76
79
 
77
- if (currentTarget && !((_e$target = e.target) != null && _e$target.isSameNode(currentTarget)) && ((_e$target2 = e.target) == null ? void 0 : _e$target2.className) === currentTarget.className) {
80
+ var currentTarget = currentTargets.find(function (t) {
81
+ return t.className.split(classSeparator).some(function (c) {
82
+ return eventTargetClasses.includes(c);
83
+ });
84
+ });
85
+
86
+ if (currentTarget && !((_e$target = e.target) != null && _e$target.isSameNode(currentTarget))) {
78
87
  currentTarget.dispatchEvent(new TouchEvent(e.type, {
79
88
  changedTouches: e.changedTouches,
80
89
  targetTouches: e.targetTouches,
@@ -84,7 +93,7 @@ var _default = _vue.default.extend({
84
93
  }
85
94
  }
86
95
 
87
- _this.$emit(event, getEvent(e));
96
+ _this.$emit(event, getEvent(e), e);
88
97
  }
89
98
 
90
99
  return eventOptions.result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VCalendar/mixins/mouse.ts"],"names":[],"mappings":";;;;;;;AAAA;;;;;;eAqBe,aAAI,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,OADkB;AAGxB,EAAA,OAAO,EAAE;AACP,IAAA,4BADO,wCACuB,MADvB,EACuC,QADvC,EAC6D;AAAA;;AAClE,aAAO,KAAK,qBAAL,qEACJ,UAAU,MADN,EACe;AAAE,QAAA,KAAK,EAAE;AAAT,OADf,0CAEJ,gBAAgB,MAFZ,EAEqB;AAAE,QAAA,KAAK,EAAE,aAAT;AAAwB,QAAA,OAAO,EAAE,IAAjC;AAAuC,QAAA,MAAM,EAAE;AAA/C,OAFrB,0CAGJ,cAAc,MAHV,EAGmB;AAAE,QAAA,KAAK,EAAE;AAAT,OAHnB,0CAIJ,cAAc,MAJV,EAImB;AAAE,QAAA,KAAK,EAAE;AAAT,OAJnB,0CAKJ,YAAY,MALR,EAKiB;AAAE,QAAA,KAAK,EAAE;AAAT,OALjB,0CAMJ,eAAe,MANX,EAMoB;AAAE,QAAA,KAAK,EAAE;AAAT,OANpB,0CAOJ,eAAe,MAPX,EAOoB;AAAE,QAAA,KAAK,EAAE;AAAT,OAPpB,0CAQJ,eAAe,MARX,EAQoB;AAAE,QAAA,KAAK,EAAE;AAAT,OARpB,0CASJ,cAAc,MATV,EASmB;AAAE,QAAA,KAAK,EAAE;AAAT,OATnB,0CAUJ,aAAa,MAVT,EAUkB;AAAE,QAAA,KAAK,EAAE;AAAT,OAVlB,2BAWJ,QAXI,CAAP;AAYD,KAdM;AAeP,IAAA,qBAfO,iCAegB,MAfhB,EAeqC,QAfrC,EAe2D;AAAA;;AAChE,UAAM,EAAE,GAAmB,EAA3B;;AADgE,iCAGrD,KAHqD;AAI9D,YAAM,YAAY,GAAG,MAAM,CAAC,KAAD,CAA3B;AAEA,YAAI,CAAC,KAAI,CAAC,UAAL,CAAgB,KAAhB,CAAL,EAA6B,kBANiC,CAQ9D;;AAEA,YAAM,MAAM,GAAG,YAAY,CAAC,OAAb,GAAuB,GAAvB,GAA8B,CAAC,YAAY,CAAC,IAAb,GAAoB,GAApB,GAA0B,EAA3B,KAAkC,YAAY,CAAC,OAAb,GAAuB,GAAvB,GAA6B,EAA/D,CAA7C;AACA,YAAM,GAAG,GAAG,MAAM,GAAG,YAAY,CAAC,KAAlC;;AAEA,YAAM,OAAO,GAAiB,SAAxB,OAAwB,CAAA,CAAC,EAAG;AAChC,cAAM,UAAU,GAAe,CAA/B;;AACA,cAAI,YAAY,CAAC,MAAb,KAAwB,SAAxB,IAAsC,UAAU,CAAC,OAAX,GAAqB,CAArB,IAA0B,UAAU,CAAC,MAAX,KAAsB,YAAY,CAAC,MAAvG,EAAgH;AAC9G,gBAAI,YAAY,CAAC,OAAjB,EAA0B;AACxB,cAAA,CAAC,CAAC,cAAF;AACD;;AACD,gBAAI,YAAY,CAAC,IAAjB,EAAuB;AACrB,cAAA,CAAC,CAAC,eAAF;AACD,aAN6G,CAQ9G;AACA;AACA;AACA;;;AACA,gBAAI,CAAC,IAAI,aAAa,CAAtB,EAAyB;AAAA;;AACvB,kBAAM,aAAa,GAAG,QAAQ,CAAC,gBAAT,CAA0B,CAAC,CAAC,cAAF,CAAiB,CAAjB,EAAoB,OAA9C,EAAuD,CAAC,CAAC,cAAF,CAAiB,CAAjB,EAAoB,OAA3E,CAAtB;;AAEA,kBAAI,aAAa,IACf,eAAE,CAAC,CAAC,MAAJ,aAAE,UAA0B,UAA1B,CAAqC,aAArC,CAAF,CADE,IAED,eAAA,CAAC,CAAC,MAAF,gCAA0B,SAA1B,MAAwC,aAAa,CAAC,SAFzD,EAGE;AACA,gBAAA,aAAa,CAAC,aAAd,CAA4B,IAAI,UAAJ,CAAe,CAAC,CAAC,IAAjB,EAAuB;AACjD,kBAAA,cAAc,EAAE,CAAC,CAAC,cAD+B;AAEjD,kBAAA,aAAa,EAAE,CAAC,CAAC,aAFgC;AAGjD,kBAAA,OAAO,EAAE,CAAC,CAAC;AAHsC,iBAAvB,CAA5B;AAKA;AACD;AACF;;AAED,YAAA,KAAI,CAAC,KAAL,CAAW,KAAX,EAAkB,QAAQ,CAAC,CAAD,CAA1B;AACD;;AAED,iBAAO,YAAY,CAAC,MAApB;AACD,SAlCD;;AAoCA,YAAI,GAAG,IAAI,EAAX,EAAe;AACb;AACA,cAAI,KAAK,CAAC,OAAN,CAAc,EAAE,CAAC,GAAD,CAAhB,CAAJ,EAA4B;AACzB,YAAA,EAAE,CAAC,GAAD,CAAF,CAA2B,IAA3B,CAAgC,OAAhC;AACF,WAFD,MAEO;AACL,YAAA,EAAE,CAAC,GAAD,CAAF,GAAU,CAAC,EAAE,CAAC,GAAD,CAAH,EAAU,OAAV,CAAV;AACD;AACF,SAPD,MAOO;AACL,UAAA,EAAE,CAAC,GAAD,CAAF,GAAU,OAAV;AACD;AA1D6D;;AAGhE,WAAK,IAAM,KAAX,IAAoB,MAApB,EAA4B;AAAA,yBAAjB,KAAiB;;AAAA,iCAGG;AAqD9B;;AAED,aAAO,EAAP;AACD;AA7EM;AAHe,CAAX,C","sourcesContent":["import Vue from 'vue'\n\nexport type MouseHandler = (e: MouseEvent | TouchEvent) => any\n\nexport type MouseEvents = {\n [event: string]: {\n event: string\n passive?: boolean\n capture?: boolean\n once?: boolean\n stop?: boolean\n prevent?: boolean\n button?: number\n result?: any\n }\n}\n\nexport type MouseEventsMap = {\n [event: string]: MouseHandler | MouseHandler[]\n}\n\nexport default Vue.extend({\n name: 'mouse',\n\n methods: {\n getDefaultMouseEventHandlers (suffix: string, getEvent: MouseHandler): MouseEventsMap {\n return this.getMouseEventHandlers({\n ['click' + suffix]: { event: 'click' },\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\n ['mousedown' + suffix]: { event: 'mousedown' },\n ['mousemove' + suffix]: { event: 'mousemove' },\n ['mouseup' + suffix]: { event: 'mouseup' },\n ['mouseenter' + suffix]: { event: 'mouseenter' },\n ['mouseleave' + suffix]: { event: 'mouseleave' },\n ['touchstart' + suffix]: { event: 'touchstart' },\n ['touchmove' + suffix]: { event: 'touchmove' },\n ['touchend' + suffix]: { event: 'touchend' },\n }, getEvent)\n },\n getMouseEventHandlers (events: MouseEvents, getEvent: MouseHandler): MouseEventsMap {\n const on: MouseEventsMap = {}\n\n for (const event in events) {\n const eventOptions = events[event]\n\n if (!this.$listeners[event]) continue\n\n // TODO somehow pull in modifiers\n\n const prefix = eventOptions.passive ? '&' : ((eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : ''))\n const key = prefix + eventOptions.event\n\n const handler: MouseHandler = e => {\n const mouseEvent: MouseEvent = e as MouseEvent\n if (eventOptions.button === undefined || (mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button)) {\n if (eventOptions.prevent) {\n e.preventDefault()\n }\n if (eventOptions.stop) {\n e.stopPropagation()\n }\n\n // Due to TouchEvent target always returns the element that is first placed\n // Even if touch point has since moved outside the interactive area of that element\n // Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target\n // This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at\n if (e && 'touches' in e) {\n const currentTarget = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY)\n\n if (currentTarget &&\n !(e.target as HTMLElement)?.isSameNode(currentTarget) &&\n (e.target as HTMLElement)?.className === currentTarget.className\n ) {\n currentTarget.dispatchEvent(new TouchEvent(e.type, {\n changedTouches: e.changedTouches as unknown as Touch[],\n targetTouches: e.targetTouches as unknown as Touch[],\n touches: e.touches as unknown as Touch[],\n }))\n return\n }\n }\n\n this.$emit(event, getEvent(e))\n }\n\n return eventOptions.result\n }\n\n if (key in on) {\n /* istanbul ignore next */\n if (Array.isArray(on[key])) {\n (on[key] as MouseHandler[]).push(handler)\n } else {\n on[key] = [on[key], handler] as MouseHandler[]\n }\n } else {\n on[key] = handler\n }\n }\n\n return on\n },\n },\n})\n"],"sourceRoot":"","file":"mouse.js"}
1
+ {"version":3,"sources":["../../../../src/components/VCalendar/mixins/mouse.ts"],"names":[],"mappings":"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","sourcesContent":["import Vue from 'vue'\n\nexport type MouseHandler = (e: MouseEvent | TouchEvent) => any\n\nexport type MouseEvents = {\n [event: string]: {\n event: string\n passive?: boolean\n capture?: boolean\n once?: boolean\n stop?: boolean\n prevent?: boolean\n button?: number\n result?: any\n }\n}\n\nexport type MouseEventsMap = {\n [event: string]: MouseHandler | MouseHandler[]\n}\n\nexport default Vue.extend({\n name: 'mouse',\n\n methods: {\n getDefaultMouseEventHandlers (suffix: string, getEvent: MouseHandler): MouseEventsMap {\n return this.getMouseEventHandlers({\n ['click' + suffix]: { event: 'click' },\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\n ['mousedown' + suffix]: { event: 'mousedown' },\n ['mousemove' + suffix]: { event: 'mousemove' },\n ['mouseup' + suffix]: { event: 'mouseup' },\n ['mouseenter' + suffix]: { event: 'mouseenter' },\n ['mouseleave' + suffix]: { event: 'mouseleave' },\n ['touchstart' + suffix]: { event: 'touchstart' },\n ['touchmove' + suffix]: { event: 'touchmove' },\n ['touchend' + suffix]: { event: 'touchend' },\n }, getEvent)\n },\n getMouseEventHandlers (events: MouseEvents, getEvent: MouseHandler): MouseEventsMap {\n const on: MouseEventsMap = {}\n\n for (const event in events) {\n const eventOptions = events[event]\n\n if (!this.$listeners[event]) continue\n\n // TODO somehow pull in modifiers\n\n const prefix = eventOptions.passive ? '&' : ((eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : ''))\n const key = prefix + eventOptions.event\n\n const handler: MouseHandler = e => {\n const mouseEvent: MouseEvent = e as MouseEvent\n if (eventOptions.button === undefined || (mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button)) {\n if (eventOptions.prevent) {\n e.preventDefault()\n }\n if (eventOptions.stop) {\n e.stopPropagation()\n }\n\n // Due to TouchEvent target always returns the element that is first placed\n // Even if touch point has since moved outside the interactive area of that element\n // Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target\n // This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at\n if (e && 'touches' in e) {\n const classSeparator = ' '\n\n const eventTargetClasses = (e.currentTarget as HTMLElement)?.className.split(classSeparator)\n const currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY)\n\n // Get \"the same kind\" current hovering target by checking\n // If element has the same class of initial touch start element (which has touch event listener registered)\n const currentTarget = currentTargets.find(t => t.className.split(classSeparator).some(c => eventTargetClasses.includes(c)))\n\n if (currentTarget &&\n !(e.target as HTMLElement)?.isSameNode(currentTarget)\n ) {\n currentTarget.dispatchEvent(new TouchEvent(e.type, {\n changedTouches: e.changedTouches as unknown as Touch[],\n targetTouches: e.targetTouches as unknown as Touch[],\n touches: e.touches as unknown as Touch[],\n }))\n return\n }\n }\n\n this.$emit(event, getEvent(e), e)\n }\n\n return eventOptions.result\n }\n\n if (key in on) {\n /* istanbul ignore next */\n if (Array.isArray(on[key])) {\n (on[key] as MouseHandler[]).push(handler)\n } else {\n on[key] = [on[key], handler] as MouseHandler[]\n }\n } else {\n on[key] = handler\n }\n }\n\n return on\n },\n },\n})\n"],"sourceRoot":"","file":"mouse.js"}
@@ -39,8 +39,8 @@ var _default = _vue.default.extend({
39
39
  var children = [];
40
40
  var value = (0, _helpers.getObjectValueByPath)(props.item, header.value);
41
41
  var slotName = header.value;
42
- var scopedSlot = data.scopedSlots && data.scopedSlots[slotName];
43
- var regularSlot = computedSlots[slotName];
42
+ var scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName];
43
+ var regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName];
44
44
 
45
45
  if (scopedSlot) {
46
46
  children.push(scopedSlot({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDataTable/MobileRow.ts"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;eAGe,aAAI,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,KADkB;AAGxB,EAAA,UAAU,EAAE,IAHY;AAKxB,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,iBAAiB,EAAE,OAFd;AAGL,IAAA,KAAK,EAAE,MAHF;AAIL,IAAA,IAAI,EAAE,MAJD;AAKL,IAAA,GAAG,EAAE;AALA,GALiB;AAaxB,EAAA,MAbwB,kBAahB,CAbgB,QAaS;AAAA,QAApB,KAAoB,QAApB,KAAoB;AAAA,QAAb,KAAa,QAAb,KAAa;AAAA,QAAN,IAAM,QAAN,IAAM;AAC/B,QAAM,aAAa,GAAG,KAAK,EAA3B;AAEA,QAAM,OAAO,GAAY,KAAK,CAAC,OAAN,CAAc,GAAd,CAAkB,UAAC,MAAD,EAA4B;AACrE,UAAM,OAAO,GAAG;AACd,oCAA4B;AADd,OAAhB;AAIA,UAAM,QAAQ,GAAG,EAAjB;AACA,UAAM,KAAK,GAAG,mCAAqB,KAAK,CAAC,IAA3B,EAAiC,MAAM,CAAC,KAAxC,CAAd;AAEA,UAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,UAAM,UAAU,GAAG,IAAI,CAAC,WAAL,IAAoB,IAAI,CAAC,WAAL,CAAiB,QAAjB,CAAvC;AACA,UAAM,WAAW,GAAG,aAAa,CAAC,QAAD,CAAjC;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,CAAc,UAAU,CAAC;AACvB,UAAA,IAAI,EAAE,KAAK,CAAC,IADW;AAEvB,UAAA,QAAQ,EAAE,IAFa;AAGvB,UAAA,MAAM,EAAN,MAHuB;AAIvB,UAAA,KAAK,EAAE,KAAK,CAAC,KAJU;AAKvB,UAAA,KAAK,EAAL;AALuB,SAAD,CAAxB;AAOD,OARD,MAQO,IAAI,WAAJ,EAAiB;AACtB,QAAA,QAAQ,CAAC,IAAT,CAAc,WAAd;AACD,OAFM,MAEA;AACL,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,UAAM,iBAAiB,GAAG,CACxB,CAAC,CAAC,KAAD,EAAQ;AACP,QAAA,WAAW,EAAE;AADN,OAAR,EAEE,QAFF,CADuB,CAA1B;;AAMA,UAAI,MAAM,CAAC,KAAP,KAAiB,iBAAjB,IAAsC,CAAC,KAAK,CAAC,iBAAjD,EAAoE;AAClE,QAAA,iBAAiB,CAAC,OAAlB,CACE,CAAC,CAAC,KAAD,EAAQ;AACP,UAAA,WAAW,EAAE;AADN,SAAR,EAEE,CAAC,MAAM,CAAC,IAAR,CAFF,CADH;AAKD;;AAED,aAAO,CAAC,CAAC,IAAD,EAAO;AAAE,QAAA,KAAK,EAAE;AAAT,OAAP,EAA2B,iBAA3B,CAAR;AACD,KAzCwB,CAAzB;AA2CA,WAAO,CAAC,CAAC,IAAD,kCAAY,IAAZ;AAAkB,MAAA,WAAW,EAAE;AAA/B,QAAmE,OAAnE,CAAR;AACD;AA5DuB,CAAX,C","sourcesContent":["import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]\n const regularSlot = computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n"],"sourceRoot":"","file":"MobileRow.js"}
1
+ {"version":3,"sources":["../../../src/components/VDataTable/MobileRow.ts"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;eAGe,aAAI,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,KADkB;AAGxB,EAAA,UAAU,EAAE,IAHY;AAKxB,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,iBAAiB,EAAE,OAFd;AAGL,IAAA,KAAK,EAAE,MAHF;AAIL,IAAA,IAAI,EAAE,MAJD;AAKL,IAAA,GAAG,EAAE;AALA,GALiB;AAaxB,EAAA,MAbwB,kBAahB,CAbgB,QAaS;AAAA,QAApB,KAAoB,QAApB,KAAoB;AAAA,QAAb,KAAa,QAAb,KAAa;AAAA,QAAN,IAAM,QAAN,IAAM;AAC/B,QAAM,aAAa,GAAG,KAAK,EAA3B;AAEA,QAAM,OAAO,GAAY,KAAK,CAAC,OAAN,CAAc,GAAd,CAAkB,UAAC,MAAD,EAA4B;AACrE,UAAM,OAAO,GAAG;AACd,oCAA4B;AADd,OAAhB;AAIA,UAAM,QAAQ,GAAG,EAAjB;AACA,UAAM,KAAK,GAAG,mCAAqB,KAAK,CAAC,IAA3B,EAAiC,MAAM,CAAC,KAAxC,CAAd;AAEA,UAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,UAAM,UAAU,GAAG,IAAI,CAAC,WAAL,IAAoB,IAAI,CAAC,WAAL,CAAiB,cAAjB,CAAgC,QAAhC,CAApB,IAAiE,IAAI,CAAC,WAAL,CAAiB,QAAjB,CAApF;AACA,UAAM,WAAW,GAAG,aAAa,CAAC,cAAd,CAA6B,QAA7B,KAA0C,aAAa,CAAC,QAAD,CAA3E;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,CAAc,UAAU,CAAC;AACvB,UAAA,IAAI,EAAE,KAAK,CAAC,IADW;AAEvB,UAAA,QAAQ,EAAE,IAFa;AAGvB,UAAA,MAAM,EAAN,MAHuB;AAIvB,UAAA,KAAK,EAAE,KAAK,CAAC,KAJU;AAKvB,UAAA,KAAK,EAAL;AALuB,SAAD,CAAxB;AAOD,OARD,MAQO,IAAI,WAAJ,EAAiB;AACtB,QAAA,QAAQ,CAAC,IAAT,CAAc,WAAd;AACD,OAFM,MAEA;AACL,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,UAAM,iBAAiB,GAAG,CACxB,CAAC,CAAC,KAAD,EAAQ;AACP,QAAA,WAAW,EAAE;AADN,OAAR,EAEE,QAFF,CADuB,CAA1B;;AAMA,UAAI,MAAM,CAAC,KAAP,KAAiB,iBAAjB,IAAsC,CAAC,KAAK,CAAC,iBAAjD,EAAoE;AAClE,QAAA,iBAAiB,CAAC,OAAlB,CACE,CAAC,CAAC,KAAD,EAAQ;AACP,UAAA,WAAW,EAAE;AADN,SAAR,EAEE,CAAC,MAAM,CAAC,IAAR,CAFF,CADH;AAKD;;AAED,aAAO,CAAC,CAAC,IAAD,EAAO;AAAE,QAAA,KAAK,EAAE;AAAT,OAAP,EAA2B,iBAA3B,CAAR;AACD,KAzCwB,CAAzB;AA2CA,WAAO,CAAC,CAAC,IAAD,kCAAY,IAAZ;AAAkB,MAAA,WAAW,EAAE;AAA/B,QAAmE,OAAnE,CAAR;AACD;AA5DuB,CAAX,C","sourcesContent":["import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n"],"sourceRoot":"","file":"MobileRow.js"}
@@ -11,8 +11,24 @@ var _helpers = require("../../util/helpers");
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- // Types
15
- // Utils
14
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+
16
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
21
+
22
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
26
+ function needsTd(slot) {
27
+ var _slot$;
28
+
29
+ return slot.length !== 1 || !['td', 'th'].includes((_slot$ = slot[0]) == null ? void 0 : _slot$.tag);
30
+ }
31
+
16
32
  var _default = _vue.default.extend({
17
33
  name: 'row',
18
34
  functional: true,
@@ -31,29 +47,29 @@ var _default = _vue.default.extend({
31
47
  var children = [];
32
48
  var value = (0, _helpers.getObjectValueByPath)(props.item, header.value);
33
49
  var slotName = header.value;
34
- var scopedSlot = data.scopedSlots && data.scopedSlots[slotName];
35
- var regularSlot = computedSlots[slotName];
50
+ var scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName];
51
+ var regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName];
36
52
 
37
53
  if (scopedSlot) {
38
- children.push(scopedSlot({
54
+ children.push.apply(children, _toConsumableArray((0, _helpers.wrapInArray)(scopedSlot({
39
55
  item: props.item,
40
56
  isMobile: false,
41
57
  header: header,
42
58
  index: props.index,
43
59
  value: value
44
- }));
60
+ }))));
45
61
  } else if (regularSlot) {
46
- children.push(regularSlot);
62
+ children.push.apply(children, _toConsumableArray((0, _helpers.wrapInArray)(regularSlot)));
47
63
  } else {
48
64
  children.push(value == null ? value : String(value));
49
65
  }
50
66
 
51
67
  var textAlign = "text-".concat(header.align || 'start');
52
- return h('td', {
68
+ return needsTd(children) ? h('td', {
53
69
  class: [textAlign, header.cellClass, {
54
70
  'v-data-table__divider': header.divider
55
71
  }]
56
- }, children);
72
+ }, children) : children;
57
73
  });
58
74
  return h('tr', data, columns);
59
75
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDataTable/Row.ts"],"names":[],"mappings":";;;;;;;AACA;;AAIA;;;;AALA;AAIA;eAGe,aAAI,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,KADkB;AAGxB,EAAA,UAAU,EAAE,IAHY;AAKxB,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,KAAK,EAAE,MAFF;AAGL,IAAA,IAAI,EAAE,MAHD;AAIL,IAAA,GAAG,EAAE;AAJA,GALiB;AAYxB,EAAA,MAZwB,kBAYhB,CAZgB,QAYS;AAAA,QAApB,KAAoB,QAApB,KAAoB;AAAA,QAAb,KAAa,QAAb,KAAa;AAAA,QAAN,IAAM,QAAN,IAAM;AAC/B,QAAM,aAAa,GAAG,KAAK,EAA3B;AAEA,QAAM,OAAO,GAAY,KAAK,CAAC,OAAN,CAAc,GAAd,CAAkB,UAAC,MAAD,EAA4B;AACrE,UAAM,QAAQ,GAAG,EAAjB;AACA,UAAM,KAAK,GAAG,mCAAqB,KAAK,CAAC,IAA3B,EAAiC,MAAM,CAAC,KAAxC,CAAd;AAEA,UAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,UAAM,UAAU,GAAG,IAAI,CAAC,WAAL,IAAoB,IAAI,CAAC,WAAL,CAAiB,QAAjB,CAAvC;AACA,UAAM,WAAW,GAAG,aAAa,CAAC,QAAD,CAAjC;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,CAAc,UAAU,CAAC;AACvB,UAAA,IAAI,EAAE,KAAK,CAAC,IADW;AAEvB,UAAA,QAAQ,EAAE,KAFa;AAGvB,UAAA,MAAM,EAAN,MAHuB;AAIvB,UAAA,KAAK,EAAE,KAAK,CAAC,KAJU;AAKvB,UAAA,KAAK,EAAL;AALuB,SAAD,CAAxB;AAOD,OARD,MAQO,IAAI,WAAJ,EAAiB;AACtB,QAAA,QAAQ,CAAC,IAAT,CAAc,WAAd;AACD,OAFM,MAEA;AACL,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,UAAM,SAAS,kBAAW,MAAM,CAAC,KAAP,IAAgB,OAA3B,CAAf;AAEA,aAAO,CAAC,CAAC,IAAD,EAAO;AACb,QAAA,KAAK,EAAE,CACL,SADK,EAEL,MAAM,CAAC,SAFF,EAGL;AACE,mCAAyB,MAAM,CAAC;AADlC,SAHK;AADM,OAAP,EAQL,QARK,CAAR;AASD,KAjCwB,CAAzB;AAmCA,WAAO,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,CAAR;AACD;AAnDuB,CAAX,C","sourcesContent":["// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots[slotName]\n const regularSlot = computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n })\n\n return h('tr', data, columns)\n },\n})\n"],"sourceRoot":"","file":"Row.js"}
1
+ {"version":3,"sources":["../../../src/components/VDataTable/Row.ts"],"names":[],"mappings":";;;;;;;AACA;;AAIA;;;;;;;;;;;;;;;;AAEA,SAAS,OAAT,CAAkB,IAAlB,EAA2C;AAAA;;AACzC,SAAO,IAAK,CAAC,MAAN,KAAiB,CAAjB,IACL,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,QAAb,WAAsB,IAAK,CAAC,CAAD,CAA3B,qBAAsB,OAAU,GAAhC,CADH;AAED;;eAEc,aAAI,MAAJ,CAAW;AACxB,EAAA,IAAI,EAAE,KADkB;AAGxB,EAAA,UAAU,EAAE,IAHY;AAKxB,EAAA,KAAK,EAAE;AACL,IAAA,OAAO,EAAE,KADJ;AAEL,IAAA,KAAK,EAAE,MAFF;AAGL,IAAA,IAAI,EAAE,MAHD;AAIL,IAAA,GAAG,EAAE;AAJA,GALiB;AAYxB,EAAA,MAZwB,kBAYhB,CAZgB,QAYS;AAAA,QAApB,KAAoB,QAApB,KAAoB;AAAA,QAAb,KAAa,QAAb,KAAa;AAAA,QAAN,IAAM,QAAN,IAAM;AAC/B,QAAM,aAAa,GAAG,KAAK,EAA3B;AAEA,QAAM,OAAO,GAAG,KAAK,CAAC,OAAN,CAAc,GAAd,CAAkB,UAAC,MAAD,EAA4B;AAC5D,UAAM,QAAQ,GAAG,EAAjB;AACA,UAAM,KAAK,GAAG,mCAAqB,KAAK,CAAC,IAA3B,EAAiC,MAAM,CAAC,KAAxC,CAAd;AAEA,UAAM,QAAQ,GAAG,MAAM,CAAC,KAAxB;AACA,UAAM,UAAU,GAAG,IAAI,CAAC,WAAL,IAAoB,IAAI,CAAC,WAAL,CAAiB,cAAjB,CAAgC,QAAhC,CAApB,IAAiE,IAAI,CAAC,WAAL,CAAiB,QAAjB,CAApF;AACA,UAAM,WAAW,GAAG,aAAa,CAAC,cAAd,CAA6B,QAA7B,KAA0C,aAAa,CAAC,QAAD,CAA3E;;AAEA,UAAI,UAAJ,EAAgB;AACd,QAAA,QAAQ,CAAC,IAAT,OAAA,QAAQ,qBAAS,0BAAY,UAAU,CAAC;AACtC,UAAA,IAAI,EAAE,KAAK,CAAC,IAD0B;AAEtC,UAAA,QAAQ,EAAE,KAF4B;AAGtC,UAAA,MAAM,EAAN,MAHsC;AAItC,UAAA,KAAK,EAAE,KAAK,CAAC,KAJyB;AAKtC,UAAA,KAAK,EAAL;AALsC,SAAD,CAAtB,CAAT,EAAR;AAOD,OARD,MAQO,IAAI,WAAJ,EAAiB;AACtB,QAAA,QAAQ,CAAC,IAAT,OAAA,QAAQ,qBAAS,0BAAY,WAAZ,CAAT,EAAR;AACD,OAFM,MAEA;AACL,QAAA,QAAQ,CAAC,IAAT,CAAc,KAAK,IAAI,IAAT,GAAgB,KAAhB,GAAwB,MAAM,CAAC,KAAD,CAA5C;AACD;;AAED,UAAM,SAAS,kBAAW,MAAM,CAAC,KAAP,IAAgB,OAA3B,CAAf;AAEA,aAAO,OAAO,CAAC,QAAD,CAAP,GACH,CAAC,CAAC,IAAD,EAAO;AACR,QAAA,KAAK,EAAE,CACL,SADK,EAEL,MAAM,CAAC,SAFF,EAGL;AACE,mCAAyB,MAAM,CAAC;AADlC,SAHK;AADC,OAAP,EAQA,QARA,CADE,GAUH,QAVJ;AAWD,KAnCe,CAAhB;AAqCA,WAAO,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,CAAR;AACD;AArDuB,CAAX,C","sourcesContent":["// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType<DataTableHeader[]>,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n"],"sourceRoot":"","file":"Row.js"}
@@ -93,7 +93,7 @@ var _default = (0, _mixins.default)(_header.default).extend({
93
93
  return this.$createElement('th', data, [this.genSelectAll()]);
94
94
  }
95
95
 
96
- children.push(this.$scopedSlots[header.value] ? this.$scopedSlots[header.value]({
96
+ children.push(this.$scopedSlots.hasOwnProperty(header.value) ? this.$scopedSlots[header.value]({
97
97
  header: header
98
98
  }) : this.$createElement('span', [header.text]));
99
99
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDataTable/VDataTableHeaderDesktop.ts"],"names":[],"mappings":"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","sourcesContent":["// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required<Pick<VNodeData, 'attrs' | 'on' | 'class' | 'style'>> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots[header.value]\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDataTableHeaderDesktop.js"}
1
+ {"version":3,"sources":["../../../src/components/VDataTable/VDataTableHeaderDesktop.ts"],"names":[],"mappings":"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","sourcesContent":["// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required<Pick<VNodeData, 'attrs' | 'on' | 'class' | 'style'>> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots.hasOwnProperty(header.value)\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDataTableHeaderDesktop.js"}
@@ -113,7 +113,7 @@ var _default2 = (0, _mixins.default)(_colorable.default, _localable.default, _th
113
113
  this.wheelThrottle = (0, _helpers.throttle)(this.wheel, 250);
114
114
  },
115
115
  methods: {
116
- genButtonClasses: function genButtonClasses(isAllowed, isFloating, isSelected, isCurrent) {
116
+ genButtonClasses: function genButtonClasses(isAllowed, isFloating, isSelected, isCurrent, isFirst, isLast) {
117
117
  return _objectSpread({
118
118
  'v-size--default': !isFloating,
119
119
  'v-date-picker-table__current': isCurrent,
@@ -122,7 +122,9 @@ var _default2 = (0, _mixins.default)(_colorable.default, _localable.default, _th
122
122
  'v-btn--text': isSelected === isCurrent,
123
123
  'v-btn--rounded': isFloating,
124
124
  'v-btn--disabled': !isAllowed || this.disabled,
125
- 'v-btn--outlined': isCurrent && !isSelected
125
+ 'v-btn--outlined': isCurrent && !isSelected,
126
+ 'v-date-picker--first-in-range': isFirst,
127
+ 'v-date-picker--last-in-range': isLast
126
128
  }, this.themeClasses);
127
129
  },
128
130
  genButtonEvents: function genButtonEvents(value, isAllowed, mouseEventType) {
@@ -142,9 +144,17 @@ var _default2 = (0, _mixins.default)(_colorable.default, _localable.default, _th
142
144
  var isCurrent = value === this.current;
143
145
  var setColor = isSelected ? this.setBackgroundColor : this.setTextColor;
144
146
  var color = (isSelected || isCurrent) && (this.color || 'accent');
147
+ var isFirst = false;
148
+ var isLast = false;
149
+
150
+ if (this.range && !!this.value && Array.isArray(this.value)) {
151
+ isFirst = value === this.value[0];
152
+ isLast = value === this.value[this.value.length - 1];
153
+ }
154
+
145
155
  return this.$createElement('button', setColor(color, {
146
156
  staticClass: 'v-btn',
147
- class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent),
157
+ class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent, isFirst, isLast),
148
158
  attrs: {
149
159
  type: 'button'
150
160
  },