vuetify 3.4.8 → 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 +252 -0
- package/dist/json/importMap-labs.json +24 -0
- package/dist/json/importMap.json +120 -120
- package/dist/json/tags.json +93 -0
- package/dist/json/web-types.json +834 -1
- package/dist/vuetify-labs.css +2242 -1895
- package/dist/vuetify-labs.d.ts +1618 -1
- package/dist/vuetify-labs.esm.js +608 -11
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +608 -11
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +781 -781
- package/dist/vuetify.d.ts +73 -40
- package/dist/vuetify.esm.js +117 -11
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +117 -11
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +132 -114
- 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/VDatePicker/VDatePicker.mjs +4 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/composables/calendar.mjs +18 -3
- package/lib/composables/calendar.mjs.map +1 -1
- 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 +73 -40
- 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 +2 -1
- 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,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":"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"}
|
|
@@ -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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"}
|