vuetify 3.4.7 → 3.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +300 -40
- package/dist/json/importMap-labs.json +24 -0
- package/dist/json/importMap.json +134 -134
- package/dist/json/tags.json +95 -0
- package/dist/json/web-types.json +910 -59
- package/dist/vuetify-labs.css +2402 -2052
- package/dist/vuetify-labs.d.ts +1660 -31
- package/dist/vuetify-labs.esm.js +733 -106
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +733 -106
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +810 -807
- package/dist/vuetify.d.ts +119 -74
- package/dist/vuetify.esm.js +242 -106
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +242 -106
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +235 -215
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +9 -0
- package/lib/blueprints/md1.d.mts +9 -0
- package/lib/blueprints/md2.d.mts +9 -0
- package/lib/blueprints/md3.d.mts +9 -0
- package/lib/components/VDataTable/VDataTableFooter.mjs +1 -1
- package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +4 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +12 -99
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +42 -30
- package/lib/components/VOtpInput/VOtpInput.css +3 -0
- package/lib/components/VOtpInput/VOtpInput.mjs +1 -0
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.sass +3 -0
- package/lib/components/VOverlay/VOverlay.mjs +11 -6
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/index.d.mts +42 -30
- package/lib/composables/calendar.mjs +128 -0
- package/lib/composables/calendar.mjs.map +1 -0
- package/lib/composables/date/DateAdapter.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +89 -2
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/date/date.mjs +4 -0
- package/lib/composables/date/date.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +77 -44
- package/lib/labs/VCalendar/VCalendar.css +220 -0
- package/lib/labs/VCalendar/VCalendar.mjs +128 -0
- package/lib/labs/VCalendar/VCalendar.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendar.sass +168 -0
- package/lib/labs/VCalendar/VCalendarDay.css +10 -0
- package/lib/labs/VCalendar/VCalendarDay.mjs +47 -0
- package/lib/labs/VCalendar/VCalendarDay.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarDay.sass +9 -0
- package/lib/labs/VCalendar/VCalendarEvent.mjs +30 -0
- package/lib/labs/VCalendar/VCalendarEvent.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarHeader.css +14 -0
- package/lib/labs/VCalendar/VCalendarHeader.mjs +76 -0
- package/lib/labs/VCalendar/VCalendarHeader.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarHeader.sass +13 -0
- package/lib/labs/VCalendar/VCalendarInterval.css +42 -0
- package/lib/labs/VCalendar/VCalendarInterval.mjs +113 -0
- package/lib/labs/VCalendar/VCalendarInterval.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarInterval.sass +39 -0
- package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs +76 -0
- package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.mjs +64 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.mjs.map +1 -0
- package/lib/labs/VCalendar/VCalendarMonthDay.sass +65 -0
- package/lib/{components → labs}/VCalendar/_variables.scss +14 -6
- package/lib/labs/VCalendar/index.d.mts +1592 -0
- package/lib/labs/VCalendar/index.mjs +7 -0
- package/lib/labs/VCalendar/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +1586 -2
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +2 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +2 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +2 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +2 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +2 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +2 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +21 -20
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +2 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +2 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +2 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +2 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +2 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +2 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +2 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +2 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +2 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +2 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +2 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +2 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +2 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +2 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +2 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +2 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +2 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +2 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +2 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +2 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +2 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +2 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +2 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +2 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +2 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +2 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +2 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +2 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +2 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +2 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +2 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +2 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +2 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +2 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/util/helpers.mjs +6 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
- package/lib/components/VCalendar/VCalendar.mjs +0 -352
- package/lib/components/VCalendar/VCalendar.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs +0 -124
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +0 -100
- package/lib/components/VCalendar/VCalendarDaily.mjs +0 -239
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarDaily.sass +0 -140
- package/lib/components/VCalendar/VCalendarMonthly.mjs +0 -25
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +0 -193
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +0 -1
- package/lib/components/VCalendar/VCalendarWeekly.sass +0 -118
- package/lib/components/VCalendar/index.mjs +0 -16
- package/lib/components/VCalendar/index.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/calendar-base.mjs +0 -89
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +0 -416
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.sass +0 -67
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +0 -135
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +0 -85
- package/lib/components/VCalendar/mixins/mouse.mjs.map +0 -1
- package/lib/components/VCalendar/mixins/times.mjs +0 -65
- package/lib/components/VCalendar/mixins/times.mjs.map +0 -1
- package/lib/components/VCalendar/modes/column.mjs +0 -18
- package/lib/components/VCalendar/modes/column.mjs.map +0 -1
- package/lib/components/VCalendar/modes/common.mjs +0 -112
- package/lib/components/VCalendar/modes/common.mjs.map +0 -1
- package/lib/components/VCalendar/modes/index.mjs +0 -9
- package/lib/components/VCalendar/modes/index.mjs.map +0 -1
- package/lib/components/VCalendar/modes/stack.mjs +0 -204
- package/lib/components/VCalendar/modes/stack.mjs.map +0 -1
- package/lib/components/VCalendar/util/events.mjs +0 -44
- package/lib/components/VCalendar/util/events.mjs.map +0 -1
- package/lib/components/VCalendar/util/parser.mjs +0 -21
- package/lib/components/VCalendar/util/parser.mjs.map +0 -1
- package/lib/components/VCalendar/util/props.mjs +0 -248
- package/lib/components/VCalendar/util/props.mjs.map +0 -1
- package/lib/components/VCalendar/util/timestamp.mjs +0 -407
- package/lib/components/VCalendar/util/timestamp.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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","arguments","undefined","eventStart","eventEnd","formatTime","withTime","ampm","formatter","getFormatter","timeZone","hour","minute","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","_ref","day","eventMarginBottom","dayIdentifier","week","start","startIdentifier","end","endIdentifier","width","weekdayIdentifier","scope","eventParsed","timed","genEvent","staticClass","class","height","attrs","key","ref","refInFor","genTimedEvent","_ref2","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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"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
@import '../../../styles/styles.sass'
|
|
2
|
-
@import '../_variables.scss'
|
|
3
|
-
|
|
4
|
-
+theme(v-calendar-events) using ($material)
|
|
5
|
-
.v-event-timed
|
|
6
|
-
border: $calendar-event-border-width solid !important
|
|
7
|
-
|
|
8
|
-
.v-event-more
|
|
9
|
-
background-color: map-deep-get($material, 'calendar', 'background-color')
|
|
10
|
-
|
|
11
|
-
&.v-outside
|
|
12
|
-
background-color: map-deep-get($material, 'calendar', 'outside-background-color')
|
|
13
|
-
|
|
14
|
-
.v-calendar
|
|
15
|
-
.v-event
|
|
16
|
-
position: relative
|
|
17
|
-
overflow: hidden
|
|
18
|
-
text-overflow: ellipsis
|
|
19
|
-
white-space: nowrap
|
|
20
|
-
font-size: $calendar-event-font-size
|
|
21
|
-
cursor: pointer
|
|
22
|
-
line-height: $calendar-event-line-height
|
|
23
|
-
margin-right: -$calendar-line-width
|
|
24
|
-
z-index: 1
|
|
25
|
-
border-radius: $calendar-event-border-radius
|
|
26
|
-
|
|
27
|
-
.v-event-more
|
|
28
|
-
overflow: hidden
|
|
29
|
-
text-overflow: ellipsis
|
|
30
|
-
white-space: nowrap
|
|
31
|
-
font-size: $calendar-event-font-size
|
|
32
|
-
cursor: pointer
|
|
33
|
-
font-weight: bold
|
|
34
|
-
z-index: 1
|
|
35
|
-
position: relative
|
|
36
|
-
|
|
37
|
-
.v-event-timed-container
|
|
38
|
-
position: absolute
|
|
39
|
-
top: 0
|
|
40
|
-
bottom: 0
|
|
41
|
-
left: 0
|
|
42
|
-
right: 0
|
|
43
|
-
margin-right: $calendar-event-right-empty
|
|
44
|
-
pointer-events: none
|
|
45
|
-
|
|
46
|
-
.v-event-timed
|
|
47
|
-
position: absolute
|
|
48
|
-
white-space: nowrap
|
|
49
|
-
text-overflow: ellipsis
|
|
50
|
-
font-size: $calendar-event-font-size
|
|
51
|
-
cursor: pointer
|
|
52
|
-
border-radius: $calendar-event-border-radius
|
|
53
|
-
pointer-events: all
|
|
54
|
-
|
|
55
|
-
.v-event-summary
|
|
56
|
-
display: inline-block
|
|
57
|
-
overflow: hidden
|
|
58
|
-
text-overflow: ellipsis
|
|
59
|
-
width: 100%
|
|
60
|
-
white-space: nowrap
|
|
61
|
-
|
|
62
|
-
&.v-calendar-events
|
|
63
|
-
.v-calendar-weekly__head-weekday
|
|
64
|
-
margin-right: -$calendar-line-width
|
|
65
|
-
.v-calendar-weekly__day
|
|
66
|
-
overflow: visible
|
|
67
|
-
margin-right: -$calendar-line-width
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
// Mixins
|
|
4
|
-
import CalendarBase from "./calendar-base.mjs"; // Util
|
|
5
|
-
import props from "../util/props.mjs";
|
|
6
|
-
import { parseTime, copyTimestamp, updateMinutes, createDayList, createIntervalList, createNativeLocaleFormatter, MINUTES_IN_DAY } from "../util/timestamp.mjs";
|
|
7
|
-
/* @vue/component */
|
|
8
|
-
export default CalendarBase.extend({
|
|
9
|
-
name: 'calendar-with-intervals',
|
|
10
|
-
props: props.intervals,
|
|
11
|
-
computed: {
|
|
12
|
-
parsedFirstInterval() {
|
|
13
|
-
return parseInt(this.firstInterval);
|
|
14
|
-
},
|
|
15
|
-
parsedIntervalMinutes() {
|
|
16
|
-
return parseInt(this.intervalMinutes);
|
|
17
|
-
},
|
|
18
|
-
parsedIntervalCount() {
|
|
19
|
-
return parseInt(this.intervalCount);
|
|
20
|
-
},
|
|
21
|
-
parsedIntervalHeight() {
|
|
22
|
-
return parseFloat(this.intervalHeight);
|
|
23
|
-
},
|
|
24
|
-
parsedFirstTime() {
|
|
25
|
-
return parseTime(this.firstTime);
|
|
26
|
-
},
|
|
27
|
-
firstMinute() {
|
|
28
|
-
const time = this.parsedFirstTime;
|
|
29
|
-
return time !== false && time >= 0 && time <= MINUTES_IN_DAY ? time : this.parsedFirstInterval * this.parsedIntervalMinutes;
|
|
30
|
-
},
|
|
31
|
-
bodyHeight() {
|
|
32
|
-
return this.parsedIntervalCount * this.parsedIntervalHeight;
|
|
33
|
-
},
|
|
34
|
-
days() {
|
|
35
|
-
return createDayList(this.parsedStart, this.parsedEnd, this.times.today, this.weekdaySkips, this.maxDays);
|
|
36
|
-
},
|
|
37
|
-
intervals() {
|
|
38
|
-
const days = this.days;
|
|
39
|
-
const first = this.firstMinute;
|
|
40
|
-
const minutes = this.parsedIntervalMinutes;
|
|
41
|
-
const count = this.parsedIntervalCount;
|
|
42
|
-
const now = this.times.now;
|
|
43
|
-
return days.map(d => createIntervalList(d, first, minutes, count, now));
|
|
44
|
-
},
|
|
45
|
-
intervalFormatter() {
|
|
46
|
-
if (this.intervalFormat) {
|
|
47
|
-
return this.intervalFormat;
|
|
48
|
-
}
|
|
49
|
-
const longOptions = {
|
|
50
|
-
timeZone: 'UTC',
|
|
51
|
-
hour: '2-digit',
|
|
52
|
-
minute: '2-digit'
|
|
53
|
-
};
|
|
54
|
-
const shortOptions = {
|
|
55
|
-
timeZone: 'UTC',
|
|
56
|
-
hour: 'numeric',
|
|
57
|
-
minute: '2-digit'
|
|
58
|
-
};
|
|
59
|
-
const shortHourOptions = {
|
|
60
|
-
timeZone: 'UTC',
|
|
61
|
-
hour: 'numeric'
|
|
62
|
-
};
|
|
63
|
-
return createNativeLocaleFormatter(this.currentLocale, (tms, short) => short ? tms.minute === 0 ? shortHourOptions : shortOptions : longOptions);
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
methods: {
|
|
67
|
-
showIntervalLabelDefault(interval) {
|
|
68
|
-
const first = this.intervals[0][0];
|
|
69
|
-
const isFirst = first.hour === interval.hour && first.minute === interval.minute;
|
|
70
|
-
return !isFirst;
|
|
71
|
-
},
|
|
72
|
-
intervalStyleDefault(_interval) {
|
|
73
|
-
return undefined;
|
|
74
|
-
},
|
|
75
|
-
getTimestampAtEvent(e, day) {
|
|
76
|
-
const timestamp = copyTimestamp(day);
|
|
77
|
-
const bounds = e.currentTarget.getBoundingClientRect();
|
|
78
|
-
const baseMinutes = this.firstMinute;
|
|
79
|
-
const touchEvent = e;
|
|
80
|
-
const mouseEvent = e;
|
|
81
|
-
const touches = touchEvent.changedTouches || touchEvent.touches;
|
|
82
|
-
const clientY = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY;
|
|
83
|
-
const addIntervals = (clientY - bounds.top) / this.parsedIntervalHeight;
|
|
84
|
-
const addMinutes = Math.floor(addIntervals * this.parsedIntervalMinutes);
|
|
85
|
-
const minutes = baseMinutes + addMinutes;
|
|
86
|
-
return updateMinutes(timestamp, minutes, this.times.now);
|
|
87
|
-
},
|
|
88
|
-
getSlotScope(timestamp) {
|
|
89
|
-
const scope = copyTimestamp(timestamp);
|
|
90
|
-
scope.timeToY = this.timeToY;
|
|
91
|
-
scope.timeDelta = this.timeDelta;
|
|
92
|
-
scope.minutesToPixels = this.minutesToPixels;
|
|
93
|
-
scope.week = this.days;
|
|
94
|
-
return scope;
|
|
95
|
-
},
|
|
96
|
-
scrollToTime(time) {
|
|
97
|
-
const y = this.timeToY(time);
|
|
98
|
-
const pane = this.$refs.scrollArea;
|
|
99
|
-
if (y === false || !pane) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
pane.scrollTop = y;
|
|
103
|
-
return true;
|
|
104
|
-
},
|
|
105
|
-
minutesToPixels(minutes) {
|
|
106
|
-
return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight;
|
|
107
|
-
},
|
|
108
|
-
timeToY(time) {
|
|
109
|
-
let clamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
110
|
-
let y = this.timeDelta(time);
|
|
111
|
-
if (y !== false) {
|
|
112
|
-
y *= this.bodyHeight;
|
|
113
|
-
if (clamp) {
|
|
114
|
-
if (y < 0) {
|
|
115
|
-
y = 0;
|
|
116
|
-
}
|
|
117
|
-
if (y > this.bodyHeight) {
|
|
118
|
-
y = this.bodyHeight;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return y;
|
|
123
|
-
},
|
|
124
|
-
timeDelta(time) {
|
|
125
|
-
const minutes = parseTime(time);
|
|
126
|
-
if (minutes === false) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
const min = this.firstMinute;
|
|
130
|
-
const gap = this.parsedIntervalCount * this.parsedIntervalMinutes;
|
|
131
|
-
return (minutes - min) / gap;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
//# sourceMappingURL=calendar-with-intervals.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-with-intervals.mjs","names":["CalendarBase","props","parseTime","copyTimestamp","updateMinutes","createDayList","createIntervalList","createNativeLocaleFormatter","MINUTES_IN_DAY","extend","name","intervals","computed","parsedFirstInterval","parseInt","firstInterval","parsedIntervalMinutes","intervalMinutes","parsedIntervalCount","intervalCount","parsedIntervalHeight","parseFloat","intervalHeight","parsedFirstTime","firstTime","firstMinute","time","bodyHeight","days","parsedStart","parsedEnd","times","today","weekdaySkips","maxDays","first","minutes","count","now","map","d","intervalFormatter","intervalFormat","longOptions","timeZone","hour","minute","shortOptions","shortHourOptions","currentLocale","tms","short","methods","showIntervalLabelDefault","interval","isFirst","intervalStyleDefault","_interval","undefined","getTimestampAtEvent","e","day","timestamp","bounds","currentTarget","getBoundingClientRect","baseMinutes","touchEvent","mouseEvent","touches","changedTouches","clientY","addIntervals","top","addMinutes","Math","floor","getSlotScope","scope","timeToY","timeDelta","minutesToPixels","week","scrollToTime","y","pane","$refs","scrollArea","scrollTop","clamp","arguments","length","min","gap"],"sources":["../../../../src/components/VCalendar/mixins/calendar-with-intervals.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTime,\n copyTimestamp,\n updateMinutes,\n createDayList,\n createIntervalList,\n createNativeLocaleFormatter,\n VTime,\n MINUTES_IN_DAY,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter, CalendarDayBodySlotScope } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-intervals',\n\n props: props.intervals,\n\n computed: {\n parsedFirstInterval (): number {\n return parseInt(this.firstInterval)\n },\n parsedIntervalMinutes (): number {\n return parseInt(this.intervalMinutes)\n },\n parsedIntervalCount (): number {\n return parseInt(this.intervalCount)\n },\n parsedIntervalHeight (): number {\n return parseFloat(this.intervalHeight)\n },\n parsedFirstTime (): number | false {\n return parseTime(this.firstTime)\n },\n firstMinute (): number {\n const time = this.parsedFirstTime\n\n return time !== false && time >= 0 && time <= MINUTES_IN_DAY\n ? time\n : this.parsedFirstInterval * this.parsedIntervalMinutes\n },\n bodyHeight (): number {\n return this.parsedIntervalCount * this.parsedIntervalHeight\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips,\n this.maxDays\n )\n },\n intervals (): CalendarTimestamp[][] {\n const days: CalendarTimestamp[] = this.days\n const first: number = this.firstMinute\n const minutes: number = this.parsedIntervalMinutes\n const count: number = this.parsedIntervalCount\n const now: CalendarTimestamp = this.times.now\n\n return days.map(d => createIntervalList(d, first, minutes, count, now))\n },\n intervalFormatter (): CalendarFormatter {\n if (this.intervalFormat) {\n return this.intervalFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', hour: '2-digit', minute: '2-digit' }\n const shortOptions = { timeZone: 'UTC', hour: 'numeric', minute: '2-digit' }\n const shortHourOptions = { timeZone: 'UTC', hour: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (tms, short) => short ? (tms.minute === 0 ? shortHourOptions : shortOptions) : longOptions\n )\n },\n },\n\n methods: {\n showIntervalLabelDefault (interval: CalendarTimestamp): boolean {\n const first: CalendarTimestamp = this.intervals[0][0]\n const isFirst: boolean = first.hour === interval.hour && first.minute === interval.minute\n return !isFirst\n },\n intervalStyleDefault (_interval: CalendarTimestamp): object | undefined {\n return undefined\n },\n getTimestampAtEvent (e: MouseEvent | TouchEvent, day: CalendarTimestamp): CalendarTimestamp {\n const timestamp: CalendarTimestamp = copyTimestamp(day)\n const bounds = (e.currentTarget as HTMLElement).getBoundingClientRect()\n const baseMinutes: number = this.firstMinute\n const touchEvent: TouchEvent = e as TouchEvent\n const mouseEvent: MouseEvent = e as MouseEvent\n const touches: TouchList = touchEvent.changedTouches || touchEvent.touches\n const clientY: number = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY\n const addIntervals: number = (clientY - bounds.top) / this.parsedIntervalHeight\n const addMinutes: number = Math.floor(addIntervals * this.parsedIntervalMinutes)\n const minutes: number = baseMinutes + addMinutes\n\n return updateMinutes(timestamp, minutes, this.times.now)\n },\n getSlotScope (timestamp: CalendarTimestamp): CalendarDayBodySlotScope {\n const scope = copyTimestamp(timestamp) as any\n scope.timeToY = this.timeToY\n scope.timeDelta = this.timeDelta\n scope.minutesToPixels = this.minutesToPixels\n scope.week = this.days\n return scope\n },\n scrollToTime (time: VTime): boolean {\n const y = this.timeToY(time)\n const pane = this.$refs.scrollArea as HTMLElement\n\n if (y === false || !pane) {\n return false\n }\n\n pane.scrollTop = y\n\n return true\n },\n minutesToPixels (minutes: number): number {\n return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight\n },\n timeToY (time: VTime, clamp = true): number | false {\n let y = this.timeDelta(time)\n\n if (y !== false) {\n y *= this.bodyHeight\n\n if (clamp) {\n if (y < 0) {\n y = 0\n }\n if (y > this.bodyHeight) {\n y = this.bodyHeight\n }\n }\n }\n\n return y\n },\n timeDelta (time: VTime): number | false {\n const minutes = parseTime(time)\n\n if (minutes === false) {\n return false\n }\n\n const min: number = this.firstMinute\n const gap: number = this.parsedIntervalCount * this.parsedIntervalMinutes\n\n return (minutes - min) / gap\n },\n },\n})\n"],"mappings":"AAAA;AACA;AAGA;AAAA,OACOA,YAAY,6BAEnB;AAAA,OACOC,KAAK;AAAA,SAEVC,SAAS,EACTC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,kBAAkB,EAClBC,2BAA2B,EAE3BC,cAAc;AAIhB;AACA,eAAeR,YAAY,CAACS,MAAM,CAAC;EACjCC,IAAI,EAAE,yBAAyB;EAE/BT,KAAK,EAAEA,KAAK,CAACU,SAAS;EAEtBC,QAAQ,EAAE;IACRC,mBAAmBA,CAAA,EAAY;MAC7B,OAAOC,QAAQ,CAAC,IAAI,CAACC,aAAa,CAAC;IACrC,CAAC;IACDC,qBAAqBA,CAAA,EAAY;MAC/B,OAAOF,QAAQ,CAAC,IAAI,CAACG,eAAe,CAAC;IACvC,CAAC;IACDC,mBAAmBA,CAAA,EAAY;MAC7B,OAAOJ,QAAQ,CAAC,IAAI,CAACK,aAAa,CAAC;IACrC,CAAC;IACDC,oBAAoBA,CAAA,EAAY;MAC9B,OAAOC,UAAU,CAAC,IAAI,CAACC,cAAc,CAAC;IACxC,CAAC;IACDC,eAAeA,CAAA,EAAoB;MACjC,OAAOrB,SAAS,CAAC,IAAI,CAACsB,SAAS,CAAC;IAClC,CAAC;IACDC,WAAWA,CAAA,EAAY;MACrB,MAAMC,IAAI,GAAG,IAAI,CAACH,eAAe;MAEjC,OAAOG,IAAI,KAAK,KAAK,IAAIA,IAAI,IAAI,CAAC,IAAIA,IAAI,IAAIlB,cAAc,GACxDkB,IAAI,GACJ,IAAI,CAACb,mBAAmB,GAAG,IAAI,CAACG,qBAAqB;IAC3D,CAAC;IACDW,UAAUA,CAAA,EAAY;MACpB,OAAO,IAAI,CAACT,mBAAmB,GAAG,IAAI,CAACE,oBAAoB;IAC7D,CAAC;IACDQ,IAAIA,CAAA,EAAyB;MAC3B,OAAOvB,aAAa,CAClB,IAAI,CAACwB,WAAW,EAChB,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,KAAK,CAACC,KAAK,EAChB,IAAI,CAACC,YAAY,EACjB,IAAI,CAACC,OACP,CAAC;IACH,CAAC;IACDvB,SAASA,CAAA,EAA2B;MAClC,MAAMiB,IAAyB,GAAG,IAAI,CAACA,IAAI;MAC3C,MAAMO,KAAa,GAAG,IAAI,CAACV,WAAW;MACtC,MAAMW,OAAe,GAAG,IAAI,CAACpB,qBAAqB;MAClD,MAAMqB,KAAa,GAAG,IAAI,CAACnB,mBAAmB;MAC9C,MAAMoB,GAAsB,GAAG,IAAI,CAACP,KAAK,CAACO,GAAG;MAE7C,OAAOV,IAAI,CAACW,GAAG,CAACC,CAAC,IAAIlC,kBAAkB,CAACkC,CAAC,EAAEL,KAAK,EAAEC,OAAO,EAAEC,KAAK,EAAEC,GAAG,CAAC,CAAC;IACzE,CAAC;IACDG,iBAAiBA,CAAA,EAAuB;MACtC,IAAI,IAAI,CAACC,cAAc,EAAE;QACvB,OAAO,IAAI,CAACA,cAAc;MAC5B;MAEA,MAAMC,WAAW,GAAG;QAAEC,QAAQ,EAAE,KAAK;QAAEC,IAAI,EAAE,SAAS;QAAEC,MAAM,EAAE;MAAU,CAAC;MAC3E,MAAMC,YAAY,GAAG;QAAEH,QAAQ,EAAE,KAAK;QAAEC,IAAI,EAAE,SAAS;QAAEC,MAAM,EAAE;MAAU,CAAC;MAC5E,MAAME,gBAAgB,GAAG;QAAEJ,QAAQ,EAAE,KAAK;QAAEC,IAAI,EAAE;MAAU,CAAC;MAE7D,OAAOtC,2BAA2B,CAChC,IAAI,CAAC0C,aAAa,EAClB,CAACC,GAAG,EAAEC,KAAK,KAAKA,KAAK,GAAID,GAAG,CAACJ,MAAM,KAAK,CAAC,GAAGE,gBAAgB,GAAGD,YAAY,GAAIJ,WACjF,CAAC;IACH;EACF,CAAC;EAEDS,OAAO,EAAE;IACPC,wBAAwBA,CAAEC,QAA2B,EAAW;MAC9D,MAAMnB,KAAwB,GAAG,IAAI,CAACxB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MACrD,MAAM4C,OAAgB,GAAGpB,KAAK,CAACU,IAAI,KAAKS,QAAQ,CAACT,IAAI,IAAIV,KAAK,CAACW,MAAM,KAAKQ,QAAQ,CAACR,MAAM;MACzF,OAAO,CAACS,OAAO;IACjB,CAAC;IACDC,oBAAoBA,CAAEC,SAA4B,EAAsB;MACtE,OAAOC,SAAS;IAClB,CAAC;IACDC,mBAAmBA,CAAEC,CAA0B,EAAEC,GAAsB,EAAqB;MAC1F,MAAMC,SAA4B,GAAG3D,aAAa,CAAC0D,GAAG,CAAC;MACvD,MAAME,MAAM,GAAIH,CAAC,CAACI,aAAa,CAAiBC,qBAAqB,CAAC,CAAC;MACvE,MAAMC,WAAmB,GAAG,IAAI,CAACzC,WAAW;MAC5C,MAAM0C,UAAsB,GAAGP,CAAe;MAC9C,MAAMQ,UAAsB,GAAGR,CAAe;MAC9C,MAAMS,OAAkB,GAAGF,UAAU,CAACG,cAAc,IAAIH,UAAU,CAACE,OAAO;MAC1E,MAAME,OAAe,GAAGF,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC,CAACE,OAAO,GAAGH,UAAU,CAACG,OAAO;MACvF,MAAMC,YAAoB,GAAG,CAACD,OAAO,GAAGR,MAAM,CAACU,GAAG,IAAI,IAAI,CAACrD,oBAAoB;MAC/E,MAAMsD,UAAkB,GAAGC,IAAI,CAACC,KAAK,CAACJ,YAAY,GAAG,IAAI,CAACxD,qBAAqB,CAAC;MAChF,MAAMoB,OAAe,GAAG8B,WAAW,GAAGQ,UAAU;MAEhD,OAAOtE,aAAa,CAAC0D,SAAS,EAAE1B,OAAO,EAAE,IAAI,CAACL,KAAK,CAACO,GAAG,CAAC;IAC1D,CAAC;IACDuC,YAAYA,CAAEf,SAA4B,EAA4B;MACpE,MAAMgB,KAAK,GAAG3E,aAAa,CAAC2D,SAAS,CAAQ;MAC7CgB,KAAK,CAACC,OAAO,GAAG,IAAI,CAACA,OAAO;MAC5BD,KAAK,CAACE,SAAS,GAAG,IAAI,CAACA,SAAS;MAChCF,KAAK,CAACG,eAAe,GAAG,IAAI,CAACA,eAAe;MAC5CH,KAAK,CAACI,IAAI,GAAG,IAAI,CAACtD,IAAI;MACtB,OAAOkD,KAAK;IACd,CAAC;IACDK,YAAYA,CAAEzD,IAAW,EAAW;MAClC,MAAM0D,CAAC,GAAG,IAAI,CAACL,OAAO,CAACrD,IAAI,CAAC;MAC5B,MAAM2D,IAAI,GAAG,IAAI,CAACC,KAAK,CAACC,UAAyB;MAEjD,IAAIH,CAAC,KAAK,KAAK,IAAI,CAACC,IAAI,EAAE;QACxB,OAAO,KAAK;MACd;MAEAA,IAAI,CAACG,SAAS,GAAGJ,CAAC;MAElB,OAAO,IAAI;IACb,CAAC;IACDH,eAAeA,CAAE7C,OAAe,EAAU;MACxC,OAAOA,OAAO,GAAG,IAAI,CAACpB,qBAAqB,GAAG,IAAI,CAACI,oBAAoB;IACzE,CAAC;IACD2D,OAAOA,CAAErD,IAAW,EAAgC;MAAA,IAA9B+D,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAhC,SAAA,GAAAgC,SAAA,MAAG,IAAI;MAChC,IAAIN,CAAC,GAAG,IAAI,CAACJ,SAAS,CAACtD,IAAI,CAAC;MAE5B,IAAI0D,CAAC,KAAK,KAAK,EAAE;QACfA,CAAC,IAAI,IAAI,CAACzD,UAAU;QAEpB,IAAI8D,KAAK,EAAE;UACT,IAAIL,CAAC,GAAG,CAAC,EAAE;YACTA,CAAC,GAAG,CAAC;UACP;UACA,IAAIA,CAAC,GAAG,IAAI,CAACzD,UAAU,EAAE;YACvByD,CAAC,GAAG,IAAI,CAACzD,UAAU;UACrB;QACF;MACF;MAEA,OAAOyD,CAAC;IACV,CAAC;IACDJ,SAASA,CAAEtD,IAAW,EAAkB;MACtC,MAAMU,OAAO,GAAGlC,SAAS,CAACwB,IAAI,CAAC;MAE/B,IAAIU,OAAO,KAAK,KAAK,EAAE;QACrB,OAAO,KAAK;MACd;MAEA,MAAMwD,GAAW,GAAG,IAAI,CAACnE,WAAW;MACpC,MAAMoE,GAAW,GAAG,IAAI,CAAC3E,mBAAmB,GAAG,IAAI,CAACF,qBAAqB;MAEzE,OAAO,CAACoB,OAAO,GAAGwD,GAAG,IAAIC,GAAG;IAC9B;EACF;AACF,CAAC,CAAC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
|
|
4
|
-
import Vue from 'vue';
|
|
5
|
-
export default Vue.extend({
|
|
6
|
-
name: 'mouse',
|
|
7
|
-
methods: {
|
|
8
|
-
// TODO: this has been partially ported to v3 in util/events
|
|
9
|
-
getDefaultMouseEventHandlers(suffix, getEvent) {
|
|
10
|
-
const listeners = Object.keys(this.$listeners).filter(key => key.endsWith(suffix)).reduce((acc, key) => {
|
|
11
|
-
acc[key] = {
|
|
12
|
-
event: key.slice(0, -suffix.length)
|
|
13
|
-
};
|
|
14
|
-
return acc;
|
|
15
|
-
}, {});
|
|
16
|
-
return this.getMouseEventHandlers({
|
|
17
|
-
...listeners,
|
|
18
|
-
['contextmenu' + suffix]: {
|
|
19
|
-
event: 'contextmenu',
|
|
20
|
-
prevent: true,
|
|
21
|
-
result: false
|
|
22
|
-
}
|
|
23
|
-
}, getEvent);
|
|
24
|
-
},
|
|
25
|
-
getMouseEventHandlers(events, getEvent) {
|
|
26
|
-
const on = {};
|
|
27
|
-
for (const event in events) {
|
|
28
|
-
const eventOptions = events[event];
|
|
29
|
-
if (!this.$listeners[event]) continue;
|
|
30
|
-
|
|
31
|
-
// TODO somehow pull in modifiers
|
|
32
|
-
|
|
33
|
-
const prefix = eventOptions.passive ? '&' : (eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : '');
|
|
34
|
-
const key = prefix + eventOptions.event;
|
|
35
|
-
const handler = e => {
|
|
36
|
-
const mouseEvent = e;
|
|
37
|
-
if (eventOptions.button === undefined || mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button) {
|
|
38
|
-
if (eventOptions.prevent) {
|
|
39
|
-
e.preventDefault();
|
|
40
|
-
}
|
|
41
|
-
if (eventOptions.stop) {
|
|
42
|
-
e.stopPropagation();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Due to TouchEvent target always returns the element that is first placed
|
|
46
|
-
// Even if touch point has since moved outside the interactive area of that element
|
|
47
|
-
// Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target
|
|
48
|
-
// This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at
|
|
49
|
-
if (e && 'touches' in e) {
|
|
50
|
-
const classSeparator = ' ';
|
|
51
|
-
const eventTargetClasses = 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?.isSameNode(currentTarget)) {
|
|
58
|
-
currentTarget.dispatchEvent(new TouchEvent(e.type, {
|
|
59
|
-
changedTouches: e.changedTouches,
|
|
60
|
-
targetTouches: e.targetTouches,
|
|
61
|
-
touches: e.touches
|
|
62
|
-
}));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
this.$emit(event, getEvent(e), e);
|
|
67
|
-
}
|
|
68
|
-
return eventOptions.result;
|
|
69
|
-
};
|
|
70
|
-
if (key in on) {
|
|
71
|
-
/* istanbul ignore next */
|
|
72
|
-
if (Array.isArray(on[key])) {
|
|
73
|
-
on[key].push(handler);
|
|
74
|
-
} else {
|
|
75
|
-
on[key] = [on[key], handler];
|
|
76
|
-
}
|
|
77
|
-
} else {
|
|
78
|
-
on[key] = handler;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return on;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
//# sourceMappingURL=mouse.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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 // TODO: this has been partially ported to v3 in util/events\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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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
|
|
4
|
-
import Vue from 'vue';
|
|
5
|
-
import { validateTimestamp, parseTimestamp, parseDate } from "../util/timestamp.mjs";
|
|
6
|
-
export default Vue.extend({
|
|
7
|
-
name: 'times',
|
|
8
|
-
props: {
|
|
9
|
-
now: {
|
|
10
|
-
type: String,
|
|
11
|
-
validator: validateTimestamp
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
data: () => ({
|
|
15
|
-
times: {
|
|
16
|
-
now: parseTimestamp('0000-00-00 00:00', true),
|
|
17
|
-
today: parseTimestamp('0000-00-00', true)
|
|
18
|
-
}
|
|
19
|
-
}),
|
|
20
|
-
computed: {
|
|
21
|
-
parsedNow() {
|
|
22
|
-
return this.now ? parseTimestamp(this.now, true) : null;
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
watch: {
|
|
26
|
-
parsedNow: 'updateTimes'
|
|
27
|
-
},
|
|
28
|
-
created() {
|
|
29
|
-
this.updateTimes();
|
|
30
|
-
this.setPresent();
|
|
31
|
-
},
|
|
32
|
-
methods: {
|
|
33
|
-
setPresent() {
|
|
34
|
-
this.times.now.present = this.times.today.present = true;
|
|
35
|
-
this.times.now.past = this.times.today.past = false;
|
|
36
|
-
this.times.now.future = this.times.today.future = false;
|
|
37
|
-
},
|
|
38
|
-
updateTimes() {
|
|
39
|
-
const now = this.parsedNow || this.getNow();
|
|
40
|
-
this.updateDay(now, this.times.now);
|
|
41
|
-
this.updateTime(now, this.times.now);
|
|
42
|
-
this.updateDay(now, this.times.today);
|
|
43
|
-
},
|
|
44
|
-
getNow() {
|
|
45
|
-
return parseDate(new Date());
|
|
46
|
-
},
|
|
47
|
-
updateDay(now, target) {
|
|
48
|
-
if (now.date !== target.date) {
|
|
49
|
-
target.year = now.year;
|
|
50
|
-
target.month = now.month;
|
|
51
|
-
target.day = now.day;
|
|
52
|
-
target.weekday = now.weekday;
|
|
53
|
-
target.date = now.date;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
updateTime(now, target) {
|
|
57
|
-
if (now.time !== target.time) {
|
|
58
|
-
target.hour = now.hour;
|
|
59
|
-
target.minute = now.minute;
|
|
60
|
-
target.time = now.time;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
//# sourceMappingURL=times.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"times.mjs","names":["Vue","validateTimestamp","parseTimestamp","parseDate","extend","name","props","now","type","String","validator","data","times","today","computed","parsedNow","watch","created","updateTimes","setPresent","methods","present","past","future","getNow","updateDay","updateTime","Date","target","date","year","month","day","weekday","time","hour","minute"],"sources":["../../../../src/components/VCalendar/mixins/times.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport Vue from 'vue'\n\nimport {\n validateTimestamp,\n parseTimestamp,\n parseDate,\n} from '../util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'times',\n\n props: {\n now: {\n type: String,\n validator: validateTimestamp,\n },\n },\n\n data: () => ({\n times: {\n now: parseTimestamp('0000-00-00 00:00', true),\n today: parseTimestamp('0000-00-00', true),\n },\n }),\n\n computed: {\n parsedNow (): CalendarTimestamp | null {\n return this.now ? parseTimestamp(this.now, true) : null\n },\n },\n\n watch: {\n parsedNow: 'updateTimes',\n },\n\n created () {\n this.updateTimes()\n this.setPresent()\n },\n\n methods: {\n setPresent (): void {\n this.times.now.present = this.times.today.present = true\n this.times.now.past = this.times.today.past = false\n this.times.now.future = this.times.today.future = false\n },\n updateTimes (): void {\n const now: CalendarTimestamp = this.parsedNow || this.getNow()\n this.updateDay(now, this.times.now)\n this.updateTime(now, this.times.now)\n this.updateDay(now, this.times.today)\n },\n getNow (): CalendarTimestamp {\n return parseDate(new Date())\n },\n updateDay (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.date !== target.date) {\n target.year = now.year\n target.month = now.month\n target.day = now.day\n target.weekday = now.weekday\n target.date = now.date\n }\n },\n updateTime (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.time !== target.time) {\n target.hour = now.hour\n target.minute = now.minute\n target.time = now.time\n }\n },\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { getOverlapGroupHandler } from "./common.mjs";
|
|
4
|
-
const FULL_WIDTH = 100;
|
|
5
|
-
export const column = (events, firstWeekday, overlapThreshold) => {
|
|
6
|
-
const handler = getOverlapGroupHandler(firstWeekday);
|
|
7
|
-
return (day, dayEvents, timed, reset) => {
|
|
8
|
-
const visuals = handler.getVisuals(day, dayEvents, timed, reset);
|
|
9
|
-
if (timed) {
|
|
10
|
-
visuals.forEach(visual => {
|
|
11
|
-
visual.left = visual.column * FULL_WIDTH / visual.columnCount;
|
|
12
|
-
visual.width = FULL_WIDTH / visual.columnCount;
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
return visuals;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=column.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"column.mjs","names":["getOverlapGroupHandler","FULL_WIDTH","column","events","firstWeekday","overlapThreshold","handler","day","dayEvents","timed","reset","visuals","getVisuals","forEach","visual","left","columnCount","width"],"sources":["../../../../src/components/VCalendar/modes/column.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { CalendarEventOverlapMode } from 'vuetify/types'\nimport { getOverlapGroupHandler } from './common'\n\nconst FULL_WIDTH = 100\n\nexport const column: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n return (day, dayEvents, timed, reset) => {\n const visuals = handler.getVisuals(day, dayEvents, timed, reset)\n\n if (timed) {\n visuals.forEach(visual => {\n visual.left = visual.column * FULL_WIDTH / visual.columnCount\n visual.width = FULL_WIDTH / visual.columnCount\n })\n }\n\n return visuals\n }\n}\n"],"mappings":"AAAA;AACA;AAAA,SAGSA,sBAAsB;AAE/B,MAAMC,UAAU,GAAG,GAAG;AAEtB,OAAO,MAAMC,MAAgC,GAAGA,CAACC,MAAM,EAAEC,YAAY,EAAEC,gBAAgB,KAAK;EAC1F,MAAMC,OAAO,GAAGN,sBAAsB,CAACI,YAAY,CAAC;EAEpD,OAAO,CAACG,GAAG,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,KAAK;IACvC,MAAMC,OAAO,GAAGL,OAAO,CAACM,UAAU,CAACL,GAAG,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,CAAC;IAEhE,IAAID,KAAK,EAAE;MACTE,OAAO,CAACE,OAAO,CAACC,MAAM,IAAI;QACxBA,MAAM,CAACC,IAAI,GAAGD,MAAM,CAACZ,MAAM,GAAGD,UAAU,GAAGa,MAAM,CAACE,WAAW;QAC7DF,MAAM,CAACG,KAAK,GAAGhB,UAAU,GAAGa,MAAM,CAACE,WAAW;MAChD,CAAC,CAAC;IACJ;IAEA,OAAOL,OAAO;EAChB,CAAC;AACH,CAAC"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { getTimestampIdentifier } from "../util/timestamp.mjs";
|
|
4
|
-
const MILLIS_IN_DAY = 86400000;
|
|
5
|
-
export function getVisuals(events) {
|
|
6
|
-
let minStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
7
|
-
const visuals = events.map(event => ({
|
|
8
|
-
event,
|
|
9
|
-
columnCount: 0,
|
|
10
|
-
column: 0,
|
|
11
|
-
left: 0,
|
|
12
|
-
width: 100
|
|
13
|
-
}));
|
|
14
|
-
visuals.sort((a, b) => {
|
|
15
|
-
return Math.max(minStart, a.event.startTimestampIdentifier) - Math.max(minStart, b.event.startTimestampIdentifier) || b.event.endTimestampIdentifier - a.event.endTimestampIdentifier;
|
|
16
|
-
});
|
|
17
|
-
return visuals;
|
|
18
|
-
}
|
|
19
|
-
export function hasOverlap(s0, e0, s1, e1) {
|
|
20
|
-
let exclude = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
|
|
21
|
-
return exclude ? !(s0 >= e1 || e0 <= s1) : !(s0 > e1 || e0 < s1);
|
|
22
|
-
}
|
|
23
|
-
export function setColumnCount(groups) {
|
|
24
|
-
groups.forEach(group => {
|
|
25
|
-
group.visuals.forEach(groupVisual => {
|
|
26
|
-
groupVisual.columnCount = groups.length;
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
export function getRange(event) {
|
|
31
|
-
return [event.startTimestampIdentifier, event.endTimestampIdentifier];
|
|
32
|
-
}
|
|
33
|
-
export function getDayRange(event) {
|
|
34
|
-
return [event.startIdentifier, event.endIdentifier];
|
|
35
|
-
}
|
|
36
|
-
export function getNormalizedRange(event, dayStart) {
|
|
37
|
-
return [Math.max(dayStart, event.startTimestampIdentifier), Math.min(dayStart + MILLIS_IN_DAY, event.endTimestampIdentifier)];
|
|
38
|
-
}
|
|
39
|
-
export function getOpenGroup(groups, start, end, timed) {
|
|
40
|
-
for (let i = 0; i < groups.length; i++) {
|
|
41
|
-
const group = groups[i];
|
|
42
|
-
let intersected = false;
|
|
43
|
-
if (hasOverlap(start, end, group.start, group.end, timed)) {
|
|
44
|
-
for (let k = 0; k < group.visuals.length; k++) {
|
|
45
|
-
const groupVisual = group.visuals[k];
|
|
46
|
-
const [groupStart, groupEnd] = timed ? getRange(groupVisual.event) : getDayRange(groupVisual.event);
|
|
47
|
-
if (hasOverlap(start, end, groupStart, groupEnd, timed)) {
|
|
48
|
-
intersected = true;
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (!intersected) {
|
|
54
|
-
return i;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return -1;
|
|
58
|
-
}
|
|
59
|
-
export function getOverlapGroupHandler(firstWeekday) {
|
|
60
|
-
const handler = {
|
|
61
|
-
groups: [],
|
|
62
|
-
min: -1,
|
|
63
|
-
max: -1,
|
|
64
|
-
reset: () => {
|
|
65
|
-
handler.groups = [];
|
|
66
|
-
handler.min = handler.max = -1;
|
|
67
|
-
},
|
|
68
|
-
getVisuals: function (day, dayEvents, timed) {
|
|
69
|
-
let reset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
70
|
-
if (day.weekday === firstWeekday || reset) {
|
|
71
|
-
handler.reset();
|
|
72
|
-
}
|
|
73
|
-
const dayStart = getTimestampIdentifier(day);
|
|
74
|
-
const visuals = getVisuals(dayEvents, dayStart);
|
|
75
|
-
visuals.forEach(visual => {
|
|
76
|
-
const [start, end] = timed ? getRange(visual.event) : getDayRange(visual.event);
|
|
77
|
-
if (handler.groups.length > 0 && !hasOverlap(start, end, handler.min, handler.max, timed)) {
|
|
78
|
-
setColumnCount(handler.groups);
|
|
79
|
-
handler.reset();
|
|
80
|
-
}
|
|
81
|
-
let targetGroup = getOpenGroup(handler.groups, start, end, timed);
|
|
82
|
-
if (targetGroup === -1) {
|
|
83
|
-
targetGroup = handler.groups.length;
|
|
84
|
-
handler.groups.push({
|
|
85
|
-
start,
|
|
86
|
-
end,
|
|
87
|
-
visuals: []
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
const target = handler.groups[targetGroup];
|
|
91
|
-
target.visuals.push(visual);
|
|
92
|
-
target.start = Math.min(target.start, start);
|
|
93
|
-
target.end = Math.max(target.end, end);
|
|
94
|
-
visual.column = targetGroup;
|
|
95
|
-
if (handler.min === -1) {
|
|
96
|
-
handler.min = start;
|
|
97
|
-
handler.max = end;
|
|
98
|
-
} else {
|
|
99
|
-
handler.min = Math.min(handler.min, start);
|
|
100
|
-
handler.max = Math.max(handler.max, end);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
setColumnCount(handler.groups);
|
|
104
|
-
if (timed) {
|
|
105
|
-
handler.reset();
|
|
106
|
-
}
|
|
107
|
-
return visuals;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
return handler;
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=common.mjs.map
|