@vuetify/nightly 3.2.0-next-20230114.0 → 4.0.0-next-20230205.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/CHANGELOG.md +203 -11
  2. package/dist/json/importMap-labs.json +8 -4
  3. package/dist/json/importMap.json +12 -12
  4. package/dist/vuetify-labs.css +173 -165
  5. package/dist/vuetify-labs.d.ts +399 -176
  6. package/dist/vuetify-labs.esm.js +362 -278
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +361 -277
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +53 -45
  11. package/dist/vuetify.d.ts +330 -179
  12. package/dist/vuetify.esm.js +329 -248
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +328 -247
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +700 -689
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/blueprints/index.d.ts +2 -2
  20. package/lib/blueprints/md1.d.ts +2 -2
  21. package/lib/blueprints/md2.d.ts +2 -2
  22. package/lib/blueprints/md3.d.ts +2 -2
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  25. package/lib/components/VAutocomplete/index.d.ts +43 -20
  26. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
  27. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  28. package/lib/components/VBtn/VBtn.css +7 -7
  29. package/lib/components/VBtn/VBtn.mjs +16 -5
  30. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  31. package/lib/components/VBtnGroup/VBtnGroup.mjs +15 -11
  32. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  33. package/lib/components/VBtnGroup/index.d.ts +2 -1
  34. package/lib/components/VBtnToggle/VBtnToggle.mjs +9 -5
  35. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  36. package/lib/components/VBtnToggle/index.d.ts +122 -1
  37. package/lib/components/VCalendar/VCalendar.mjs +3 -0
  38. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  39. package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
  40. package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
  41. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  42. package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
  43. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  44. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
  45. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  46. package/lib/components/VCalendar/mixins/mouse.mjs +16 -30
  47. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  48. package/lib/components/VCard/VCard.css +7 -7
  49. package/lib/components/VChip/VChip.css +7 -7
  50. package/lib/components/VCombobox/VCombobox.mjs +4 -4
  51. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  52. package/lib/components/VCombobox/index.d.ts +43 -20
  53. package/lib/components/VData/VData.mjs +2 -4
  54. package/lib/components/VData/VData.mjs.map +1 -1
  55. package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
  56. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  57. package/lib/components/VDefaultsProvider/index.d.ts +5 -4
  58. package/lib/components/VDialog/VDialog.mjs +6 -5
  59. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  60. package/lib/components/VDialog/index.d.ts +57 -34
  61. package/lib/components/VDivider/VDivider.mjs +6 -6
  62. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  63. package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
  64. package/lib/components/VField/VField.css +2 -2
  65. package/lib/components/VField/VField.mjs +28 -26
  66. package/lib/components/VField/VField.mjs.map +1 -1
  67. package/lib/components/VField/VField.sass +2 -2
  68. package/lib/components/VFileInput/VFileInput.css +1 -0
  69. package/lib/components/VFileInput/VFileInput.mjs +7 -4
  70. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  71. package/lib/components/VFileInput/VFileInput.sass +1 -0
  72. package/lib/components/VForm/index.d.ts +0 -3
  73. package/lib/components/VList/VList.mjs +4 -1
  74. package/lib/components/VList/VList.mjs.map +1 -1
  75. package/lib/components/VList/VListItem.css +8 -8
  76. package/lib/components/VList/VListItem.mjs +29 -19
  77. package/lib/components/VList/VListItem.mjs.map +1 -1
  78. package/lib/components/VList/VListItem.sass +1 -1
  79. package/lib/components/VMenu/VMenu.mjs +6 -5
  80. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  81. package/lib/components/VMenu/index.d.ts +57 -34
  82. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
  83. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  84. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  85. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
  86. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  87. package/lib/components/VNavigationDrawer/touch.mjs +7 -6
  88. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  89. package/lib/components/VOtpInput/VOtpInput.mjs +22 -46
  90. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  91. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
  92. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  93. package/lib/components/VOverlay/index.d.ts +34 -11
  94. package/lib/components/VOverlay/locationStrategies.mjs +40 -29
  95. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  96. package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
  97. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  98. package/lib/components/VPagination/VPagination.mjs +1 -1
  99. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  100. package/lib/components/VProgressLinear/VProgressLinear.mjs +13 -1
  101. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  102. package/lib/components/VProgressLinear/index.d.ts +18 -0
  103. package/lib/components/VSelect/VSelect.mjs +3 -4
  104. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  105. package/lib/components/VSelect/index.d.ts +43 -20
  106. package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
  107. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
  108. package/lib/components/VSnackbar/index.d.ts +42 -19
  109. package/lib/components/VStepper/VStepper.sass +6 -6
  110. package/lib/components/VStepper/VStepperStep.mjs +12 -2
  111. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  112. package/lib/components/VTable/VTable.css +4 -4
  113. package/lib/components/VTable/VTable.sass +2 -2
  114. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  115. package/lib/components/VTimeline/_mixins.sass +1 -1
  116. package/lib/components/VTooltip/VTooltip.mjs +4 -3
  117. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  118. package/lib/components/VTooltip/index.d.ts +57 -34
  119. package/lib/components/VTreeview/VTreeview.mjs +1 -1
  120. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  121. package/lib/components/index.d.ts +328 -176
  122. package/lib/composables/defaults.mjs +1 -1
  123. package/lib/composables/defaults.mjs.map +1 -1
  124. package/lib/composables/filter.mjs +3 -3
  125. package/lib/composables/filter.mjs.map +1 -1
  126. package/lib/composables/form.mjs +0 -1
  127. package/lib/composables/form.mjs.map +1 -1
  128. package/lib/composables/toggleScope.mjs +14 -7
  129. package/lib/composables/toggleScope.mjs.map +1 -1
  130. package/lib/directives/ripple/VRipple.css +3 -0
  131. package/lib/directives/ripple/VRipple.sass +3 -0
  132. package/lib/directives/ripple/_variables.scss +1 -1
  133. package/lib/directives/ripple/index.mjs +2 -7
  134. package/lib/directives/ripple/index.mjs.map +1 -1
  135. package/lib/entry-bundler.mjs +1 -1
  136. package/lib/framework.mjs +1 -1
  137. package/lib/index.d.ts +5 -5
  138. package/lib/labs/VDataTable/VDataTable.mjs +6 -6
  139. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  140. package/lib/labs/VDataTable/VDataTableFooter.mjs +1 -1
  141. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  142. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  143. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  144. package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
  145. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  146. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
  147. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  148. package/lib/labs/VDataTable/composables/options.mjs +3 -7
  149. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  150. package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
  151. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  152. package/lib/labs/VDataTable/index.d.ts +71 -1
  153. package/lib/labs/VDataTable/index.mjs +1 -0
  154. package/lib/labs/VDataTable/index.mjs.map +1 -1
  155. package/lib/labs/components.d.ts +71 -1
  156. package/lib/locale/adapters/vue-i18n.mjs +12 -2
  157. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  158. package/lib/locale/ar.mjs +20 -20
  159. package/lib/locale/ar.mjs.map +1 -1
  160. package/lib/locale/en.mjs +2 -2
  161. package/lib/locale/en.mjs.map +1 -1
  162. package/lib/locale/es.mjs +3 -3
  163. package/lib/locale/es.mjs.map +1 -1
  164. package/lib/locale/fi.mjs +5 -5
  165. package/lib/locale/fi.mjs.map +1 -1
  166. package/lib/locale/it.mjs +6 -6
  167. package/lib/locale/it.mjs.map +1 -1
  168. package/lib/locale/sv.mjs +13 -13
  169. package/lib/locale/sv.mjs.map +1 -1
  170. package/lib/styles/settings/_variables.scss +6 -6
  171. package/lib/styles/tools/_states.sass +3 -3
  172. package/lib/util/defineComponent.mjs +21 -18
  173. package/lib/util/defineComponent.mjs.map +1 -1
  174. package/lib/util/helpers.mjs +5 -19
  175. package/lib/util/helpers.mjs.map +1 -1
  176. package/package.json +1 -1
@@ -60,7 +60,10 @@ export default CalendarBase.extend({
60
60
  },
61
61
  genHead() {
62
62
  return this.$createElement('div', {
63
- staticClass: 'v-calendar-weekly__head'
63
+ staticClass: 'v-calendar-weekly__head',
64
+ attrs: {
65
+ role: 'row'
66
+ }
64
67
  }, this.genHeadDays());
65
68
  },
66
69
  genHeadDays() {
@@ -78,7 +81,10 @@ export default CalendarBase.extend({
78
81
  return this.$createElement('div', this.setTextColor(color, {
79
82
  key: day.date,
80
83
  staticClass: 'v-calendar-weekly__head-weekday',
81
- class: this.getRelativeClasses(day, outside)
84
+ class: this.getRelativeClasses(day, outside),
85
+ attrs: {
86
+ role: 'columnheader'
87
+ }
82
88
  }), this.weekdayFormatter(day, this.shortWeekdays));
83
89
  },
84
90
  genWeeks() {
@@ -97,7 +103,10 @@ export default CalendarBase.extend({
97
103
  }
98
104
  return this.$createElement('div', {
99
105
  key: week[0].date,
100
- staticClass: 'v-calendar-weekly__week'
106
+ staticClass: 'v-calendar-weekly__week',
107
+ attrs: {
108
+ role: 'row'
109
+ }
101
110
  }, weekNodes);
102
111
  },
103
112
  getWeekNumber(determineDay) {
@@ -114,7 +123,15 @@ export default CalendarBase.extend({
114
123
  key: day.date,
115
124
  staticClass: 'v-calendar-weekly__day',
116
125
  class: this.getRelativeClasses(day, outside),
117
- on: this.getDefaultMouseEventHandlers(':day', _e => day)
126
+ attrs: {
127
+ role: 'cell'
128
+ },
129
+ on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {
130
+ return {
131
+ nativeEvent,
132
+ ...day
133
+ };
134
+ })
118
135
  }, [this.genDayLabel(day), ...(getSlot(this, 'day', () => ({
119
136
  outside,
120
137
  index,
@@ -148,7 +165,10 @@ export default CalendarBase.extend({
148
165
  prevent: true,
149
166
  result: false
150
167
  }
151
- }, _e => day)
168
+ }, nativeEvent => ({
169
+ nativeEvent,
170
+ ...day
171
+ }))
152
172
  }, hasMonth ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false) : this.dayFormatter(day, false));
153
173
  },
154
174
  genDayMonth(day) {
@@ -1 +1 @@
1
- {"version":3,"file":"VCalendarWeekly.mjs","names":["VBtn","CalendarBase","getSlot","weekNumber","props","createDayList","getDayIdentifier","createNativeLocaleFormatter","extend","name","weeks","computed","staticClass","classes","themeClasses","parsedMinWeeks","parseInt","minWeeks","days","minDays","parsedWeekdays","length","start","getStartOfWeek","parsedStart","end","getEndOfWeek","parsedEnd","times","today","weekdaySkips","Number","MAX_SAFE_INTEGER","todayWeek","monthFormatter","monthFormat","longOptions","timeZone","month","shortOptions","currentLocale","_tms","short","methods","isOutside","day","dayIdentifier","genHead","$createElement","genHeadDays","header","map","genHeadDay","showWeek","unshift","index","outside","color","present","undefined","setTextColor","key","date","class","getRelativeClasses","weekdayFormatter","shortWeekdays","genWeeks","weekDays","i","push","genWeek","slice","getWeekNumber","week","weekNodes","genDay","genWeekNumber","determineDay","year","localeFirstDayOfYear","String","on","getDefaultMouseEventHandlers","_e","genDayLabel","genDayLabelButton","hasMonth","showMonthOnFirst","fab","depressed","small","getMouseEventHandlers","event","stop","prevent","result","shortMonths","dayFormatter","genDayMonth","render","h","dragstart","e","preventDefault","hideHeader"],"sources":["../../../src/components/VCalendar/VCalendarWeekly.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'v-calendar-weekly',\n\n props: props.weeks,\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const today = this.times.today\n const start = this.getStartOfWeek(today)\n const end = this.getEndOfWeek(today)\n\n return createDayList(\n start,\n end,\n today,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head',\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n key: day.date,\n staticClass: 'v-calendar-weekly__head-weekday',\n class: this.getRelativeClasses(day, outside),\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return this.$createElement('div', {\n key: week[0].date,\n staticClass: 'v-calendar-weekly__week',\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__weeknumber',\n }, [\n this.$createElement('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-weekly__day',\n class: this.getRelativeClasses(day, outside),\n on: this.getDefaultMouseEventHandlers(':day', _e => day),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', () => ({ outside, index, week, ...day })) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n small: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, _e => day),\n }, hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n )\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: this.staticClass,\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VCalendarWeekly.mjs","names":["VBtn","CalendarBase","getSlot","weekNumber","props","createDayList","getDayIdentifier","createNativeLocaleFormatter","extend","name","weeks","computed","staticClass","classes","themeClasses","parsedMinWeeks","parseInt","minWeeks","days","minDays","parsedWeekdays","length","start","getStartOfWeek","parsedStart","end","getEndOfWeek","parsedEnd","times","today","weekdaySkips","Number","MAX_SAFE_INTEGER","todayWeek","monthFormatter","monthFormat","longOptions","timeZone","month","shortOptions","currentLocale","_tms","short","methods","isOutside","day","dayIdentifier","genHead","$createElement","attrs","role","genHeadDays","header","map","genHeadDay","showWeek","unshift","index","outside","color","present","undefined","setTextColor","key","date","class","getRelativeClasses","weekdayFormatter","shortWeekdays","genWeeks","weekDays","i","push","genWeek","slice","getWeekNumber","week","weekNodes","genDay","genWeekNumber","determineDay","year","localeFirstDayOfYear","String","on","getDefaultMouseEventHandlers","nativeEvent","genDayLabel","genDayLabelButton","hasMonth","showMonthOnFirst","fab","depressed","small","getMouseEventHandlers","event","stop","prevent","result","shortMonths","dayFormatter","genDayMonth","render","h","dragstart","e","preventDefault","hideHeader"],"sources":["../../../src/components/VCalendar/VCalendarWeekly.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'v-calendar-weekly',\n\n props: props.weeks,\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const today = this.times.today\n const start = this.getStartOfWeek(today)\n const end = this.getEndOfWeek(today)\n\n return createDayList(\n start,\n end,\n today,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head',\n attrs: {\n role: 'row',\n },\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n key: day.date,\n staticClass: 'v-calendar-weekly__head-weekday',\n class: this.getRelativeClasses(day, outside),\n attrs: {\n role: 'columnheader',\n },\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return this.$createElement('div', {\n key: week[0].date,\n staticClass: 'v-calendar-weekly__week',\n attrs: {\n role: 'row',\n },\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__weeknumber',\n }, [\n this.$createElement('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-weekly__day',\n class: this.getRelativeClasses(day, outside),\n attrs: {\n role: 'cell',\n },\n on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', () => ({ outside, index, week, ...day })) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n small: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => ({ nativeEvent, ...day })),\n }, hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n )\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: this.staticClass,\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n"],"mappings":"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"}
@@ -7,8 +7,7 @@ import "./calendar-with-events.css";
7
7
  // Types
8
8
  // Directives
9
9
  import ripple from "../../../directives/ripple/index.mjs"; // Mixins
10
- import CalendarBase from "./calendar-base.mjs"; // Helpers
11
- import { escapeHTML } from "../../../util/helpers.mjs"; // Util
10
+ import CalendarBase from "./calendar-base.mjs"; // Util
12
11
  import props from "../util/props.mjs";
13
12
  import { CalendarEventOverlapModes } from "../modes/index.mjs";
14
13
  import { getDayIdentifier, diffMinutes } from "../util/timestamp.mjs";
@@ -48,7 +47,7 @@ export default CalendarBase.extend({
48
47
  return typeof this.eventTextColor === 'function' ? this.eventTextColor : () => this.eventTextColor;
49
48
  },
50
49
  eventNameFunction() {
51
- return typeof this.eventName === 'function' ? this.eventName : (event, timedEvent) => escapeHTML(event.input[this.eventName] || '');
50
+ return typeof this.eventName === 'function' ? this.eventName : (event, timedEvent) => event.input[this.eventName] || '';
52
51
  },
53
52
  eventModeFunction() {
54
53
  return typeof this.eventOverlapMode === 'function' ? this.eventOverlapMode : CalendarEventOverlapModes[this.eventOverlapMode];
@@ -232,17 +231,22 @@ export default CalendarBase.extend({
232
231
  const eventSummary = () => {
233
232
  const name = this.eventNameFunction(event, timedEvent);
234
233
  if (event.start.hasTime) {
235
- const eventSummaryClass = 'v-event-summary';
236
234
  if (timedEvent) {
237
235
  const time = timeSummary();
238
- const delimiter = singline ? ', ' : '<br>';
239
- return `<span class="${eventSummaryClass}"><strong>${name}</strong>${delimiter}${time}</span>`;
236
+ const delimiter = singline ? ', ' : this.$createElement('br');
237
+ return this.$createElement('span', {
238
+ staticClass: 'v-event-summary'
239
+ }, [this.$createElement('strong', [name]), delimiter, time]);
240
240
  } else {
241
241
  const time = formatTime(event.start, true);
242
- return `<span class="${eventSummaryClass}"><strong>${time}</strong> ${name}</span>`;
242
+ return this.$createElement('span', {
243
+ staticClass: 'v-event-summary'
244
+ }, [this.$createElement('strong', [time]), ' ', name]);
243
245
  }
244
246
  }
245
- return name;
247
+ return this.$createElement('span', {
248
+ staticClass: 'v-event-summary'
249
+ }, [name]);
246
250
  };
247
251
  const scope = {
248
252
  ...scopeInput,
@@ -268,11 +272,8 @@ export default CalendarBase.extend({
268
272
  },
269
273
  genName(eventSummary) {
270
274
  return this.$createElement('div', {
271
- staticClass: 'pl-1',
272
- domProps: {
273
- innerHTML: eventSummary()
274
- }
275
- });
275
+ staticClass: 'pl-1'
276
+ }, [eventSummary()]);
276
277
  },
277
278
  genPlaceholder(day) {
278
279
  const height = this.eventHeight + this.eventMarginBottom;
@@ -303,9 +304,12 @@ export default CalendarBase.extend({
303
304
  name: 'ripple',
304
305
  value: this.eventRipple ?? true
305
306
  }],
306
- on: {
307
- click: e => this.$emit('click:more', day, e)
308
- },
307
+ on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {
308
+ return {
309
+ nativeEvent,
310
+ ...day
311
+ };
312
+ }),
309
313
  style: {
310
314
  display: 'none',
311
315
  height: `${eventHeight}px`,
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-with-events.mjs","names":["ripple","CalendarBase","escapeHTML","props","CalendarEventOverlapModes","getDayIdentifier","diffMinutes","parseEvent","isEventStart","isEventOn","isEventOverlapping","isEventHiddenOn","WIDTH_FULL","WIDTH_START","MINUTES_IN_DAY","extend","name","directives","events","calendar","category","computed","noEvents","length","parsedEvents","map","parsedEventOverlapThreshold","parseInt","eventOverlapThreshold","eventTimedFunction","eventTimed","event","eventCategoryFunction","eventCategory","eventTextColorFunction","eventTextColor","eventNameFunction","eventName","timedEvent","input","eventModeFunction","eventOverlapMode","eventWeekdays","parsedWeekdays","categoryMode","type","methods","eventColorFunction","e","eventColor","color","index","eventStart","eventEnd","formatTime","withTime","ampm","formatter","getFormatter","timeZone","hour","minute","undefined","updateEventVisibility","eventMore","eventHeight","eventsMap","getEventsMap","date","parent","more","parentBounds","getBoundingClientRect","last","eventsSorted","bottom","sort","a","b","hidden","i","hide","style","display","innerHTML","$vuetify","lang","t","eventMoreText","elements","$refs","forEach","el","getAttribute","parentElement","push","genDayEvent","day","eventMarginBottom","dayIdentifier","week","start","startIdentifier","end","endIdentifier","width","weekdayIdentifier","scope","eventParsed","timed","genEvent","staticClass","class","height","attrs","key","ref","refInFor","genTimedEvent","left","timeDelta","top","timeToY","Math","max","scopeInput","data","slot","$scopedSlots","text","background","overlapsNoon","singline","timeSummary","eventSummary","hasTime","eventSummaryClass","time","delimiter","outside","$createElement","setTextColor","setBackgroundColor","on","getDefaultMouseEventHandlers","nativeEvent","value","eventRipple","genName","domProps","genPlaceholder","genMore","click","$emit","getVisibleEvents","days","filter","isEventForCategory","categoryName","getEventsForDay","identifier","firstWeekday","getEventsForDayAll","allDay","getEventsForDayTimed","getScopedSlots","mode","isNode","getSlotChildren","getter","mapper","visuals","visual","children","column","mapped","slots","slotDay","slotDayHeader","slotDayBody","concat"],"sources":["../../../../src/components/VCalendar/mixins/calendar-with-events.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// 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: (e: MouseEvent) => this.$emit('click:more', day, e),\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"],"mappings":"AAAA;AACA;;AAEA;AACA;;AAEA;AAGA;AAAA,OACOA,MAAM,8CAEb;AAAA,OACOC,YAAY,6BAEnB;AAAA,SACSC,UAAU,qCAEnB;AAAA,OACOC,KAAK;AAAA,SAEVC,yBAAyB;AAAA,SAGzBC,gBAAgB,EAAEC,WAAW;AAAA,SAG7BC,UAAU,EACVC,YAAY,EACZC,SAAS,EACTC,kBAAkB,EAClBC,eAAe;AA4CjB,MAAMC,UAAU,GAAG,GAAG;AACtB,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAMC,cAAc,GAAG,IAAI;;AAE3B;AACA,eAAeb,YAAY,CAACc,MAAM,CAAC;EACjCC,IAAI,EAAE,sBAAsB;EAE5BC,UAAU,EAAE;IACVjB;EACF,CAAC;EAEDG,KAAK,EAAE;IACL,GAAGA,KAAK,CAACe,MAAM;IACf,GAAGf,KAAK,CAACgB,QAAQ;IACjB,GAAGhB,KAAK,CAACiB;EACX,CAAC;EAEDC,QAAQ,EAAE;IACRC,QAAQ,GAAa;MACnB,OAAO,IAAI,CAACJ,MAAM,CAACK,MAAM,KAAK,CAAC;IACjC,CAAC;IACDC,YAAY,GAA2B;MACrC,OAAO,IAAI,CAACN,MAAM,CAACO,GAAG,CAAC,IAAI,CAAClB,UAAU,CAAC;IACzC,CAAC;IACDmB,2BAA2B,GAAY;MACrC,OAAOC,QAAQ,CAAC,IAAI,CAACC,qBAAqB,CAAC;IAC7C,CAAC;IACDC,kBAAkB,GAAgC;MAChD,OAAO,OAAO,IAAI,CAACC,UAAU,KAAK,UAAU,GACxC,IAAI,CAACA,UAAU,GACfC,KAAK,IAAI,CAAC,CAACA,KAAK,CAAC,IAAI,CAACD,UAAU,CAAW;IACjD,CAAC;IACDE,qBAAqB,GAAmC;MACtD,OAAO,OAAO,IAAI,CAACC,aAAa,KAAK,UAAU,GAC3C,IAAI,CAACA,aAAa,GAClBF,KAAK,IAAIA,KAAK,CAAC,IAAI,CAACE,aAAa,CAAW;IAClD,CAAC;IACDC,sBAAsB,GAAgC;MACpD,OAAO,OAAO,IAAI,CAACC,cAAc,KAAK,UAAU,GAC5C,IAAI,CAACA,cAAc,GACnB,MAAM,IAAI,CAACA,cAAwB;IACzC,CAAC;IACDC,iBAAiB,GAA+B;MAC9C,OAAO,OAAO,IAAI,CAACC,SAAS,KAAK,UAAU,GACvC,IAAI,CAACA,SAAS,GACd,CAACN,KAAK,EAAEO,UAAU,KAAKpC,UAAU,CAAC6B,KAAK,CAACQ,KAAK,CAAC,IAAI,CAACF,SAAS,CAAW,IAAc,EAAE,CAAC;IAC9F,CAAC;IACDG,iBAAiB,GAA8B;MAC7C,OAAO,OAAO,IAAI,CAACC,gBAAgB,KAAK,UAAU,GAC9C,IAAI,CAACA,gBAAgB,GACrBrC,yBAAyB,CAAC,IAAI,CAACqC,gBAAgB,CAAC;IACtD,CAAC;IACDC,aAAa,GAAc;MACzB,OAAO,IAAI,CAACC,cAAc;IAC5B,CAAC;IACDC,YAAY,GAAa;MACvB,OAAO,IAAI,CAACC,IAAI,KAAK,UAAU;IACjC;EACF,CAAC;EAEDC,OAAO,EAAE;IACPC,kBAAkB,CAAEC,CAAgB,EAAU;MAC5C,OAAO,OAAO,IAAI,CAACC,UAAU,KAAK,UAAU,GACxC,IAAI,CAACA,UAAU,CAACD,CAAC,CAAC,GAClBA,CAAC,CAACE,KAAK,IAAI,IAAI,CAACD,UAAU;IAChC,CAAC;IACD1C,UAAU,CAAEgC,KAAoB,EAAkC;MAAA,IAAhCY,KAAK,uEAAG,CAAC;MACzC,OAAO5C,UAAU,CACfgC,KAAK,EACLY,KAAK,EACL,IAAI,CAACC,UAAU,EACf,IAAI,CAACC,QAAQ,EACb,IAAI,CAACxB,kBAAkB,CAACU,KAAK,CAAC,EAC9B,IAAI,CAACK,YAAY,GAAG,IAAI,CAACZ,qBAAqB,CAACO,KAAK,CAAC,GAAG,KAAK,CAC9D;IACH,CAAC;IACDe,UAAU,CAAEC,QAA2B,EAAEC,IAAa,EAAU;MAC9D,MAAMC,SAAS,GAAG,IAAI,CAACC,YAAY,CAAC;QAClCC,QAAQ,EAAE,KAAK;QACfC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAEN,QAAQ,CAACM,MAAM,GAAG,CAAC,GAAG,SAAS,GAAGC;MAC5C,CAAC,CAAC;MAEF,OAAOL,SAAS,CAACF,QAAQ,EAAE,IAAI,CAAC;IAClC,CAAC;IACDQ,qBAAqB,GAAI;MACvB,IAAI,IAAI,CAACzC,QAAQ,IAAI,CAAC,IAAI,CAAC0C,SAAS,EAAE;QACpC;MACF;MAEA,MAAMC,WAAW,GAAG,IAAI,CAACA,WAAW;MACpC,MAAMC,SAAS,GAAG,IAAI,CAACC,YAAY,EAAE;MAErC,KAAK,MAAMC,IAAI,IAAIF,SAAS,EAAE;QAC5B,MAAM;UAAEG,MAAM;UAAEnD,MAAM;UAAEoD;QAAK,CAAC,GAAGJ,SAAS,CAACE,IAAI,CAAC;QAChD,IAAI,CAACE,IAAI,EAAE;UACT;QACF;QAEA,MAAMC,YAAY,GAAGF,MAAM,CAACG,qBAAqB,EAAE;QACnD,MAAMC,IAAI,GAAGvD,MAAM,CAACK,MAAM,GAAG,CAAC;QAC9B,MAAMmD,YAAY,GAAGxD,MAAM,CAACO,GAAG,CAACM,KAAK,KAAK;UACxCA,KAAK;UACL4C,MAAM,EAAE5C,KAAK,CAACyC,qBAAqB,EAAE,CAACG;QACxC,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACF,MAAM,GAAGG,CAAC,CAACH,MAAM,CAAC;QACvC,IAAII,MAAM,GAAG,CAAC;QAEd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIP,IAAI,EAAEO,CAAC,EAAE,EAAE;UAC9B,MAAML,MAAM,GAAGD,YAAY,CAACM,CAAC,CAAC,CAACL,MAAM;UACrC,MAAMM,IAAI,GAAGD,CAAC,KAAKP,IAAI,GAClBE,MAAM,GAAGJ,YAAY,CAACI,MAAM,GAC5BA,MAAM,GAAGV,WAAW,GAAGM,YAAY,CAACI,MAAO;UAEhD,IAAIM,IAAI,EAAE;YACRP,YAAY,CAACM,CAAC,CAAC,CAACjD,KAAK,CAACmD,KAAK,CAACC,OAAO,GAAG,MAAM;YAC5CJ,MAAM,EAAE;UACV;QACF;QAEA,IAAIA,MAAM,EAAE;UACVT,IAAI,CAACY,KAAK,CAACC,OAAO,GAAG,EAAE;UACvBb,IAAI,CAACc,SAAS,GAAG,IAAI,CAACC,QAAQ,CAACC,IAAI,CAACC,CAAC,CAAC,IAAI,CAACC,aAAa,EAAET,MAAM,CAAC;QACnE,CAAC,MAAM;UACLT,IAAI,CAACY,KAAK,CAACC,OAAO,GAAG,MAAM;QAC7B;MACF;IACF,CAAC;IACDhB,YAAY,GAAqB;MAC/B,MAAMD,SAA0B,GAAG,CAAC,CAAC;MACrC,MAAMuB,QAAQ,GAAG,IAAI,CAACC,KAAK,CAACxE,MAAuB;MAEnD,IAAI,CAACuE,QAAQ,IAAI,CAACA,QAAQ,CAACE,OAAO,EAAE;QAClC,OAAOzB,SAAS;MAClB;MAEAuB,QAAQ,CAACE,OAAO,CAACC,EAAE,IAAI;QACrB,MAAMxB,IAAI,GAAGwB,EAAE,CAACC,YAAY,CAAC,WAAW,CAAC;QACzC,IAAID,EAAE,CAACE,aAAa,IAAI1B,IAAI,EAAE;UAC5B,IAAI,EAAEA,IAAI,IAAIF,SAAS,CAAC,EAAE;YACxBA,SAAS,CAACE,IAAI,CAAC,GAAG;cAChBC,MAAM,EAAEuB,EAAE,CAACE,aAAa;cACxBxB,IAAI,EAAE,IAAI;cACVpD,MAAM,EAAE;YACV,CAAC;UACH;UACA,IAAI0E,EAAE,CAACC,YAAY,CAAC,WAAW,CAAC,EAAE;YAChC3B,SAAS,CAACE,IAAI,CAAC,CAACE,IAAI,GAAGsB,EAAE;UAC3B,CAAC,MAAM;YACL1B,SAAS,CAACE,IAAI,CAAC,CAAClD,MAAM,CAAC6E,IAAI,CAACH,EAAE,CAAC;YAC/BA,EAAE,CAACV,KAAK,CAACC,OAAO,GAAG,EAAE;UACvB;QACF;MACF,CAAC,CAAC;MAEF,OAAOjB,SAAS;IAClB,CAAC;IACD8B,WAAW,OAAkCC,GAAyB,EAAS;MAAA,IAAlE;QAAElE;MAA2B,CAAC;MACzC,MAAMkC,WAAW,GAAG,IAAI,CAACA,WAAW;MACpC,MAAMiC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB;MAChD,MAAMC,aAAa,GAAG9F,gBAAgB,CAAC4F,GAAG,CAAC;MAC3C,MAAMG,IAAI,GAAGH,GAAG,CAACG,IAAI;MACrB,MAAMC,KAAK,GAAGF,aAAa,KAAKpE,KAAK,CAACuE,eAAe;MACrD,IAAIC,GAAG,GAAGJ,aAAa,KAAKpE,KAAK,CAACyE,aAAa;MAC/C,IAAIC,KAAK,GAAG5F,WAAW;MAEvB,IAAI,CAAC,IAAI,CAAC+B,YAAY,EAAE;QACtB,KAAK,IAAIoC,CAAC,GAAGiB,GAAG,CAAC9C,KAAK,GAAG,CAAC,EAAE6B,CAAC,GAAGoB,IAAI,CAAC7E,MAAM,EAAEyD,CAAC,EAAE,EAAE;UAChD,MAAM0B,iBAAiB,GAAGrG,gBAAgB,CAAC+F,IAAI,CAACpB,CAAC,CAAC,CAAC;UACnD,IAAIjD,KAAK,CAACyE,aAAa,IAAIE,iBAAiB,EAAE;YAC5CD,KAAK,IAAI7F,UAAU;YACnB2F,GAAG,GAAGA,GAAG,IAAIG,iBAAiB,KAAK3E,KAAK,CAACyE,aAAa;UACxD,CAAC,MAAM;YACLD,GAAG,GAAG,IAAI;YACV;UACF;QACF;MACF;MACA,MAAMI,KAAK,GAAG;QAAEC,WAAW,EAAE7E,KAAK;QAAEkE,GAAG;QAAEI,KAAK;QAAEE,GAAG;QAAEM,KAAK,EAAE;MAAM,CAAC;MAEnE,OAAO,IAAI,CAACC,QAAQ,CAAC/E,KAAK,EAAE4E,KAAK,EAAE,KAAK,EAAE;QACxCI,WAAW,EAAE,SAAS;QACtBC,KAAK,EAAE;UACL,eAAe,EAAEX,KAAK;UACtB,aAAa,EAAEE;QACjB,CAAC;QACDrB,KAAK,EAAE;UACL+B,MAAM,EAAG,GAAEhD,WAAY,IAAG;UAC1BwC,KAAK,EAAG,GAAEA,KAAM,GAAE;UAClB,eAAe,EAAG,GAAEP,iBAAkB;QACxC,CAAC;QACDgB,KAAK,EAAE;UACL,WAAW,EAAEjB,GAAG,CAAC7B;QACnB,CAAC;QACD+C,GAAG,EAAEpF,KAAK,CAACoB,KAAK;QAChBiE,GAAG,EAAE,QAAQ;QACbC,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ,CAAC;IACDC,aAAa,QAA+CrB,GAA6B,EAAiB;MAAA,IAA3F;QAAElE,KAAK;QAAEwF,IAAI;QAAEd;MAA2B,CAAC;MACxD,IAAIR,GAAG,CAACuB,SAAS,CAACzF,KAAK,CAACwE,GAAG,CAAC,GAAG,CAAC,IAAIN,GAAG,CAACuB,SAAS,CAACzF,KAAK,CAACsE,KAAK,CAAC,IAAI,CAAC,IAAI1F,eAAe,CAACoB,KAAK,EAAEkE,GAAG,CAAC,EAAE;QAClG,OAAO,KAAK;MACd;MAEA,MAAME,aAAa,GAAG9F,gBAAgB,CAAC4F,GAAG,CAAC;MAC3C,MAAMI,KAAK,GAAGtE,KAAK,CAACuE,eAAe,IAAIH,aAAa;MACpD,MAAMI,GAAG,GAAGxE,KAAK,CAACyE,aAAa,GAAGL,aAAa;MAC/C,MAAMsB,GAAG,GAAGpB,KAAK,GAAGJ,GAAG,CAACyB,OAAO,CAAC3F,KAAK,CAACsE,KAAK,CAAC,GAAG,CAAC;MAChD,MAAM1B,MAAM,GAAG4B,GAAG,GAAGN,GAAG,CAACyB,OAAO,CAAC5G,cAAc,CAAC,GAAGmF,GAAG,CAACyB,OAAO,CAAC3F,KAAK,CAACwE,GAAG,CAAC;MACzE,MAAMU,MAAM,GAAGU,IAAI,CAACC,GAAG,CAAC,IAAI,CAAC3D,WAAW,EAAEU,MAAM,GAAG8C,GAAG,CAAC;MACvD,MAAMd,KAAK,GAAG;QAAEC,WAAW,EAAE7E,KAAK;QAAEkE,GAAG;QAAEI,KAAK;QAAEE,GAAG;QAAEM,KAAK,EAAE;MAAK,CAAC;MAElE,OAAO,IAAI,CAACC,QAAQ,CAAC/E,KAAK,EAAE4E,KAAK,EAAE,IAAI,EAAE;QACvCI,WAAW,EAAE,eAAe;QAC5B7B,KAAK,EAAE;UACLuC,GAAG,EAAG,GAAEA,GAAI,IAAG;UACfR,MAAM,EAAG,GAAEA,MAAO,IAAG;UACrBM,IAAI,EAAG,GAAEA,IAAK,GAAE;UAChBd,KAAK,EAAG,GAAEA,KAAM;QAClB;MACF,CAAC,CAAC;IACJ,CAAC;IACDK,QAAQ,CAAE/E,KAA0B,EAAE8F,UAA4B,EAAEvF,UAAmB,EAAEwF,IAAe,EAAS;MAC/G,MAAMC,IAAI,GAAG,IAAI,CAACC,YAAY,CAACjG,KAAK;MACpC,MAAMkG,IAAI,GAAG,IAAI,CAAC/F,sBAAsB,CAACH,KAAK,CAACQ,KAAK,CAAC;MACrD,MAAM2F,UAAU,GAAG,IAAI,CAACnF,kBAAkB,CAAChB,KAAK,CAACQ,KAAK,CAAC;MACvD,MAAM4F,YAAY,GAAGpG,KAAK,CAACsE,KAAK,CAACzC,IAAI,GAAG,EAAE,IAAI7B,KAAK,CAACwE,GAAG,CAAC3C,IAAI,IAAI,EAAE;MAClE,MAAMwE,QAAQ,GAAG9H,WAAW,CAACyB,KAAK,CAACsE,KAAK,EAAEtE,KAAK,CAACwE,GAAG,CAAC,IAAI,IAAI,CAAC7E,2BAA2B;MACxF,MAAM4B,UAAU,GAAG,IAAI,CAACA,UAAU;MAClC,MAAM+E,WAAW,GAAG,MAAM/E,UAAU,CAACvB,KAAK,CAACsE,KAAK,EAAE8B,YAAY,CAAC,GAAG,KAAK,GAAG7E,UAAU,CAACvB,KAAK,CAACwE,GAAG,EAAE,IAAI,CAAC;MACrG,MAAM+B,YAAY,GAAG,MAAM;QACzB,MAAMtH,IAAI,GAAG,IAAI,CAACoB,iBAAiB,CAACL,KAAK,EAAEO,UAAU,CAAC;QACtD,IAAIP,KAAK,CAACsE,KAAK,CAACkC,OAAO,EAAE;UACvB,MAAMC,iBAAiB,GAAG,iBAAiB;UAC3C,IAAIlG,UAAU,EAAE;YACd,MAAMmG,IAAI,GAAGJ,WAAW,EAAE;YAC1B,MAAMK,SAAS,GAAGN,QAAQ,GAAG,IAAI,GAAG,MAAM;YAE1C,OAAQ,gBAAeI,iBAAkB,aAAYxH,IAAK,YAAW0H,SAAU,GAAED,IAAK,SAAQ;UAChG,CAAC,MAAM;YACL,MAAMA,IAAI,GAAGnF,UAAU,CAACvB,KAAK,CAACsE,KAAK,EAAE,IAAI,CAAC;YAE1C,OAAQ,gBAAemC,iBAAkB,aAAYC,IAAK,aAAYzH,IAAK,SAAQ;UACrF;QACF;QAEA,OAAOA,IAAI;MACb,CAAC;MAED,MAAM2F,KAAK,GAAG;QACZ,GAAGkB,UAAU;QACb9F,KAAK,EAAEA,KAAK,CAACQ,KAAK;QAClBoG,OAAO,EAAEd,UAAU,CAAC5B,GAAG,CAAC0C,OAAO;QAC/BP,QAAQ;QACRD,YAAY;QACZ7E,UAAU;QACV+E,WAAW;QACXC;MACF,CAAC;MAED,OAAO,IAAI,CAACM,cAAc,CAAC,KAAK,EAC9B,IAAI,CAACC,YAAY,CAACZ,IAAI,EACpB,IAAI,CAACa,kBAAkB,CAACZ,UAAU,EAAE;QAClCa,EAAE,EAAE,IAAI,CAACC,4BAA4B,CAAC,QAAQ,EAAEC,WAAW,KAAK;UAAE,GAAGtC,KAAK;UAAEsC;QAAY,CAAC,CAAC,CAAC;QAC3FhI,UAAU,EAAE,CAAC;UACXD,IAAI,EAAE,QAAQ;UACdkI,KAAK,EAAE,IAAI,CAACC,WAAW,IAAI;QAC7B,CAAC,CAAC;QACF,GAAGrB;MACL,CAAC,CAAC,CACH,EAAEC,IAAI,GACHA,IAAI,CAACpB,KAAK,CAAC,GACX,CAAC,IAAI,CAACyC,OAAO,CAACd,YAAY,CAAC,CAAC,CACjC;IACH,CAAC;IACDc,OAAO,CAAEd,YAA0B,EAAS;MAC1C,OAAO,IAAI,CAACM,cAAc,CAAC,KAAK,EAAE;QAChC7B,WAAW,EAAE,MAAM;QACnBsC,QAAQ,EAAE;UACRjE,SAAS,EAAEkD,YAAY;QACzB;MACF,CAAC,CAAC;IACJ,CAAC;IACDgB,cAAc,CAAErD,GAAsB,EAAS;MAC7C,MAAMgB,MAAM,GAAG,IAAI,CAAChD,WAAW,GAAG,IAAI,CAACiC,iBAAiB;MAExD,OAAO,IAAI,CAAC0C,cAAc,CAAC,KAAK,EAAE;QAChC1D,KAAK,EAAE;UACL+B,MAAM,EAAG,GAAEA,MAAO;QACpB,CAAC;QACDC,KAAK,EAAE;UACL,WAAW,EAAEjB,GAAG,CAAC7B;QACnB,CAAC;QACDgD,GAAG,EAAE,QAAQ;QACbC,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ,CAAC;IACDkC,OAAO,CAAEtD,GAAyB,EAAS;MACzC,MAAMhC,WAAW,GAAG,IAAI,CAACA,WAAW;MACpC,MAAMiC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB;MAEhD,OAAO,IAAI,CAAC0C,cAAc,CAAC,KAAK,EAAE;QAChC7B,WAAW,EAAE,mBAAmB;QAChCC,KAAK,EAAE;UACL,WAAW,EAAEf,GAAG,CAAC0C;QACnB,CAAC;QACDzB,KAAK,EAAE;UACL,WAAW,EAAEjB,GAAG,CAAC7B,IAAI;UACrB,WAAW,EAAE;QACf,CAAC;QACDnD,UAAU,EAAE,CAAC;UACXD,IAAI,EAAE,QAAQ;UACdkI,KAAK,EAAE,IAAI,CAACC,WAAW,IAAI;QAC7B,CAAC,CAAC;QACFJ,EAAE,EAAE;UACFS,KAAK,EAAGxG,CAAa,IAAK,IAAI,CAACyG,KAAK,CAAC,YAAY,EAAExD,GAAG,EAAEjD,CAAC;QAC3D,CAAC;QACDkC,KAAK,EAAE;UACLC,OAAO,EAAE,MAAM;UACf8B,MAAM,EAAG,GAAEhD,WAAY,IAAG;UAC1B,eAAe,EAAG,GAAEiC,iBAAkB;QACxC,CAAC;QACDkB,GAAG,EAAE,QAAQ;QACbC,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ,CAAC;IACDqC,gBAAgB,GAA2B;MACzC,MAAMrD,KAAK,GAAGhG,gBAAgB,CAAC,IAAI,CAACsJ,IAAI,CAAC,CAAC,CAAC,CAAC;MAC5C,MAAMpD,GAAG,GAAGlG,gBAAgB,CAAC,IAAI,CAACsJ,IAAI,CAAC,IAAI,CAACA,IAAI,CAACpI,MAAM,GAAG,CAAC,CAAC,CAAC;MAE7D,OAAO,IAAI,CAACC,YAAY,CAACoI,MAAM,CAC7B7H,KAAK,IAAIrB,kBAAkB,CAACqB,KAAK,EAAEsE,KAAK,EAAEE,GAAG,CAAC,CAC/C;IACH,CAAC;IACDsD,kBAAkB,CAAE9H,KAA0B,EAAEX,QAA0B,EAAW;MACnF,OAAO,CAAC,IAAI,CAACwB,YAAY,IACtB,OAAOxB,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC0I,YAAY,IACtD1I,QAAQ,CAAC0I,YAAY,KAAK/H,KAAK,CAACX,QAAS,IACxC,OAAOW,KAAK,CAACX,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAKW,KAAK,CAACX,QAAS,IAClE,OAAOW,KAAK,CAACX,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAK;IAC7D,CAAC;IACD2I,eAAe,CAAE9D,GAAyB,EAAyB;MACjE,MAAM+D,UAAU,GAAG3J,gBAAgB,CAAC4F,GAAG,CAAC;MACxC,MAAMgE,YAAY,GAAG,IAAI,CAACvH,aAAa,CAAC,CAAC,CAAC;MAE1C,OAAO,IAAI,CAAClB,YAAY,CAACoI,MAAM,CAC7B7H,KAAK,IAAIvB,YAAY,CAACuB,KAAK,EAAEkE,GAAG,EAAE+D,UAAU,EAAEC,YAAY,CAAC,CAC5D;IACH,CAAC;IACDC,kBAAkB,CAAEjE,GAAyB,EAAyB;MACpE,MAAM+D,UAAU,GAAG3J,gBAAgB,CAAC4F,GAAG,CAAC;MACxC,MAAMgE,YAAY,GAAG,IAAI,CAACvH,aAAa,CAAC,CAAC,CAAC;MAE1C,OAAO,IAAI,CAAClB,YAAY,CAACoI,MAAM,CAC7B7H,KAAK,IAAIA,KAAK,CAACoI,MAAM,KAClB,IAAI,CAACvH,YAAY,GAAGnC,SAAS,CAACsB,KAAK,EAAEiI,UAAU,CAAC,GAAGxJ,YAAY,CAACuB,KAAK,EAAEkE,GAAG,EAAE+D,UAAU,EAAEC,YAAY,CAAC,CAAC,IACvG,IAAI,CAACJ,kBAAkB,CAAC9H,KAAK,EAAEkE,GAAG,CAAC7E,QAAQ,CAAC,CAC/C;IACH,CAAC;IACDgJ,oBAAoB,CAAEnE,GAAyB,EAAyB;MACtE,MAAM+D,UAAU,GAAG3J,gBAAgB,CAAC4F,GAAG,CAAC;MACxC,OAAO,IAAI,CAACzE,YAAY,CAACoI,MAAM,CAC7B7H,KAAK,IAAI,CAACA,KAAK,CAACoI,MAAM,IACpB1J,SAAS,CAACsB,KAAK,EAAEiI,UAAU,CAAC,IAC5B,IAAI,CAACH,kBAAkB,CAAC9H,KAAK,EAAEkE,GAAG,CAAC7E,QAAQ,CAAC,CAC/C;IACH,CAAC;IACDiJ,cAAc,GAAI;MAChB,IAAI,IAAI,CAAC/I,QAAQ,EAAE;QACjB,OAAO;UAAE,GAAG,IAAI,CAAC0G;QAAa,CAAC;MACjC;MAEA,MAAMsC,IAAI,GAAG,IAAI,CAAC9H,iBAAiB,CACjC,IAAI,CAAChB,YAAY,EACjB,IAAI,CAACkB,aAAa,CAAC,CAAC,CAAC,EACrB,IAAI,CAAChB,2BAA2B,CACjC;MAED,MAAM6I,MAAM,GAAIhI,KAAoB,IAAqB,CAAC,CAACA,KAAK;MAChE,MAAMiI,eAA+B,GAAG,CAACvE,GAAG,EAAEwE,MAAM,EAAEC,MAAM,EAAE7D,KAAK,KAAK;QACtE,MAAM3F,MAAM,GAAGuJ,MAAM,CAACxE,GAAG,CAAC;QAC1B,MAAM0E,OAAO,GAAGL,IAAI,CAACrE,GAAG,EAAE/E,MAAM,EAAE2F,KAAK,EAAE,IAAI,CAACjE,YAAY,CAAC;QAE3D,IAAIiE,KAAK,EAAE;UACT,OAAO8D,OAAO,CAAClJ,GAAG,CAACmJ,MAAM,IAAIF,MAAM,CAACE,MAAM,EAAE3E,GAAG,CAAC,CAAC,CAAC2D,MAAM,CAACW,MAAM,CAAC;QAClE;QAEA,MAAMM,QAAiB,GAAG,EAAE;QAE5BF,OAAO,CAAChF,OAAO,CAAC,CAACiF,MAAM,EAAEzH,KAAK,KAAK;UACjC,OAAO0H,QAAQ,CAACtJ,MAAM,GAAGqJ,MAAM,CAACE,MAAM,EAAE;YACtCD,QAAQ,CAAC9E,IAAI,CAAC,IAAI,CAACuD,cAAc,CAACrD,GAAG,CAAC,CAAC;UACzC;UAEA,MAAM8E,MAAM,GAAGL,MAAM,CAACE,MAAM,EAAE3E,GAAG,CAAC;UAClC,IAAI8E,MAAM,EAAE;YACVF,QAAQ,CAAC9E,IAAI,CAACgF,MAAM,CAAC;UACvB;QACF,CAAC,CAAC;QAEF,OAAOF,QAAQ;MACjB,CAAC;MAED,MAAMG,KAAK,GAAG,IAAI,CAAChD,YAAY;MAC/B,MAAMiD,OAAO,GAAGD,KAAK,CAAC/E,GAAG;MACzB,MAAMiF,aAAa,GAAGF,KAAK,CAAC,YAAY,CAAC;MACzC,MAAMG,WAAW,GAAGH,KAAK,CAAC,UAAU,CAAC;MAErC,OAAO;QACL,GAAGA,KAAK;QACR/E,GAAG,EAAGA,GAAyB,IAAK;UAClC,IAAI4E,QAAQ,GAAGL,eAAe,CAACvE,GAAG,EAAE,IAAI,CAAC8D,eAAe,EAAE,IAAI,CAAC/D,WAAW,EAAE,KAAK,CAAC;UAClF,IAAI6E,QAAQ,IAAIA,QAAQ,CAACtJ,MAAM,GAAG,CAAC,IAAI,IAAI,CAACyC,SAAS,EAAE;YACrD6G,QAAQ,CAAC9E,IAAI,CAAC,IAAI,CAACwD,OAAO,CAACtD,GAAG,CAAC,CAAC;UAClC;UACA,IAAIgF,OAAO,EAAE;YACX,MAAMlD,IAAI,GAAGkD,OAAO,CAAChF,GAAG,CAAC;YACzB,IAAI8B,IAAI,EAAE;cACR8C,QAAQ,GAAGA,QAAQ,GAAGA,QAAQ,CAACO,MAAM,CAACrD,IAAI,CAAC,GAAGA,IAAI;YACpD;UACF;UACA,OAAO8C,QAAQ;QACjB,CAAC;QACD,YAAY,EAAG5E,GAAyB,IAAK;UAC3C,IAAI4E,QAAQ,GAAGL,eAAe,CAACvE,GAAG,EAAE,IAAI,CAACiE,kBAAkB,EAAE,IAAI,CAAClE,WAAW,EAAE,KAAK,CAAC;UAErF,IAAIkF,aAAa,EAAE;YACjB,MAAMnD,IAAI,GAAGmD,aAAa,CAACjF,GAAG,CAAC;YAC/B,IAAI8B,IAAI,EAAE;cACR8C,QAAQ,GAAGA,QAAQ,GAAGA,QAAQ,CAACO,MAAM,CAACrD,IAAI,CAAC,GAAGA,IAAI;YACpD;UACF;UACA,OAAO8C,QAAQ;QACjB,CAAC;QACD,UAAU,EAAG5E,GAA6B,IAAK;UAC7C,MAAM/E,MAAM,GAAGsJ,eAAe,CAACvE,GAAG,EAAE,IAAI,CAACmE,oBAAoB,EAAE,IAAI,CAAC9C,aAAa,EAAE,IAAI,CAAC;UACxF,IAAIuD,QAAiB,GAAG,CACtB,IAAI,CAACjC,cAAc,CAAC,KAAK,EAAE;YACzB7B,WAAW,EAAE;UACf,CAAC,EAAE7F,MAAM,CAAC,CACX;UAED,IAAIiK,WAAW,EAAE;YACf,MAAMpD,IAAI,GAAGoD,WAAW,CAAClF,GAAG,CAAC;YAC7B,IAAI8B,IAAI,EAAE;cACR8C,QAAQ,GAAGA,QAAQ,CAACO,MAAM,CAACrD,IAAI,CAAC;YAClC;UACF;UACA,OAAO8C,QAAQ;QACjB;MACF,CAAC;IACH;EACF;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"calendar-with-events.mjs","names":["ripple","CalendarBase","props","CalendarEventOverlapModes","getDayIdentifier","diffMinutes","parseEvent","isEventStart","isEventOn","isEventOverlapping","isEventHiddenOn","WIDTH_FULL","WIDTH_START","MINUTES_IN_DAY","extend","name","directives","events","calendar","category","computed","noEvents","length","parsedEvents","map","parsedEventOverlapThreshold","parseInt","eventOverlapThreshold","eventTimedFunction","eventTimed","event","eventCategoryFunction","eventCategory","eventTextColorFunction","eventTextColor","eventNameFunction","eventName","timedEvent","input","eventModeFunction","eventOverlapMode","eventWeekdays","parsedWeekdays","categoryMode","type","methods","eventColorFunction","e","eventColor","color","index","eventStart","eventEnd","formatTime","withTime","ampm","formatter","getFormatter","timeZone","hour","minute","undefined","updateEventVisibility","eventMore","eventHeight","eventsMap","getEventsMap","date","parent","more","parentBounds","getBoundingClientRect","last","eventsSorted","bottom","sort","a","b","hidden","i","hide","style","display","innerHTML","$vuetify","lang","t","eventMoreText","elements","$refs","forEach","el","getAttribute","parentElement","push","genDayEvent","day","eventMarginBottom","dayIdentifier","week","start","startIdentifier","end","endIdentifier","width","weekdayIdentifier","scope","eventParsed","timed","genEvent","staticClass","class","height","attrs","key","ref","refInFor","genTimedEvent","left","timeDelta","top","timeToY","Math","max","scopeInput","data","slot","$scopedSlots","text","background","overlapsNoon","singline","timeSummary","eventSummary","hasTime","time","delimiter","$createElement","outside","setTextColor","setBackgroundColor","on","getDefaultMouseEventHandlers","nativeEvent","value","eventRipple","genName","genPlaceholder","genMore","getVisibleEvents","days","filter","isEventForCategory","categoryName","getEventsForDay","identifier","firstWeekday","getEventsForDayAll","allDay","getEventsForDayTimed","getScopedSlots","mode","isNode","getSlotChildren","getter","mapper","visuals","visual","children","column","mapped","slots","slotDay","slotDayHeader","slotDayBody","concat"],"sources":["../../../../src/components/VCalendar/mixins/calendar-with-events.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// 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// 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) => 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 if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : this.$createElement('br')\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [name]),\n delimiter,\n time,\n ])\n } else {\n const time = formatTime(event.start, true)\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [\n this.$createElement('strong', [time]),\n ' ',\n name,\n ])\n }\n }\n\n return this.$createElement('span', { staticClass: 'v-event-summary' }, [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): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n }, [eventSummary()])\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"],"mappings":"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"}
@@ -6,38 +6,18 @@ export default Vue.extend({
6
6
  name: 'mouse',
7
7
  methods: {
8
8
  getDefaultMouseEventHandlers(suffix, getEvent) {
9
+ const listeners = Object.keys(this.$listeners).filter(key => key.endsWith(suffix)).reduce((acc, key) => {
10
+ acc[key] = {
11
+ event: key.slice(0, -suffix.length)
12
+ };
13
+ return acc;
14
+ }, {});
9
15
  return this.getMouseEventHandlers({
10
- ['click' + suffix]: {
11
- event: 'click'
12
- },
16
+ ...listeners,
13
17
  ['contextmenu' + suffix]: {
14
18
  event: 'contextmenu',
15
19
  prevent: true,
16
20
  result: false
17
- },
18
- ['mousedown' + suffix]: {
19
- event: 'mousedown'
20
- },
21
- ['mousemove' + suffix]: {
22
- event: 'mousemove'
23
- },
24
- ['mouseup' + suffix]: {
25
- event: 'mouseup'
26
- },
27
- ['mouseenter' + suffix]: {
28
- event: 'mouseenter'
29
- },
30
- ['mouseleave' + suffix]: {
31
- event: 'mouseleave'
32
- },
33
- ['touchstart' + suffix]: {
34
- event: 'touchstart'
35
- },
36
- ['touchmove' + suffix]: {
37
- event: 'touchmove'
38
- },
39
- ['touchend' + suffix]: {
40
- event: 'touchend'
41
21
  }
42
22
  }, getEvent);
43
23
  },
@@ -66,9 +46,15 @@ export default Vue.extend({
66
46
  // Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target
67
47
  // This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at
68
48
  if (e && 'touches' in e) {
69
- var _e$target, _e$target2;
70
- const currentTarget = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY);
71
- if (currentTarget && !((_e$target = e.target) != null && _e$target.isSameNode(currentTarget)) && ((_e$target2 = e.target) == null ? void 0 : _e$target2.className) === currentTarget.className) {
49
+ var _e$currentTarget, _e$target;
50
+ const classSeparator = ' ';
51
+ const eventTargetClasses = (_e$currentTarget = e.currentTarget) == null ? void 0 : _e$currentTarget.className.split(classSeparator);
52
+ const currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY);
53
+
54
+ // Get "the same kind" current hovering target by checking
55
+ // If element has the same class of initial touch start element (which has touch event listener registered)
56
+ const currentTarget = currentTargets.find(t => t.className.split(classSeparator).some(c => eventTargetClasses.includes(c)));
57
+ if (currentTarget && !((_e$target = e.target) != null && _e$target.isSameNode(currentTarget))) {
72
58
  currentTarget.dispatchEvent(new TouchEvent(e.type, {
73
59
  changedTouches: e.changedTouches,
74
60
  targetTouches: e.targetTouches,
@@ -1 +1 @@
1
- {"version":3,"file":"mouse.mjs","names":["Vue","extend","name","methods","getDefaultMouseEventHandlers","suffix","getEvent","getMouseEventHandlers","event","prevent","result","events","on","eventOptions","$listeners","prefix","passive","once","capture","key","handler","e","mouseEvent","button","undefined","buttons","preventDefault","stop","stopPropagation","currentTarget","document","elementFromPoint","changedTouches","clientX","clientY","target","isSameNode","className","dispatchEvent","TouchEvent","type","targetTouches","touches","$emit","Array","isArray","push"],"sources":["../../../../src/components/VCalendar/mixins/mouse.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport 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), 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"],"mappings":"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"}
1
+ {"version":3,"file":"mouse.mjs","names":["Vue","extend","name","methods","getDefaultMouseEventHandlers","suffix","getEvent","listeners","Object","keys","$listeners","filter","key","endsWith","reduce","acc","event","slice","length","getMouseEventHandlers","prevent","result","events","on","eventOptions","prefix","passive","once","capture","handler","e","mouseEvent","button","undefined","buttons","preventDefault","stop","stopPropagation","classSeparator","eventTargetClasses","currentTarget","className","split","currentTargets","document","elementsFromPoint","changedTouches","clientX","clientY","find","t","some","c","includes","target","isSameNode","dispatchEvent","TouchEvent","type","targetTouches","touches","$emit","Array","isArray","push"],"sources":["../../../../src/components/VCalendar/mixins/mouse.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport 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 const listeners = Object.keys(this.$listeners)\n .filter(key => key.endsWith(suffix))\n .reduce((acc, key) => {\n acc[key] = { event: key.slice(0, -suffix.length) }\n return acc\n }, {} as MouseEvents)\n\n return this.getMouseEventHandlers({\n ...listeners,\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\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"],"mappings":"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"}
@@ -25,28 +25,28 @@
25
25
  position: fixed;
26
26
  }
27
27
  .v-card:hover > .v-card__overlay {
28
- opacity: calc(0.04 * var(--v-theme-overlay-multiplier));
28
+ opacity: calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier));
29
29
  }
30
30
  .v-card:focus-visible > .v-card__overlay {
31
- opacity: calc(0.12 * var(--v-theme-overlay-multiplier));
31
+ opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
32
32
  }
33
33
  @supports not selector(:focus-visible) {
34
34
  .v-card:focus > .v-card__overlay {
35
- opacity: calc(0.12 * var(--v-theme-overlay-multiplier));
35
+ opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
36
36
  }
37
37
  }
38
38
  .v-card--active > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true] > .v-card__overlay {
39
- opacity: calc(0.12 * var(--v-theme-overlay-multiplier));
39
+ opacity: calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier));
40
40
  }
41
41
  .v-card--active:hover > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true]:hover > .v-card__overlay {
42
- opacity: calc(0.16 * var(--v-theme-overlay-multiplier));
42
+ opacity: calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier));
43
43
  }
44
44
  .v-card--active:focus-visible > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true]:focus-visible > .v-card__overlay {
45
- opacity: calc(0.24 * var(--v-theme-overlay-multiplier));
45
+ opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
46
46
  }
47
47
  @supports not selector(:focus-visible) {
48
48
  .v-card--active:focus > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true]:focus > .v-card__overlay {
49
- opacity: calc(0.24 * var(--v-theme-overlay-multiplier));
49
+ opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
50
50
  }
51
51
  }
52
52
  .v-card--variant-plain, .v-card--variant-outlined, .v-card--variant-text, .v-card--variant-tonal {
@@ -252,28 +252,28 @@
252
252
  }
253
253
 
254
254
  .v-chip:hover > .v-chip__overlay {
255
- opacity: calc(0.04 * var(--v-theme-overlay-multiplier));
255
+ opacity: calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier));
256
256
  }
257
257
  .v-chip:focus-visible > .v-chip__overlay {
258
- opacity: calc(0.12 * var(--v-theme-overlay-multiplier));
258
+ opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
259
259
  }
260
260
  @supports not selector(:focus-visible) {
261
261
  .v-chip:focus > .v-chip__overlay {
262
- opacity: calc(0.12 * var(--v-theme-overlay-multiplier));
262
+ opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
263
263
  }
264
264
  }
265
265
  .v-chip--active > .v-chip__overlay, .v-chip[aria-haspopup=menu][aria-expanded=true] > .v-chip__overlay {
266
- opacity: calc(0.12 * var(--v-theme-overlay-multiplier));
266
+ opacity: calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier));
267
267
  }
268
268
  .v-chip--active:hover > .v-chip__overlay, .v-chip[aria-haspopup=menu][aria-expanded=true]:hover > .v-chip__overlay {
269
- opacity: calc(0.16 * var(--v-theme-overlay-multiplier));
269
+ opacity: calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier));
270
270
  }
271
271
  .v-chip--active:focus-visible > .v-chip__overlay, .v-chip[aria-haspopup=menu][aria-expanded=true]:focus-visible > .v-chip__overlay {
272
- opacity: calc(0.24 * var(--v-theme-overlay-multiplier));
272
+ opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
273
273
  }
274
274
  @supports not selector(:focus-visible) {
275
275
  .v-chip--active:focus > .v-chip__overlay, .v-chip[aria-haspopup=menu][aria-expanded=true]:focus > .v-chip__overlay {
276
- opacity: calc(0.24 * var(--v-theme-overlay-multiplier));
276
+ opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
277
277
  }
278
278
  }
279
279
  .v-chip--variant-plain, .v-chip--variant-outlined, .v-chip--variant-text, .v-chip--variant-tonal {
@@ -156,7 +156,9 @@ export const VCombobox = genericComponent()({
156
156
  if (props.readonly || form != null && form.isReadonly.value) return;
157
157
  const selectionStart = vTextFieldRef.value.selectionStart;
158
158
  const length = selected.value.length;
159
- if (selectionIndex.value > -1) e.preventDefault();
159
+ if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
160
+ e.preventDefault();
161
+ }
160
162
  if (['Enter', 'ArrowDown'].includes(e.key)) {
161
163
  menu.value = true;
162
164
  }
@@ -168,11 +170,9 @@ export const VCombobox = genericComponent()({
168
170
  }
169
171
  if (e.key === 'ArrowDown') {
170
172
  var _listRef$value;
171
- e.preventDefault();
172
173
  (_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
173
174
  } else if (e.key === 'ArrowUp') {
174
175
  var _listRef$value2;
175
- e.preventDefault();
176
176
  (_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
177
177
  }
178
178
  if (!props.multiple) return;
@@ -206,7 +206,7 @@ export const VCombobox = genericComponent()({
206
206
  vTextFieldRef.value.setSelectionRange(0, 0);
207
207
  }
208
208
  }
209
- if (e.key === 'Enter') {
209
+ if (e.key === 'Enter' && search.value) {
210
210
  select(transformItem(props, search.value));
211
211
  search.value = '';
212
212
  }