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":"common.mjs","names":["getTimestampIdentifier","MILLIS_IN_DAY","getVisuals","events","minStart","arguments","length","undefined","visuals","map","event","columnCount","column","left","width","sort","a","b","Math","max","startTimestampIdentifier","endTimestampIdentifier","hasOverlap","s0","e0","s1","e1","exclude","setColumnCount","groups","forEach","group","groupVisual","getRange","getDayRange","startIdentifier","endIdentifier","getNormalizedRange","dayStart","min","getOpenGroup","start","end","timed","i","intersected","k","groupStart","groupEnd","getOverlapGroupHandler","firstWeekday","handler","reset","day","dayEvents","weekday","visual","targetGroup","push","target"],"sources":["../../../../src/components/VCalendar/modes/common.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { CalendarEventParsed, CalendarEventVisual, CalendarTimestamp } from 'vuetify/types'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\nconst MILLIS_IN_DAY = 86400000\n\nexport type GetRange = (event: CalendarEventParsed) => [number, number]\n\nexport function getVisuals (events: CalendarEventParsed[], minStart = 0): CalendarEventVisual[] {\n const visuals = events.map(event => ({\n event,\n columnCount: 0,\n column: 0,\n left: 0,\n width: 100,\n }))\n\n visuals.sort((a, b) => {\n return (Math.max(minStart, a.event.startTimestampIdentifier) - Math.max(minStart, b.event.startTimestampIdentifier)) ||\n (b.event.endTimestampIdentifier - a.event.endTimestampIdentifier)\n })\n\n return visuals\n}\n\nexport interface ColumnGroup {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\nexport function hasOverlap (s0: number, e0: number, s1: number, e1: number, exclude = true): boolean {\n return exclude ? !(s0 >= e1 || e0 <= s1) : !(s0 > e1 || e0 < s1)\n}\n\nexport function setColumnCount (groups: ColumnGroup[]) {\n groups.forEach(group => {\n group.visuals.forEach(groupVisual => {\n groupVisual.columnCount = groups.length\n })\n })\n}\n\nexport function getRange (event: CalendarEventParsed): [number, number] {\n return [event.startTimestampIdentifier, event.endTimestampIdentifier]\n}\n\nexport function getDayRange (event: CalendarEventParsed): [number, number] {\n return [event.startIdentifier, event.endIdentifier]\n}\n\nexport function getNormalizedRange (event: CalendarEventParsed, dayStart: number): [number, number] {\n return [Math.max(dayStart, event.startTimestampIdentifier), Math.min(dayStart + MILLIS_IN_DAY, event.endTimestampIdentifier)]\n}\n\nexport function getOpenGroup (groups: ColumnGroup[], start: number, end: number, timed: boolean) {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i]\n let intersected = false\n\n if (hasOverlap(start, end, group.start, group.end, timed)) {\n for (let k = 0; k < group.visuals.length; k++) {\n const groupVisual = group.visuals[k]\n const [groupStart, groupEnd] = timed ? getRange(groupVisual.event) : getDayRange(groupVisual.event)\n\n if (hasOverlap(start, end, groupStart, groupEnd, timed)) {\n intersected = true\n break\n }\n }\n }\n\n if (!intersected) {\n return i\n }\n }\n\n return -1\n}\n\nexport function getOverlapGroupHandler (firstWeekday: number) {\n const handler = {\n groups: [] as ColumnGroup[],\n min: -1,\n max: -1,\n reset: () => {\n handler.groups = []\n handler.min = handler.max = -1\n },\n getVisuals: (day: CalendarTimestamp, dayEvents: CalendarEventParsed[], timed: boolean, reset = false) => {\n if (day.weekday === firstWeekday || reset) {\n handler.reset()\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n\n visuals.forEach(visual => {\n const [start, end] = timed ? getRange(visual.event) : getDayRange(visual.event)\n\n if (handler.groups.length > 0 && !hasOverlap(start, end, handler.min, handler.max, timed)) {\n setColumnCount(handler.groups)\n handler.reset()\n }\n\n let targetGroup = getOpenGroup(handler.groups, start, end, timed)\n\n if (targetGroup === -1) {\n targetGroup = handler.groups.length\n\n handler.groups.push({ start, end, visuals: [] })\n }\n\n const target = handler.groups[targetGroup]\n target.visuals.push(visual)\n target.start = Math.min(target.start, start)\n target.end = Math.max(target.end, end)\n\n visual.column = targetGroup\n\n if (handler.min === -1) {\n handler.min = start\n handler.max = end\n } else {\n handler.min = Math.min(handler.min, start)\n handler.max = Math.max(handler.max, end)\n }\n })\n\n setColumnCount(handler.groups)\n\n if (timed) {\n handler.reset()\n }\n\n return visuals\n },\n }\n\n return handler\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["stack","column","CalendarEventOverlapModes"],"sources":["../../../../src/components/VCalendar/modes/index.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { CalendarEventOverlapMode } from 'vuetify/types'\nimport { stack } from './stack'\nimport { column } from './column'\n\nexport const CalendarEventOverlapModes: Record<string, CalendarEventOverlapMode> = {\n stack,\n column,\n}\n"],"mappings":"AAAA;AACA;AAAA,SAGSA,KAAK;AAAA,SACLC,MAAM;AAEf,OAAO,MAAMC,yBAAmE,GAAG;EACjFF,KAAK;EACLC;AACF,CAAC"}
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { getOverlapGroupHandler, getVisuals, hasOverlap, getNormalizedRange } from "./common.mjs";
|
|
4
|
-
import { getTimestampIdentifier } from "../util/timestamp.mjs";
|
|
5
|
-
const FULL_WIDTH = 100;
|
|
6
|
-
const DEFAULT_OFFSET = 5;
|
|
7
|
-
const WIDTH_MULTIPLIER = 1.7;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Variation of column mode where events can be stacked. The priority of this
|
|
11
|
-
* mode is to stack events together taking up the least amount of space while
|
|
12
|
-
* trying to ensure the content of the event is always visible as well as its
|
|
13
|
-
* start and end. A sibling column has intersecting event content and must be
|
|
14
|
-
* placed beside each other. Non-sibling columns are offset by 5% from the
|
|
15
|
-
* previous column. The width is scaled by 1.7 so the events overlap and
|
|
16
|
-
* whitespace is reduced. If there is a hole in columns the event width is
|
|
17
|
-
* scaled up so it intersects with the next column. The columns have equal
|
|
18
|
-
* width in the space they are given. If the event doesn't have any to the
|
|
19
|
-
* right of it that intersect with it's content it's right side is extended
|
|
20
|
-
* to the right side.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
export const stack = (events, firstWeekday, overlapThreshold) => {
|
|
24
|
-
const handler = getOverlapGroupHandler(firstWeekday);
|
|
25
|
-
|
|
26
|
-
// eslint-disable-next-line max-statements
|
|
27
|
-
return (day, dayEvents, timed, reset) => {
|
|
28
|
-
if (!timed) {
|
|
29
|
-
return handler.getVisuals(day, dayEvents, timed, reset);
|
|
30
|
-
}
|
|
31
|
-
const dayStart = getTimestampIdentifier(day);
|
|
32
|
-
const visuals = getVisuals(dayEvents, dayStart);
|
|
33
|
-
const groups = getGroups(visuals, dayStart);
|
|
34
|
-
for (const group of groups) {
|
|
35
|
-
const nodes = [];
|
|
36
|
-
for (const visual of group.visuals) {
|
|
37
|
-
const child = getNode(visual, dayStart);
|
|
38
|
-
const index = getNextIndex(child, nodes);
|
|
39
|
-
if (index === false) {
|
|
40
|
-
const parent = getParent(child, nodes);
|
|
41
|
-
if (parent) {
|
|
42
|
-
child.parent = parent;
|
|
43
|
-
child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold));
|
|
44
|
-
child.index = parent.index + 1;
|
|
45
|
-
parent.children.push(child);
|
|
46
|
-
}
|
|
47
|
-
} else {
|
|
48
|
-
const [parent] = getOverlappingRange(child, nodes, index - 1, index - 1);
|
|
49
|
-
const children = getOverlappingRange(child, nodes, index + 1, index + nodes.length, true);
|
|
50
|
-
child.children = children;
|
|
51
|
-
child.index = index;
|
|
52
|
-
if (parent) {
|
|
53
|
-
child.parent = parent;
|
|
54
|
-
child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold));
|
|
55
|
-
parent.children.push(child);
|
|
56
|
-
}
|
|
57
|
-
for (const grand of children) {
|
|
58
|
-
if (grand.parent === parent) {
|
|
59
|
-
grand.parent = child;
|
|
60
|
-
}
|
|
61
|
-
const grandNext = grand.index - child.index <= 1;
|
|
62
|
-
if (grandNext && child.sibling && hasOverlap(child.start, addTime(child.start, overlapThreshold), grand.start, grand.end)) {
|
|
63
|
-
grand.sibling = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
nodes.push(child);
|
|
68
|
-
}
|
|
69
|
-
calculateBounds(nodes, overlapThreshold);
|
|
70
|
-
}
|
|
71
|
-
visuals.sort((a, b) => a.left - b.left || a.event.startTimestampIdentifier - b.event.startTimestampIdentifier);
|
|
72
|
-
return visuals;
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
function calculateBounds(nodes, overlapThreshold) {
|
|
76
|
-
for (const node of nodes) {
|
|
77
|
-
const {
|
|
78
|
-
visual,
|
|
79
|
-
parent
|
|
80
|
-
} = node;
|
|
81
|
-
const columns = getMaxChildIndex(node) + 1;
|
|
82
|
-
const spaceLeft = parent ? parent.visual.left : 0;
|
|
83
|
-
const spaceWidth = FULL_WIDTH - spaceLeft;
|
|
84
|
-
const offset = Math.min(DEFAULT_OFFSET, FULL_WIDTH / columns);
|
|
85
|
-
const columnWidthMultiplier = getColumnWidthMultiplier(node, nodes);
|
|
86
|
-
const columnOffset = spaceWidth / (columns - node.index + 1);
|
|
87
|
-
const columnWidth = spaceWidth / (columns - node.index + (node.sibling ? 1 : 0)) * columnWidthMultiplier;
|
|
88
|
-
if (parent) {
|
|
89
|
-
visual.left = node.sibling ? spaceLeft + columnOffset : spaceLeft + offset;
|
|
90
|
-
}
|
|
91
|
-
visual.width = hasFullWidth(node, nodes, overlapThreshold) ? FULL_WIDTH - visual.left : Math.min(FULL_WIDTH - visual.left, columnWidth * WIDTH_MULTIPLIER);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
function getColumnWidthMultiplier(node, nodes) {
|
|
95
|
-
if (!node.children.length) {
|
|
96
|
-
return 1;
|
|
97
|
-
}
|
|
98
|
-
const maxColumn = node.index + nodes.length;
|
|
99
|
-
const minColumn = node.children.reduce((min, c) => Math.min(min, c.index), maxColumn);
|
|
100
|
-
return minColumn - node.index;
|
|
101
|
-
}
|
|
102
|
-
function getOverlappingIndices(node, nodes) {
|
|
103
|
-
const indices = [];
|
|
104
|
-
for (const other of nodes) {
|
|
105
|
-
if (hasOverlap(node.start, node.end, other.start, other.end)) {
|
|
106
|
-
indices.push(other.index);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return indices;
|
|
110
|
-
}
|
|
111
|
-
function getNextIndex(node, nodes) {
|
|
112
|
-
const indices = getOverlappingIndices(node, nodes);
|
|
113
|
-
indices.sort();
|
|
114
|
-
for (let i = 0; i < indices.length; i++) {
|
|
115
|
-
if (i < indices[i]) {
|
|
116
|
-
return i;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
function getOverlappingRange(node, nodes, indexMin, indexMax) {
|
|
122
|
-
let returnFirstColumn = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
123
|
-
const overlapping = [];
|
|
124
|
-
for (const other of nodes) {
|
|
125
|
-
if (other.index >= indexMin && other.index <= indexMax && hasOverlap(node.start, node.end, other.start, other.end)) {
|
|
126
|
-
overlapping.push(other);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (returnFirstColumn && overlapping.length > 0) {
|
|
130
|
-
const first = overlapping.reduce((min, n) => Math.min(min, n.index), overlapping[0].index);
|
|
131
|
-
return overlapping.filter(n => n.index === first);
|
|
132
|
-
}
|
|
133
|
-
return overlapping;
|
|
134
|
-
}
|
|
135
|
-
function getParent(node, nodes) {
|
|
136
|
-
let parent = null;
|
|
137
|
-
for (const other of nodes) {
|
|
138
|
-
if (hasOverlap(node.start, node.end, other.start, other.end) && (parent === null || other.index > parent.index)) {
|
|
139
|
-
parent = other;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return parent;
|
|
143
|
-
}
|
|
144
|
-
function hasFullWidth(node, nodes, overlapThreshold) {
|
|
145
|
-
for (const other of nodes) {
|
|
146
|
-
if (other !== node && other.index > node.index && hasOverlap(node.start, addTime(node.start, overlapThreshold), other.start, other.end)) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
function getGroups(visuals, dayStart) {
|
|
153
|
-
const groups = [];
|
|
154
|
-
for (const visual of visuals) {
|
|
155
|
-
const [start, end] = getNormalizedRange(visual.event, dayStart);
|
|
156
|
-
let added = false;
|
|
157
|
-
for (const group of groups) {
|
|
158
|
-
if (hasOverlap(start, end, group.start, group.end)) {
|
|
159
|
-
group.visuals.push(visual);
|
|
160
|
-
group.end = Math.max(group.end, end);
|
|
161
|
-
added = true;
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
if (!added) {
|
|
166
|
-
groups.push({
|
|
167
|
-
start,
|
|
168
|
-
end,
|
|
169
|
-
visuals: [visual]
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return groups;
|
|
174
|
-
}
|
|
175
|
-
function getNode(visual, dayStart) {
|
|
176
|
-
const [start, end] = getNormalizedRange(visual.event, dayStart);
|
|
177
|
-
return {
|
|
178
|
-
parent: null,
|
|
179
|
-
sibling: true,
|
|
180
|
-
index: 0,
|
|
181
|
-
visual,
|
|
182
|
-
start,
|
|
183
|
-
end,
|
|
184
|
-
children: []
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
function getMaxChildIndex(node) {
|
|
188
|
-
let max = node.index;
|
|
189
|
-
for (const child of node.children) {
|
|
190
|
-
const childMax = getMaxChildIndex(child);
|
|
191
|
-
if (childMax > max) {
|
|
192
|
-
max = childMax;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return max;
|
|
196
|
-
}
|
|
197
|
-
function addTime(identifier, minutes) {
|
|
198
|
-
const removeMinutes = identifier % 100;
|
|
199
|
-
const totalMinutes = removeMinutes + minutes;
|
|
200
|
-
const addHours = Math.floor(totalMinutes / 60);
|
|
201
|
-
const addMinutes = totalMinutes % 60;
|
|
202
|
-
return identifier - removeMinutes + addHours * 100 + addMinutes;
|
|
203
|
-
}
|
|
204
|
-
//# sourceMappingURL=stack.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stack.mjs","names":["getOverlapGroupHandler","getVisuals","hasOverlap","getNormalizedRange","getTimestampIdentifier","FULL_WIDTH","DEFAULT_OFFSET","WIDTH_MULTIPLIER","stack","events","firstWeekday","overlapThreshold","handler","day","dayEvents","timed","reset","dayStart","visuals","groups","getGroups","group","nodes","visual","child","getNode","index","getNextIndex","parent","getParent","sibling","start","end","addTime","children","push","getOverlappingRange","length","grand","grandNext","calculateBounds","sort","a","b","left","event","startTimestampIdentifier","node","columns","getMaxChildIndex","spaceLeft","spaceWidth","offset","Math","min","columnWidthMultiplier","getColumnWidthMultiplier","columnOffset","columnWidth","width","hasFullWidth","maxColumn","minColumn","reduce","c","getOverlappingIndices","indices","other","i","indexMin","indexMax","returnFirstColumn","arguments","undefined","overlapping","first","n","filter","added","max","childMax","identifier","minutes","removeMinutes","totalMinutes","addHours","floor","addMinutes"],"sources":["../../../../src/components/VCalendar/modes/stack.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { CalendarEventOverlapMode, CalendarEventVisual } from 'vuetify/types'\nimport { getOverlapGroupHandler, getVisuals, hasOverlap, getNormalizedRange } from './common'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\ninterface Group {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\ninterface Node {\n parent: Node | null\n sibling: boolean\n index: number\n visual: CalendarEventVisual\n start: number\n end: number\n children: Node[]\n}\n\nconst FULL_WIDTH = 100\n\nconst DEFAULT_OFFSET = 5\n\nconst WIDTH_MULTIPLIER = 1.7\n\n/**\n * Variation of column mode where events can be stacked. The priority of this\n * mode is to stack events together taking up the least amount of space while\n * trying to ensure the content of the event is always visible as well as its\n * start and end. A sibling column has intersecting event content and must be\n * placed beside each other. Non-sibling columns are offset by 5% from the\n * previous column. The width is scaled by 1.7 so the events overlap and\n * whitespace is reduced. If there is a hole in columns the event width is\n * scaled up so it intersects with the next column. The columns have equal\n * width in the space they are given. If the event doesn't have any to the\n * right of it that intersect with it's content it's right side is extended\n * to the right side.\n */\n\nexport const stack: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n // eslint-disable-next-line max-statements\n return (day, dayEvents, timed, reset) => {\n if (!timed) {\n return handler.getVisuals(day, dayEvents, timed, reset)\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n const groups = getGroups(visuals, dayStart)\n\n for (const group of groups) {\n const nodes: Node[] = []\n\n for (const visual of group.visuals) {\n const child = getNode(visual, dayStart)\n const index = getNextIndex(child, nodes)\n\n if (index === false) {\n const parent = getParent(child, nodes)\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n child.index = parent.index + 1\n parent.children.push(child)\n }\n } else {\n const [parent] = getOverlappingRange(child, nodes, index - 1, index - 1)\n const children = getOverlappingRange(child, nodes, index + 1, index + nodes.length, true)\n\n child.children = children\n child.index = index\n\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n parent.children.push(child)\n }\n\n for (const grand of children) {\n if (grand.parent === parent) {\n grand.parent = child\n }\n\n const grandNext = grand.index - child.index <= 1\n if (grandNext && child.sibling &&\n hasOverlap(child.start, addTime(child.start, overlapThreshold), grand.start, grand.end)) {\n grand.sibling = true\n }\n }\n }\n\n nodes.push(child)\n }\n\n calculateBounds(nodes, overlapThreshold)\n }\n\n visuals.sort((a, b) => (a.left - b.left) || (a.event.startTimestampIdentifier - b.event.startTimestampIdentifier))\n\n return visuals\n }\n}\n\nfunction calculateBounds (nodes: Node[], overlapThreshold: number) {\n for (const node of nodes) {\n const { visual, parent } = node\n const columns = getMaxChildIndex(node) + 1\n const spaceLeft = parent ? parent.visual.left : 0\n const spaceWidth = FULL_WIDTH - spaceLeft\n const offset = Math.min(DEFAULT_OFFSET, FULL_WIDTH / columns)\n const columnWidthMultiplier = getColumnWidthMultiplier(node, nodes)\n const columnOffset = spaceWidth / (columns - node.index + 1)\n const columnWidth = spaceWidth / (columns - node.index + (node.sibling ? 1 : 0)) * columnWidthMultiplier\n\n if (parent) {\n visual.left = node.sibling\n ? spaceLeft + columnOffset\n : spaceLeft + offset\n }\n\n visual.width = hasFullWidth(node, nodes, overlapThreshold)\n ? FULL_WIDTH - visual.left\n : Math.min(FULL_WIDTH - visual.left, columnWidth * WIDTH_MULTIPLIER)\n }\n}\n\nfunction getColumnWidthMultiplier (node: Node, nodes: Node[]): number {\n if (!node.children.length) {\n return 1\n }\n\n const maxColumn = node.index + nodes.length\n const minColumn = node.children.reduce((min, c) => Math.min(min, c.index), maxColumn)\n\n return minColumn - node.index\n}\n\nfunction getOverlappingIndices (node: Node, nodes: Node[]): number[] {\n const indices: number[] = []\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end)) {\n indices.push(other.index)\n }\n }\n return indices\n}\n\nfunction getNextIndex (node: Node, nodes: Node[]): number | false {\n const indices = getOverlappingIndices(node, nodes)\n indices.sort()\n\n for (let i = 0; i < indices.length; i++) {\n if (i < indices[i]) {\n return i\n }\n }\n return false\n}\n\nfunction getOverlappingRange (node: Node, nodes: Node[], indexMin: number, indexMax: number, returnFirstColumn = false): Node[] {\n const overlapping: Node[] = []\n for (const other of nodes) {\n if (other.index >= indexMin && other.index <= indexMax && hasOverlap(node.start, node.end, other.start, other.end)) {\n overlapping.push(other)\n }\n }\n if (returnFirstColumn && overlapping.length > 0) {\n const first = overlapping.reduce((min, n) => Math.min(min, n.index), overlapping[0].index)\n return overlapping.filter(n => n.index === first)\n }\n return overlapping\n}\n\nfunction getParent (node: Node, nodes: Node[]): Node | null {\n let parent: Node | null = null\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end) && (parent === null || other.index > parent.index)) {\n parent = other\n }\n }\n return parent\n}\n\nfunction hasFullWidth (node: Node, nodes: Node[], overlapThreshold: number): boolean {\n for (const other of nodes) {\n if (other !== node &&\n other.index > node.index &&\n hasOverlap(node.start, addTime(node.start, overlapThreshold), other.start, other.end)) {\n return false\n }\n }\n\n return true\n}\n\nfunction getGroups (visuals: CalendarEventVisual[], dayStart: number): Group[] {\n const groups: Group[] = []\n\n for (const visual of visuals) {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n let added = false\n\n for (const group of groups) {\n if (hasOverlap(start, end, group.start, group.end)) {\n group.visuals.push(visual)\n group.end = Math.max(group.end, end)\n added = true\n break\n }\n }\n\n if (!added) {\n groups.push({ start, end, visuals: [visual] })\n }\n }\n\n return groups\n}\n\nfunction getNode (visual: CalendarEventVisual, dayStart: number): Node {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n\n return {\n parent: null,\n sibling: true,\n index: 0,\n visual,\n start,\n end,\n children: [],\n }\n}\n\nfunction getMaxChildIndex (node: Node): number {\n let max = node.index\n for (const child of node.children) {\n const childMax = getMaxChildIndex(child)\n if (childMax > max) {\n max = childMax\n }\n }\n return max\n}\n\nfunction addTime (identifier: number, minutes: number): number {\n const removeMinutes = identifier % 100\n const totalMinutes = removeMinutes + minutes\n const addHours = Math.floor(totalMinutes / 60)\n const addMinutes = totalMinutes % 60\n\n return identifier - removeMinutes + addHours * 100 + addMinutes\n}\n"],"mappings":"AAAA;AACA;AAAA,SAGSA,sBAAsB,EAAEC,UAAU,EAAEC,UAAU,EAAEC,kBAAkB;AAAA,SAClEC,sBAAsB;AAkB/B,MAAMC,UAAU,GAAG,GAAG;AAEtB,MAAMC,cAAc,GAAG,CAAC;AAExB,MAAMC,gBAAgB,GAAG,GAAG;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,KAA+B,GAAGA,CAACC,MAAM,EAAEC,YAAY,EAAEC,gBAAgB,KAAK;EACzF,MAAMC,OAAO,GAAGZ,sBAAsB,CAACU,YAAY,CAAC;;EAEpD;EACA,OAAO,CAACG,GAAG,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,KAAK;IACvC,IAAI,CAACD,KAAK,EAAE;MACV,OAAOH,OAAO,CAACX,UAAU,CAACY,GAAG,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,CAAC;IACzD;IAEA,MAAMC,QAAQ,GAAGb,sBAAsB,CAACS,GAAG,CAAC;IAC5C,MAAMK,OAAO,GAAGjB,UAAU,CAACa,SAAS,EAAEG,QAAQ,CAAC;IAC/C,MAAME,MAAM,GAAGC,SAAS,CAACF,OAAO,EAAED,QAAQ,CAAC;IAE3C,KAAK,MAAMI,KAAK,IAAIF,MAAM,EAAE;MAC1B,MAAMG,KAAa,GAAG,EAAE;MAExB,KAAK,MAAMC,MAAM,IAAIF,KAAK,CAACH,OAAO,EAAE;QAClC,MAAMM,KAAK,GAAGC,OAAO,CAACF,MAAM,EAAEN,QAAQ,CAAC;QACvC,MAAMS,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAEF,KAAK,CAAC;QAExC,IAAII,KAAK,KAAK,KAAK,EAAE;UACnB,MAAME,MAAM,GAAGC,SAAS,CAACL,KAAK,EAAEF,KAAK,CAAC;UACtC,IAAIM,MAAM,EAAE;YACVJ,KAAK,CAACI,MAAM,GAAGA,MAAM;YACrBJ,KAAK,CAACM,OAAO,GAAG5B,UAAU,CAACsB,KAAK,CAACO,KAAK,EAAEP,KAAK,CAACQ,GAAG,EAAEJ,MAAM,CAACG,KAAK,EAAEE,OAAO,CAACL,MAAM,CAACG,KAAK,EAAEpB,gBAAgB,CAAC,CAAC;YACzGa,KAAK,CAACE,KAAK,GAAGE,MAAM,CAACF,KAAK,GAAG,CAAC;YAC9BE,MAAM,CAACM,QAAQ,CAACC,IAAI,CAACX,KAAK,CAAC;UAC7B;QACF,CAAC,MAAM;UACL,MAAM,CAACI,MAAM,CAAC,GAAGQ,mBAAmB,CAACZ,KAAK,EAAEF,KAAK,EAAEI,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,CAAC,CAAC;UACxE,MAAMQ,QAAQ,GAAGE,mBAAmB,CAACZ,KAAK,EAAEF,KAAK,EAAEI,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGJ,KAAK,CAACe,MAAM,EAAE,IAAI,CAAC;UAEzFb,KAAK,CAACU,QAAQ,GAAGA,QAAQ;UACzBV,KAAK,CAACE,KAAK,GAAGA,KAAK;UAEnB,IAAIE,MAAM,EAAE;YACVJ,KAAK,CAACI,MAAM,GAAGA,MAAM;YACrBJ,KAAK,CAACM,OAAO,GAAG5B,UAAU,CAACsB,KAAK,CAACO,KAAK,EAAEP,KAAK,CAACQ,GAAG,EAAEJ,MAAM,CAACG,KAAK,EAAEE,OAAO,CAACL,MAAM,CAACG,KAAK,EAAEpB,gBAAgB,CAAC,CAAC;YACzGiB,MAAM,CAACM,QAAQ,CAACC,IAAI,CAACX,KAAK,CAAC;UAC7B;UAEA,KAAK,MAAMc,KAAK,IAAIJ,QAAQ,EAAE;YAC5B,IAAII,KAAK,CAACV,MAAM,KAAKA,MAAM,EAAE;cAC3BU,KAAK,CAACV,MAAM,GAAGJ,KAAK;YACtB;YAEA,MAAMe,SAAS,GAAGD,KAAK,CAACZ,KAAK,GAAGF,KAAK,CAACE,KAAK,IAAI,CAAC;YAChD,IAAIa,SAAS,IAAIf,KAAK,CAACM,OAAO,IAC5B5B,UAAU,CAACsB,KAAK,CAACO,KAAK,EAAEE,OAAO,CAACT,KAAK,CAACO,KAAK,EAAEpB,gBAAgB,CAAC,EAAE2B,KAAK,CAACP,KAAK,EAAEO,KAAK,CAACN,GAAG,CAAC,EAAE;cACzFM,KAAK,CAACR,OAAO,GAAG,IAAI;YACtB;UACF;QACF;QAEAR,KAAK,CAACa,IAAI,CAACX,KAAK,CAAC;MACnB;MAEAgB,eAAe,CAAClB,KAAK,EAAEX,gBAAgB,CAAC;IAC1C;IAEAO,OAAO,CAACuB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACE,IAAI,GAAGD,CAAC,CAACC,IAAI,IAAMF,CAAC,CAACG,KAAK,CAACC,wBAAwB,GAAGH,CAAC,CAACE,KAAK,CAACC,wBAAyB,CAAC;IAElH,OAAO5B,OAAO;EAChB,CAAC;AACH,CAAC;AAED,SAASsB,eAAeA,CAAElB,KAAa,EAAEX,gBAAwB,EAAE;EACjE,KAAK,MAAMoC,IAAI,IAAIzB,KAAK,EAAE;IACxB,MAAM;MAAEC,MAAM;MAAEK;IAAO,CAAC,GAAGmB,IAAI;IAC/B,MAAMC,OAAO,GAAGC,gBAAgB,CAACF,IAAI,CAAC,GAAG,CAAC;IAC1C,MAAMG,SAAS,GAAGtB,MAAM,GAAGA,MAAM,CAACL,MAAM,CAACqB,IAAI,GAAG,CAAC;IACjD,MAAMO,UAAU,GAAG9C,UAAU,GAAG6C,SAAS;IACzC,MAAME,MAAM,GAAGC,IAAI,CAACC,GAAG,CAAChD,cAAc,EAAED,UAAU,GAAG2C,OAAO,CAAC;IAC7D,MAAMO,qBAAqB,GAAGC,wBAAwB,CAACT,IAAI,EAAEzB,KAAK,CAAC;IACnE,MAAMmC,YAAY,GAAGN,UAAU,IAAIH,OAAO,GAAGD,IAAI,CAACrB,KAAK,GAAG,CAAC,CAAC;IAC5D,MAAMgC,WAAW,GAAGP,UAAU,IAAIH,OAAO,GAAGD,IAAI,CAACrB,KAAK,IAAIqB,IAAI,CAACjB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGyB,qBAAqB;IAExG,IAAI3B,MAAM,EAAE;MACVL,MAAM,CAACqB,IAAI,GAAGG,IAAI,CAACjB,OAAO,GACtBoB,SAAS,GAAGO,YAAY,GACxBP,SAAS,GAAGE,MAAM;IACxB;IAEA7B,MAAM,CAACoC,KAAK,GAAGC,YAAY,CAACb,IAAI,EAAEzB,KAAK,EAAEX,gBAAgB,CAAC,GACtDN,UAAU,GAAGkB,MAAM,CAACqB,IAAI,GACxBS,IAAI,CAACC,GAAG,CAACjD,UAAU,GAAGkB,MAAM,CAACqB,IAAI,EAAEc,WAAW,GAAGnD,gBAAgB,CAAC;EACxE;AACF;AAEA,SAASiD,wBAAwBA,CAAET,IAAU,EAAEzB,KAAa,EAAU;EACpE,IAAI,CAACyB,IAAI,CAACb,QAAQ,CAACG,MAAM,EAAE;IACzB,OAAO,CAAC;EACV;EAEA,MAAMwB,SAAS,GAAGd,IAAI,CAACrB,KAAK,GAAGJ,KAAK,CAACe,MAAM;EAC3C,MAAMyB,SAAS,GAAGf,IAAI,CAACb,QAAQ,CAAC6B,MAAM,CAAC,CAACT,GAAG,EAAEU,CAAC,KAAKX,IAAI,CAACC,GAAG,CAACA,GAAG,EAAEU,CAAC,CAACtC,KAAK,CAAC,EAAEmC,SAAS,CAAC;EAErF,OAAOC,SAAS,GAAGf,IAAI,CAACrB,KAAK;AAC/B;AAEA,SAASuC,qBAAqBA,CAAElB,IAAU,EAAEzB,KAAa,EAAY;EACnE,MAAM4C,OAAiB,GAAG,EAAE;EAC5B,KAAK,MAAMC,KAAK,IAAI7C,KAAK,EAAE;IACzB,IAAIpB,UAAU,CAAC6C,IAAI,CAAChB,KAAK,EAAEgB,IAAI,CAACf,GAAG,EAAEmC,KAAK,CAACpC,KAAK,EAAEoC,KAAK,CAACnC,GAAG,CAAC,EAAE;MAC5DkC,OAAO,CAAC/B,IAAI,CAACgC,KAAK,CAACzC,KAAK,CAAC;IAC3B;EACF;EACA,OAAOwC,OAAO;AAChB;AAEA,SAASvC,YAAYA,CAAEoB,IAAU,EAAEzB,KAAa,EAAkB;EAChE,MAAM4C,OAAO,GAAGD,qBAAqB,CAAClB,IAAI,EAAEzB,KAAK,CAAC;EAClD4C,OAAO,CAACzB,IAAI,CAAC,CAAC;EAEd,KAAK,IAAI2B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,OAAO,CAAC7B,MAAM,EAAE+B,CAAC,EAAE,EAAE;IACvC,IAAIA,CAAC,GAAGF,OAAO,CAACE,CAAC,CAAC,EAAE;MAClB,OAAOA,CAAC;IACV;EACF;EACA,OAAO,KAAK;AACd;AAEA,SAAShC,mBAAmBA,CAAEW,IAAU,EAAEzB,KAAa,EAAE+C,QAAgB,EAAEC,QAAgB,EAAqC;EAAA,IAAnCC,iBAAiB,GAAAC,SAAA,CAAAnC,MAAA,QAAAmC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;EACpH,MAAME,WAAmB,GAAG,EAAE;EAC9B,KAAK,MAAMP,KAAK,IAAI7C,KAAK,EAAE;IACzB,IAAI6C,KAAK,CAACzC,KAAK,IAAI2C,QAAQ,IAAIF,KAAK,CAACzC,KAAK,IAAI4C,QAAQ,IAAIpE,UAAU,CAAC6C,IAAI,CAAChB,KAAK,EAAEgB,IAAI,CAACf,GAAG,EAAEmC,KAAK,CAACpC,KAAK,EAAEoC,KAAK,CAACnC,GAAG,CAAC,EAAE;MAClH0C,WAAW,CAACvC,IAAI,CAACgC,KAAK,CAAC;IACzB;EACF;EACA,IAAII,iBAAiB,IAAIG,WAAW,CAACrC,MAAM,GAAG,CAAC,EAAE;IAC/C,MAAMsC,KAAK,GAAGD,WAAW,CAACX,MAAM,CAAC,CAACT,GAAG,EAAEsB,CAAC,KAAKvB,IAAI,CAACC,GAAG,CAACA,GAAG,EAAEsB,CAAC,CAAClD,KAAK,CAAC,EAAEgD,WAAW,CAAC,CAAC,CAAC,CAAChD,KAAK,CAAC;IAC1F,OAAOgD,WAAW,CAACG,MAAM,CAACD,CAAC,IAAIA,CAAC,CAAClD,KAAK,KAAKiD,KAAK,CAAC;EACnD;EACA,OAAOD,WAAW;AACpB;AAEA,SAAS7C,SAASA,CAAEkB,IAAU,EAAEzB,KAAa,EAAe;EAC1D,IAAIM,MAAmB,GAAG,IAAI;EAC9B,KAAK,MAAMuC,KAAK,IAAI7C,KAAK,EAAE;IACzB,IAAIpB,UAAU,CAAC6C,IAAI,CAAChB,KAAK,EAAEgB,IAAI,CAACf,GAAG,EAAEmC,KAAK,CAACpC,KAAK,EAAEoC,KAAK,CAACnC,GAAG,CAAC,KAAKJ,MAAM,KAAK,IAAI,IAAIuC,KAAK,CAACzC,KAAK,GAAGE,MAAM,CAACF,KAAK,CAAC,EAAE;MAC/GE,MAAM,GAAGuC,KAAK;IAChB;EACF;EACA,OAAOvC,MAAM;AACf;AAEA,SAASgC,YAAYA,CAAEb,IAAU,EAAEzB,KAAa,EAAEX,gBAAwB,EAAW;EACnF,KAAK,MAAMwD,KAAK,IAAI7C,KAAK,EAAE;IACzB,IAAI6C,KAAK,KAAKpB,IAAI,IAChBoB,KAAK,CAACzC,KAAK,GAAGqB,IAAI,CAACrB,KAAK,IACxBxB,UAAU,CAAC6C,IAAI,CAAChB,KAAK,EAAEE,OAAO,CAACc,IAAI,CAAChB,KAAK,EAAEpB,gBAAgB,CAAC,EAAEwD,KAAK,CAACpC,KAAK,EAAEoC,KAAK,CAACnC,GAAG,CAAC,EAAE;MACvF,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,SAASZ,SAASA,CAAEF,OAA8B,EAAED,QAAgB,EAAW;EAC7E,MAAME,MAAe,GAAG,EAAE;EAE1B,KAAK,MAAMI,MAAM,IAAIL,OAAO,EAAE;IAC5B,MAAM,CAACa,KAAK,EAAEC,GAAG,CAAC,GAAG7B,kBAAkB,CAACoB,MAAM,CAACsB,KAAK,EAAE5B,QAAQ,CAAC;IAC/D,IAAI6D,KAAK,GAAG,KAAK;IAEjB,KAAK,MAAMzD,KAAK,IAAIF,MAAM,EAAE;MAC1B,IAAIjB,UAAU,CAAC6B,KAAK,EAAEC,GAAG,EAAEX,KAAK,CAACU,KAAK,EAAEV,KAAK,CAACW,GAAG,CAAC,EAAE;QAClDX,KAAK,CAACH,OAAO,CAACiB,IAAI,CAACZ,MAAM,CAAC;QAC1BF,KAAK,CAACW,GAAG,GAAGqB,IAAI,CAAC0B,GAAG,CAAC1D,KAAK,CAACW,GAAG,EAAEA,GAAG,CAAC;QACpC8C,KAAK,GAAG,IAAI;QACZ;MACF;IACF;IAEA,IAAI,CAACA,KAAK,EAAE;MACV3D,MAAM,CAACgB,IAAI,CAAC;QAAEJ,KAAK;QAAEC,GAAG;QAAEd,OAAO,EAAE,CAACK,MAAM;MAAE,CAAC,CAAC;IAChD;EACF;EAEA,OAAOJ,MAAM;AACf;AAEA,SAASM,OAAOA,CAAEF,MAA2B,EAAEN,QAAgB,EAAQ;EACrE,MAAM,CAACc,KAAK,EAAEC,GAAG,CAAC,GAAG7B,kBAAkB,CAACoB,MAAM,CAACsB,KAAK,EAAE5B,QAAQ,CAAC;EAE/D,OAAO;IACLW,MAAM,EAAE,IAAI;IACZE,OAAO,EAAE,IAAI;IACbJ,KAAK,EAAE,CAAC;IACRH,MAAM;IACNQ,KAAK;IACLC,GAAG;IACHE,QAAQ,EAAE;EACZ,CAAC;AACH;AAEA,SAASe,gBAAgBA,CAAEF,IAAU,EAAU;EAC7C,IAAIgC,GAAG,GAAGhC,IAAI,CAACrB,KAAK;EACpB,KAAK,MAAMF,KAAK,IAAIuB,IAAI,CAACb,QAAQ,EAAE;IACjC,MAAM8C,QAAQ,GAAG/B,gBAAgB,CAACzB,KAAK,CAAC;IACxC,IAAIwD,QAAQ,GAAGD,GAAG,EAAE;MAClBA,GAAG,GAAGC,QAAQ;IAChB;EACF;EACA,OAAOD,GAAG;AACZ;AAEA,SAAS9C,OAAOA,CAAEgD,UAAkB,EAAEC,OAAe,EAAU;EAC7D,MAAMC,aAAa,GAAGF,UAAU,GAAG,GAAG;EACtC,MAAMG,YAAY,GAAGD,aAAa,GAAGD,OAAO;EAC5C,MAAMG,QAAQ,GAAGhC,IAAI,CAACiC,KAAK,CAACF,YAAY,GAAG,EAAE,CAAC;EAC9C,MAAMG,UAAU,GAAGH,YAAY,GAAG,EAAE;EAEpC,OAAOH,UAAU,GAAGE,aAAa,GAAGE,QAAQ,GAAG,GAAG,GAAGE,UAAU;AACjE"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { parseTimestamp, getDayIdentifier, getTimestampIdentifier, isTimedless, updateHasTime } from "./timestamp.mjs";
|
|
4
|
-
export function parseEvent(input, index, startProperty, endProperty) {
|
|
5
|
-
let timed = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
6
|
-
let category = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
7
|
-
const startInput = input[startProperty];
|
|
8
|
-
const endInput = input[endProperty];
|
|
9
|
-
const startParsed = parseTimestamp(startInput, true);
|
|
10
|
-
const endParsed = endInput ? parseTimestamp(endInput, true) : startParsed;
|
|
11
|
-
const start = isTimedless(startInput) ? updateHasTime(startParsed, timed) : startParsed;
|
|
12
|
-
const end = isTimedless(endInput) ? updateHasTime(endParsed, timed) : endParsed;
|
|
13
|
-
const startIdentifier = getDayIdentifier(start);
|
|
14
|
-
const startTimestampIdentifier = getTimestampIdentifier(start);
|
|
15
|
-
const endIdentifier = getDayIdentifier(end);
|
|
16
|
-
const endOffset = start.hasTime ? 0 : 2359;
|
|
17
|
-
const endTimestampIdentifier = getTimestampIdentifier(end) + endOffset;
|
|
18
|
-
const allDay = !start.hasTime;
|
|
19
|
-
return {
|
|
20
|
-
input,
|
|
21
|
-
start,
|
|
22
|
-
startIdentifier,
|
|
23
|
-
startTimestampIdentifier,
|
|
24
|
-
end,
|
|
25
|
-
endIdentifier,
|
|
26
|
-
endTimestampIdentifier,
|
|
27
|
-
allDay,
|
|
28
|
-
index,
|
|
29
|
-
category
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export function isEventOn(event, dayIdentifier) {
|
|
33
|
-
return dayIdentifier >= event.startIdentifier && dayIdentifier <= event.endIdentifier;
|
|
34
|
-
}
|
|
35
|
-
export function isEventHiddenOn(event, day) {
|
|
36
|
-
return event.end.time === '00:00' && event.end.date === day.date && event.start.date !== day.date;
|
|
37
|
-
}
|
|
38
|
-
export function isEventStart(event, day, dayIdentifier, firstWeekday) {
|
|
39
|
-
return dayIdentifier === event.startIdentifier || firstWeekday === day.weekday && isEventOn(event, dayIdentifier);
|
|
40
|
-
}
|
|
41
|
-
export function isEventOverlapping(event, startIdentifier, endIdentifier) {
|
|
42
|
-
return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=events.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.mjs","names":["parseTimestamp","getDayIdentifier","getTimestampIdentifier","isTimedless","updateHasTime","parseEvent","input","index","startProperty","endProperty","timed","arguments","length","undefined","category","startInput","endInput","startParsed","endParsed","start","end","startIdentifier","startTimestampIdentifier","endIdentifier","endOffset","hasTime","endTimestampIdentifier","allDay","isEventOn","event","dayIdentifier","isEventHiddenOn","day","time","date","isEventStart","firstWeekday","weekday","isEventOverlapping"],"sources":["../../../../src/components/VCalendar/util/events.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport {\n parseTimestamp,\n getDayIdentifier,\n getTimestampIdentifier,\n isTimedless,\n updateHasTime,\n} from './timestamp'\nimport { CalendarTimestamp, CalendarEvent, CalendarEventParsed } from 'vuetify/types'\n\nexport function parseEvent (\n input: CalendarEvent,\n index: number,\n startProperty: string,\n endProperty: string,\n timed = false,\n category: string | false = false,\n): CalendarEventParsed {\n const startInput = input[startProperty]\n const endInput = input[endProperty]\n const startParsed: CalendarTimestamp = parseTimestamp(startInput, true)\n const endParsed: CalendarTimestamp = (endInput ? parseTimestamp(endInput, true) : startParsed)\n const start: CalendarTimestamp = isTimedless(startInput)\n ? updateHasTime(startParsed, timed)\n : startParsed\n const end: CalendarTimestamp = isTimedless(endInput)\n ? updateHasTime(endParsed, timed)\n : endParsed\n const startIdentifier: number = getDayIdentifier(start)\n const startTimestampIdentifier: number = getTimestampIdentifier(start)\n const endIdentifier: number = getDayIdentifier(end)\n const endOffset: number = start.hasTime ? 0 : 2359\n const endTimestampIdentifier: number = getTimestampIdentifier(end) + endOffset\n const allDay = !start.hasTime\n\n return { input, start, startIdentifier, startTimestampIdentifier, end, endIdentifier, endTimestampIdentifier, allDay, index, category }\n}\n\nexport function isEventOn (event: CalendarEventParsed, dayIdentifier: number): boolean {\n return dayIdentifier >= event.startIdentifier && dayIdentifier <= event.endIdentifier\n}\n\nexport function isEventHiddenOn (event: CalendarEventParsed, day: CalendarTimestamp): boolean {\n return event.end.time === '00:00' && event.end.date === day.date && event.start.date !== day.date\n}\n\nexport function isEventStart (event: CalendarEventParsed, day: CalendarTimestamp, dayIdentifier: number, firstWeekday: number): boolean {\n return dayIdentifier === event.startIdentifier || (firstWeekday === day.weekday && isEventOn(event, dayIdentifier))\n}\n\nexport function isEventOverlapping (event: CalendarEventParsed, startIdentifier: number, endIdentifier: number): boolean {\n return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier\n}\n"],"mappings":"AAAA;AACA;AAAA,SAGEA,cAAc,EACdC,gBAAgB,EAChBC,sBAAsB,EACtBC,WAAW,EACXC,aAAa;AAIf,OAAO,SAASC,UAAUA,CACxBC,KAAoB,EACpBC,KAAa,EACbC,aAAqB,EACrBC,WAAmB,EAGE;EAAA,IAFrBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACbG,QAAwB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEhC,MAAMI,UAAU,GAAGT,KAAK,CAACE,aAAa,CAAC;EACvC,MAAMQ,QAAQ,GAAGV,KAAK,CAACG,WAAW,CAAC;EACnC,MAAMQ,WAA8B,GAAGjB,cAAc,CAACe,UAAU,EAAE,IAAI,CAAC;EACvE,MAAMG,SAA4B,GAAIF,QAAQ,GAAGhB,cAAc,CAACgB,QAAQ,EAAE,IAAI,CAAC,GAAGC,WAAY;EAC9F,MAAME,KAAwB,GAAGhB,WAAW,CAACY,UAAU,CAAC,GACpDX,aAAa,CAACa,WAAW,EAAEP,KAAK,CAAC,GACjCO,WAAW;EACf,MAAMG,GAAsB,GAAGjB,WAAW,CAACa,QAAQ,CAAC,GAChDZ,aAAa,CAACc,SAAS,EAAER,KAAK,CAAC,GAC/BQ,SAAS;EACb,MAAMG,eAAuB,GAAGpB,gBAAgB,CAACkB,KAAK,CAAC;EACvD,MAAMG,wBAAgC,GAAGpB,sBAAsB,CAACiB,KAAK,CAAC;EACtE,MAAMI,aAAqB,GAAGtB,gBAAgB,CAACmB,GAAG,CAAC;EACnD,MAAMI,SAAiB,GAAGL,KAAK,CAACM,OAAO,GAAG,CAAC,GAAG,IAAI;EAClD,MAAMC,sBAA8B,GAAGxB,sBAAsB,CAACkB,GAAG,CAAC,GAAGI,SAAS;EAC9E,MAAMG,MAAM,GAAG,CAACR,KAAK,CAACM,OAAO;EAE7B,OAAO;IAAEnB,KAAK;IAAEa,KAAK;IAAEE,eAAe;IAAEC,wBAAwB;IAAEF,GAAG;IAAEG,aAAa;IAAEG,sBAAsB;IAAEC,MAAM;IAAEpB,KAAK;IAAEO;EAAS,CAAC;AACzI;AAEA,OAAO,SAASc,SAASA,CAAEC,KAA0B,EAAEC,aAAqB,EAAW;EACrF,OAAOA,aAAa,IAAID,KAAK,CAACR,eAAe,IAAIS,aAAa,IAAID,KAAK,CAACN,aAAa;AACvF;AAEA,OAAO,SAASQ,eAAeA,CAAEF,KAA0B,EAAEG,GAAsB,EAAW;EAC5F,OAAOH,KAAK,CAACT,GAAG,CAACa,IAAI,KAAK,OAAO,IAAIJ,KAAK,CAACT,GAAG,CAACc,IAAI,KAAKF,GAAG,CAACE,IAAI,IAAIL,KAAK,CAACV,KAAK,CAACe,IAAI,KAAKF,GAAG,CAACE,IAAI;AACnG;AAEA,OAAO,SAASC,YAAYA,CAAEN,KAA0B,EAAEG,GAAsB,EAAEF,aAAqB,EAAEM,YAAoB,EAAW;EACtI,OAAON,aAAa,KAAKD,KAAK,CAACR,eAAe,IAAKe,YAAY,KAAKJ,GAAG,CAACK,OAAO,IAAIT,SAAS,CAACC,KAAK,EAAEC,aAAa,CAAE;AACrH;AAEA,OAAO,SAASQ,kBAAkBA,CAAET,KAA0B,EAAER,eAAuB,EAAEE,aAAqB,EAAW;EACvH,OAAOF,eAAe,IAAIQ,KAAK,CAACN,aAAa,IAAIA,aAAa,IAAIM,KAAK,CAACR,eAAe;AACzF"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
|
|
4
|
-
export function parsedCategoryText(category, categoryText) {
|
|
5
|
-
return typeof categoryText === 'string' && typeof category === 'object' && category ? category[categoryText] : typeof categoryText === 'function' ? categoryText(category) : category;
|
|
6
|
-
}
|
|
7
|
-
export function getParsedCategories(categories, categoryText) {
|
|
8
|
-
if (typeof categories === 'string') return categories.split(/\s*,\s/);
|
|
9
|
-
if (Array.isArray(categories)) {
|
|
10
|
-
return categories.map(category => {
|
|
11
|
-
if (typeof category === 'string') return category;
|
|
12
|
-
const categoryName = typeof category.categoryName === 'string' ? category.categoryName : parsedCategoryText(category, categoryText);
|
|
13
|
-
return {
|
|
14
|
-
...category,
|
|
15
|
-
categoryName
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=parser.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.mjs","names":["parsedCategoryText","category","categoryText","getParsedCategories","categories","split","Array","isArray","map","categoryName"],"sources":["../../../../src/components/VCalendar/util/parser.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { CalendarCategory, CalendarCategoryTextFunction } from 'types'\n\nexport function parsedCategoryText (\n category: CalendarCategory,\n categoryText: string | CalendarCategoryTextFunction\n): string {\n return typeof categoryText === 'string' && typeof category === 'object' && category\n ? category[categoryText]\n : typeof categoryText === 'function'\n ? categoryText(category)\n : category\n}\n\nexport function getParsedCategories (\n categories: CalendarCategory | CalendarCategory[],\n categoryText: string | CalendarCategoryTextFunction\n): CalendarCategory[] {\n if (typeof categories === 'string') return categories.split(/\\s*,\\s/)\n if (Array.isArray(categories)) {\n return categories.map((category: CalendarCategory) => {\n if (typeof category === 'string') return category\n\n const categoryName = typeof category.categoryName === 'string'\n ? category.categoryName\n : parsedCategoryText(category, categoryText)\n return { ...category, categoryName }\n })\n }\n return []\n}\n"],"mappings":"AAAA;AACA;;AAIA,OAAO,SAASA,kBAAkBA,CAChCC,QAA0B,EAC1BC,YAAmD,EAC3C;EACR,OAAO,OAAOA,YAAY,KAAK,QAAQ,IAAI,OAAOD,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,GAC/EA,QAAQ,CAACC,YAAY,CAAC,GACtB,OAAOA,YAAY,KAAK,UAAU,GAChCA,YAAY,CAACD,QAAQ,CAAC,GACtBA,QAAQ;AAChB;AAEA,OAAO,SAASE,mBAAmBA,CACjCC,UAAiD,EACjDF,YAAmD,EAC/B;EACpB,IAAI,OAAOE,UAAU,KAAK,QAAQ,EAAE,OAAOA,UAAU,CAACC,KAAK,CAAC,QAAQ,CAAC;EACrE,IAAIC,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC7B,OAAOA,UAAU,CAACI,GAAG,CAAEP,QAA0B,IAAK;MACpD,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE,OAAOA,QAAQ;MAEjD,MAAMQ,YAAY,GAAG,OAAOR,QAAQ,CAACQ,YAAY,KAAK,QAAQ,GAC1DR,QAAQ,CAACQ,YAAY,GACrBT,kBAAkB,CAACC,QAAQ,EAAEC,YAAY,CAAC;MAC9C,OAAO;QAAE,GAAGD,QAAQ;QAAEQ;MAAa,CAAC;IACtC,CAAC,CAAC;EACJ;EACA,OAAO,EAAE;AACX"}
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
import { validateTimestamp, parseDate, DAYS_IN_WEEK, validateTime } from "./timestamp.mjs";
|
|
4
|
-
import { CalendarEventOverlapModes } from "../modes/index.mjs";
|
|
5
|
-
export default {
|
|
6
|
-
base: {
|
|
7
|
-
start: {
|
|
8
|
-
type: [String, Number, Date],
|
|
9
|
-
validate: validateTimestamp,
|
|
10
|
-
default: () => parseDate(new Date()).date
|
|
11
|
-
},
|
|
12
|
-
end: {
|
|
13
|
-
type: [String, Number, Date],
|
|
14
|
-
validate: validateTimestamp
|
|
15
|
-
},
|
|
16
|
-
weekdays: {
|
|
17
|
-
type: [Array, String],
|
|
18
|
-
default: () => [0, 1, 2, 3, 4, 5, 6],
|
|
19
|
-
validate: validateWeekdays
|
|
20
|
-
},
|
|
21
|
-
hideHeader: {
|
|
22
|
-
type: Boolean
|
|
23
|
-
},
|
|
24
|
-
shortWeekdays: {
|
|
25
|
-
type: Boolean,
|
|
26
|
-
default: true
|
|
27
|
-
},
|
|
28
|
-
weekdayFormat: {
|
|
29
|
-
type: Function,
|
|
30
|
-
default: null
|
|
31
|
-
},
|
|
32
|
-
dayFormat: {
|
|
33
|
-
type: Function,
|
|
34
|
-
default: null
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
intervals: {
|
|
38
|
-
maxDays: {
|
|
39
|
-
type: Number,
|
|
40
|
-
default: 7
|
|
41
|
-
},
|
|
42
|
-
shortIntervals: {
|
|
43
|
-
type: Boolean,
|
|
44
|
-
default: true
|
|
45
|
-
},
|
|
46
|
-
intervalHeight: {
|
|
47
|
-
type: [Number, String],
|
|
48
|
-
default: 48,
|
|
49
|
-
validate: validateNumber
|
|
50
|
-
},
|
|
51
|
-
intervalWidth: {
|
|
52
|
-
type: [Number, String],
|
|
53
|
-
default: 60,
|
|
54
|
-
validate: validateNumber
|
|
55
|
-
},
|
|
56
|
-
intervalMinutes: {
|
|
57
|
-
type: [Number, String],
|
|
58
|
-
default: 60,
|
|
59
|
-
validate: validateNumber
|
|
60
|
-
},
|
|
61
|
-
firstInterval: {
|
|
62
|
-
type: [Number, String],
|
|
63
|
-
default: 0,
|
|
64
|
-
validate: validateNumber
|
|
65
|
-
},
|
|
66
|
-
firstTime: {
|
|
67
|
-
type: [Number, String, Object],
|
|
68
|
-
validate: validateTime
|
|
69
|
-
},
|
|
70
|
-
intervalCount: {
|
|
71
|
-
type: [Number, String],
|
|
72
|
-
default: 24,
|
|
73
|
-
validate: validateNumber
|
|
74
|
-
},
|
|
75
|
-
intervalFormat: {
|
|
76
|
-
type: Function,
|
|
77
|
-
default: null
|
|
78
|
-
},
|
|
79
|
-
intervalStyle: {
|
|
80
|
-
type: Function,
|
|
81
|
-
default: null
|
|
82
|
-
},
|
|
83
|
-
showIntervalLabel: {
|
|
84
|
-
type: Function,
|
|
85
|
-
default: null
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
weeks: {
|
|
89
|
-
localeFirstDayOfYear: {
|
|
90
|
-
type: [String, Number],
|
|
91
|
-
default: 0
|
|
92
|
-
},
|
|
93
|
-
minWeeks: {
|
|
94
|
-
validate: validateNumber,
|
|
95
|
-
default: 1
|
|
96
|
-
},
|
|
97
|
-
shortMonths: {
|
|
98
|
-
type: Boolean,
|
|
99
|
-
default: true
|
|
100
|
-
},
|
|
101
|
-
showMonthOnFirst: {
|
|
102
|
-
type: Boolean,
|
|
103
|
-
default: true
|
|
104
|
-
},
|
|
105
|
-
showWeek: Boolean,
|
|
106
|
-
monthFormat: {
|
|
107
|
-
type: Function,
|
|
108
|
-
default: null
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
calendar: {
|
|
112
|
-
type: {
|
|
113
|
-
type: String,
|
|
114
|
-
default: 'month'
|
|
115
|
-
},
|
|
116
|
-
value: {
|
|
117
|
-
type: [String, Number, Date],
|
|
118
|
-
validate: validateTimestamp
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
category: {
|
|
122
|
-
categories: {
|
|
123
|
-
type: [Array, String],
|
|
124
|
-
default: ''
|
|
125
|
-
},
|
|
126
|
-
categoryText: {
|
|
127
|
-
type: [String, Function]
|
|
128
|
-
},
|
|
129
|
-
categoryHideDynamic: {
|
|
130
|
-
type: Boolean
|
|
131
|
-
},
|
|
132
|
-
categoryShowAll: {
|
|
133
|
-
type: Boolean
|
|
134
|
-
},
|
|
135
|
-
categoryForInvalid: {
|
|
136
|
-
type: String,
|
|
137
|
-
default: ''
|
|
138
|
-
},
|
|
139
|
-
categoryDays: {
|
|
140
|
-
type: [Number, String],
|
|
141
|
-
default: 1,
|
|
142
|
-
validate: x => isFinite(parseInt(x)) && parseInt(x) > 0
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
events: {
|
|
146
|
-
events: {
|
|
147
|
-
type: Array,
|
|
148
|
-
default: () => []
|
|
149
|
-
},
|
|
150
|
-
eventStart: {
|
|
151
|
-
type: String,
|
|
152
|
-
default: 'start'
|
|
153
|
-
},
|
|
154
|
-
eventEnd: {
|
|
155
|
-
type: String,
|
|
156
|
-
default: 'end'
|
|
157
|
-
},
|
|
158
|
-
eventTimed: {
|
|
159
|
-
type: [String, Function],
|
|
160
|
-
default: 'timed'
|
|
161
|
-
},
|
|
162
|
-
eventCategory: {
|
|
163
|
-
type: [String, Function],
|
|
164
|
-
default: 'category'
|
|
165
|
-
},
|
|
166
|
-
eventHeight: {
|
|
167
|
-
type: Number,
|
|
168
|
-
default: 20
|
|
169
|
-
},
|
|
170
|
-
eventColor: {
|
|
171
|
-
type: [String, Function],
|
|
172
|
-
default: 'primary'
|
|
173
|
-
},
|
|
174
|
-
eventTextColor: {
|
|
175
|
-
type: [String, Function],
|
|
176
|
-
default: 'white'
|
|
177
|
-
},
|
|
178
|
-
eventName: {
|
|
179
|
-
type: [String, Function],
|
|
180
|
-
default: 'name'
|
|
181
|
-
},
|
|
182
|
-
eventOverlapThreshold: {
|
|
183
|
-
type: [String, Number],
|
|
184
|
-
default: 60
|
|
185
|
-
},
|
|
186
|
-
eventOverlapMode: {
|
|
187
|
-
type: [String, Function],
|
|
188
|
-
default: 'stack',
|
|
189
|
-
validate: mode => mode in CalendarEventOverlapModes || typeof mode === 'function'
|
|
190
|
-
},
|
|
191
|
-
eventMore: {
|
|
192
|
-
type: Boolean,
|
|
193
|
-
default: true
|
|
194
|
-
},
|
|
195
|
-
eventMoreText: {
|
|
196
|
-
type: String,
|
|
197
|
-
default: '$vuetify.calendar.moreEvents'
|
|
198
|
-
},
|
|
199
|
-
eventRipple: {
|
|
200
|
-
type: [Boolean, Object],
|
|
201
|
-
default: null
|
|
202
|
-
},
|
|
203
|
-
eventMarginBottom: {
|
|
204
|
-
type: Number,
|
|
205
|
-
default: 1
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
export function validateNumber(input) {
|
|
210
|
-
return isFinite(parseInt(input));
|
|
211
|
-
}
|
|
212
|
-
export function validateWeekdays(input) {
|
|
213
|
-
if (typeof input === 'string') {
|
|
214
|
-
input = input.split(',');
|
|
215
|
-
}
|
|
216
|
-
if (Array.isArray(input)) {
|
|
217
|
-
const ints = input.map(x => parseInt(x));
|
|
218
|
-
if (ints.length > DAYS_IN_WEEK || ints.length === 0) {
|
|
219
|
-
return false;
|
|
220
|
-
}
|
|
221
|
-
const visited = {};
|
|
222
|
-
let wrapped = false;
|
|
223
|
-
for (let i = 0; i < ints.length; i++) {
|
|
224
|
-
const x = ints[i];
|
|
225
|
-
if (!isFinite(x) || x < 0 || x >= DAYS_IN_WEEK) {
|
|
226
|
-
return false;
|
|
227
|
-
}
|
|
228
|
-
if (i > 0) {
|
|
229
|
-
const d = x - ints[i - 1];
|
|
230
|
-
if (d < 0) {
|
|
231
|
-
if (wrapped) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
wrapped = true;
|
|
235
|
-
} else if (d === 0) {
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
if (visited[x]) {
|
|
240
|
-
return false;
|
|
241
|
-
}
|
|
242
|
-
visited[x] = true;
|
|
243
|
-
}
|
|
244
|
-
return true;
|
|
245
|
-
}
|
|
246
|
-
return false;
|
|
247
|
-
}
|
|
248
|
-
//# sourceMappingURL=props.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","names":["validateTimestamp","parseDate","DAYS_IN_WEEK","validateTime","CalendarEventOverlapModes","base","start","type","String","Number","Date","validate","default","date","end","weekdays","Array","validateWeekdays","hideHeader","Boolean","shortWeekdays","weekdayFormat","Function","dayFormat","intervals","maxDays","shortIntervals","intervalHeight","validateNumber","intervalWidth","intervalMinutes","firstInterval","firstTime","Object","intervalCount","intervalFormat","intervalStyle","showIntervalLabel","weeks","localeFirstDayOfYear","minWeeks","shortMonths","showMonthOnFirst","showWeek","monthFormat","calendar","value","category","categories","categoryText","categoryHideDynamic","categoryShowAll","categoryForInvalid","categoryDays","x","isFinite","parseInt","events","eventStart","eventEnd","eventTimed","eventCategory","eventHeight","eventColor","eventTextColor","eventName","eventOverlapThreshold","eventOverlapMode","mode","eventMore","eventMoreText","eventRipple","eventMarginBottom","input","split","isArray","ints","map","length","visited","wrapped","i","d"],"sources":["../../../../src/components/VCalendar/util/props.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n\nimport { validateTimestamp, parseDate, DAYS_IN_WEEK, validateTime } from './timestamp'\nimport { PropType } from 'vue'\nimport { CalendarEvent, CalendarFormatter, CalendarTimestamp, CalendarEventOverlapMode, CalendarEventNameFunction, CalendarEventColorFunction, CalendarEventCategoryFunction, CalendarEventTimedFunction, CalendarCategoryTextFunction, CalendarCategory } from 'vuetify/types'\nimport { CalendarEventOverlapModes } from '../modes'\nimport { PropValidator } from 'vue/types/options'\n\nexport default {\n base: {\n start: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n default: () => parseDate(new Date()).date,\n },\n end: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n },\n weekdays: {\n type: [Array, String] as PropType<readonly number[] | string>,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n validate: validateWeekdays,\n },\n hideHeader: {\n type: Boolean,\n },\n shortWeekdays: {\n type: Boolean,\n default: true,\n },\n weekdayFormat: {\n type: Function as PropType<CalendarFormatter>,\n default: null,\n },\n dayFormat: {\n type: Function as PropType<CalendarFormatter>,\n default: null,\n },\n },\n intervals: {\n maxDays: {\n type: Number,\n default: 7,\n },\n shortIntervals: {\n type: Boolean,\n default: true,\n },\n intervalHeight: {\n type: [Number, String],\n default: 48,\n validate: validateNumber,\n },\n intervalWidth: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber,\n },\n firstTime: {\n type: [Number, String, Object],\n validate: validateTime,\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber,\n },\n intervalFormat: {\n type: Function as PropType<CalendarFormatter>,\n default: null,\n },\n intervalStyle: {\n type: Function as PropType<(interval: CalendarTimestamp) => object>,\n default: null,\n },\n showIntervalLabel: {\n type: Function as PropType<(interval: CalendarTimestamp) => boolean>,\n default: null,\n },\n },\n weeks: {\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n minWeeks: {\n validate: validateNumber,\n default: 1,\n },\n shortMonths: {\n type: Boolean,\n default: true,\n },\n showMonthOnFirst: {\n type: Boolean,\n default: true,\n },\n showWeek: Boolean,\n monthFormat: {\n type: Function as PropType<CalendarFormatter>,\n default: null,\n },\n },\n calendar: {\n type: {\n type: String,\n default: 'month',\n },\n value: {\n type: [String, Number, Date] as PropType<string | number | Date>,\n validate: validateTimestamp,\n },\n },\n category: {\n categories: {\n type: [Array, String] as PropType<readonly CalendarCategory[] | string>,\n default: '',\n },\n categoryText: {\n type: [String, Function] as PropType<string | CalendarCategoryTextFunction>,\n },\n categoryHideDynamic: {\n type: Boolean,\n },\n categoryShowAll: {\n type: Boolean,\n },\n categoryForInvalid: {\n type: String,\n default: '',\n },\n categoryDays: {\n type: [Number, String],\n default: 1,\n validate: (x: any) => isFinite(parseInt(x)) && parseInt(x) > 0,\n },\n },\n events: {\n events: {\n type: Array,\n default: () => [],\n } as PropValidator<CalendarEvent[]>,\n eventStart: {\n type: String,\n default: 'start',\n },\n eventEnd: {\n type: String,\n default: 'end',\n },\n eventTimed: {\n type: [String, Function] as PropType<string | CalendarEventTimedFunction>,\n default: 'timed',\n },\n eventCategory: {\n type: [String, Function] as PropType<string | CalendarEventCategoryFunction>,\n default: 'category',\n },\n eventHeight: {\n type: Number,\n default: 20,\n },\n eventColor: {\n type: [String, Function] as PropType<string | CalendarEventColorFunction>,\n default: 'primary',\n },\n eventTextColor: {\n type: [String, Function] as PropType<string | CalendarEventColorFunction>,\n default: 'white',\n },\n eventName: {\n type: [String, Function] as PropType<string | CalendarEventNameFunction>,\n default: 'name',\n },\n eventOverlapThreshold: {\n type: [String, Number],\n default: 60,\n },\n eventOverlapMode: {\n type: [String, Function],\n default: 'stack',\n validate: (mode: any) => mode in CalendarEventOverlapModes || typeof mode === 'function',\n } as PropValidator<'stack' | 'column' | CalendarEventOverlapMode>,\n eventMore: {\n type: Boolean,\n default: true,\n },\n eventMoreText: {\n type: String,\n default: '$vuetify.calendar.moreEvents',\n },\n eventRipple: {\n type: [Boolean, Object],\n default: null,\n },\n eventMarginBottom: {\n type: Number,\n default: 1,\n },\n },\n}\n\nexport function validateNumber (input: any): boolean {\n return isFinite(parseInt(input))\n}\n\nexport function validateWeekdays (input: string | (number | string)[]): boolean {\n if (typeof input === 'string') {\n input = input.split(',')\n }\n\n if (Array.isArray(input)) {\n const ints = input.map(x => parseInt(x))\n\n if (ints.length > DAYS_IN_WEEK || ints.length === 0) {\n return false\n }\n\n const visited: Record<number, boolean> = {}\n let wrapped = false\n\n for (let i = 0; i < ints.length; i++) {\n const x = ints[i]\n\n if (!isFinite(x) || x < 0 || x >= DAYS_IN_WEEK) {\n return false\n }\n\n if (i > 0) {\n const d = x - ints[i - 1]\n if (d < 0) {\n if (wrapped) {\n return false\n }\n wrapped = true\n } else if (d === 0) {\n return false\n }\n }\n\n if (visited[x]) {\n return false\n }\n visited[x] = true\n }\n\n return true\n }\n\n return false\n}\n"],"mappings":"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"}
|