@chenzy-design/core 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-chat-dialogue.d.ts +300 -0
- package/dist/ai-chat-dialogue.d.ts.map +1 -0
- package/dist/ai-chat-dialogue.js +699 -0
- package/dist/ai-chat-dialogue.js.map +1 -0
- package/dist/ai-chat-dialogue.test.d.ts +2 -0
- package/dist/ai-chat-dialogue.test.d.ts.map +1 -0
- package/dist/ai-chat-dialogue.test.js +338 -0
- package/dist/ai-chat-dialogue.test.js.map +1 -0
- package/dist/ai-chat-input.d.ts +191 -0
- package/dist/ai-chat-input.d.ts.map +1 -0
- package/dist/ai-chat-input.js +274 -0
- package/dist/ai-chat-input.js.map +1 -0
- package/dist/ai-chat-input.test.d.ts +2 -0
- package/dist/ai-chat-input.test.d.ts.map +1 -0
- package/dist/ai-chat-input.test.js +339 -0
- package/dist/ai-chat-input.test.js.map +1 -0
- package/dist/audio-player.d.ts +154 -0
- package/dist/audio-player.d.ts.map +1 -0
- package/dist/audio-player.js +254 -0
- package/dist/audio-player.js.map +1 -0
- package/dist/audio-player.test.d.ts +2 -0
- package/dist/audio-player.test.d.ts.map +1 -0
- package/dist/audio-player.test.js +275 -0
- package/dist/audio-player.test.js.map +1 -0
- package/dist/back-top.d.ts +4 -1
- package/dist/back-top.d.ts.map +1 -1
- package/dist/back-top.js +5 -2
- package/dist/back-top.js.map +1 -1
- package/dist/back-top.test.js +3 -2
- package/dist/back-top.test.js.map +1 -1
- package/dist/calendar.d.ts +132 -44
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +413 -70
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.test.js +160 -76
- package/dist/calendar.test.js.map +1 -1
- package/dist/chat.d.ts +172 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +210 -0
- package/dist/chat.js.map +1 -0
- package/dist/chat.test.d.ts +2 -0
- package/dist/chat.test.d.ts.map +1 -0
- package/dist/chat.test.js +181 -0
- package/dist/chat.test.js.map +1 -0
- package/dist/code-highlight.d.ts +30 -0
- package/dist/code-highlight.d.ts.map +1 -0
- package/dist/code-highlight.js +37 -0
- package/dist/code-highlight.js.map +1 -0
- package/dist/code-highlight.test.d.ts +2 -0
- package/dist/code-highlight.test.d.ts.map +1 -0
- package/dist/code-highlight.test.js +36 -0
- package/dist/code-highlight.test.js.map +1 -0
- package/dist/collapsible.d.ts +41 -0
- package/dist/collapsible.d.ts.map +1 -0
- package/dist/collapsible.js +33 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/collapsible.test.d.ts +2 -0
- package/dist/collapsible.test.d.ts.map +1 -0
- package/dist/collapsible.test.js +57 -0
- package/dist/collapsible.test.js.map +1 -0
- package/dist/color-value.d.ts +60 -0
- package/dist/color-value.d.ts.map +1 -0
- package/dist/color-value.js +165 -0
- package/dist/color-value.js.map +1 -0
- package/dist/color-value.test.d.ts +2 -0
- package/dist/color-value.test.d.ts.map +1 -0
- package/dist/color-value.test.js +104 -0
- package/dist/color-value.test.js.map +1 -0
- package/dist/config-provider.d.ts +76 -37
- package/dist/config-provider.d.ts.map +1 -1
- package/dist/config-provider.js +107 -32
- package/dist/config-provider.js.map +1 -1
- package/dist/config-provider.test.js +123 -60
- package/dist/config-provider.test.js.map +1 -1
- package/dist/cropper.d.ts +164 -0
- package/dist/cropper.d.ts.map +1 -0
- package/dist/cropper.js +841 -0
- package/dist/cropper.js.map +1 -0
- package/dist/cropper.test.d.ts +2 -0
- package/dist/cropper.test.d.ts.map +1 -0
- package/dist/cropper.test.js +259 -0
- package/dist/cropper.test.js.map +1 -0
- package/dist/drag-move.d.ts +119 -0
- package/dist/drag-move.d.ts.map +1 -0
- package/dist/drag-move.js +237 -0
- package/dist/drag-move.js.map +1 -0
- package/dist/drag-move.test.d.ts +2 -0
- package/dist/drag-move.test.d.ts.map +1 -0
- package/dist/drag-move.test.js +304 -0
- package/dist/drag-move.test.js.map +1 -0
- package/dist/editable.d.ts +24 -4
- package/dist/editable.d.ts.map +1 -1
- package/dist/editable.js +18 -0
- package/dist/editable.js.map +1 -1
- package/dist/editable.test.js +55 -2
- package/dist/editable.test.js.map +1 -1
- package/dist/ellipsis.d.ts +13 -0
- package/dist/ellipsis.d.ts.map +1 -1
- package/dist/ellipsis.js +36 -0
- package/dist/ellipsis.js.map +1 -1
- package/dist/ellipsis.test.js +37 -1
- package/dist/ellipsis.test.js.map +1 -1
- package/dist/form-path.d.ts +19 -0
- package/dist/form-path.d.ts.map +1 -0
- package/dist/form-path.js +97 -0
- package/dist/form-path.js.map +1 -0
- package/dist/form-path.test.d.ts +2 -0
- package/dist/form-path.test.d.ts.map +1 -0
- package/dist/form-path.test.js +57 -0
- package/dist/form-path.test.js.map +1 -0
- package/dist/form-validate.d.ts +13 -0
- package/dist/form-validate.d.ts.map +1 -0
- package/dist/form-validate.js +204 -0
- package/dist/form-validate.js.map +1 -0
- package/dist/form.d.ts +91 -18
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +170 -115
- package/dist/form.js.map +1 -1
- package/dist/form.test.js +349 -76
- package/dist/form.test.js.map +1 -1
- package/dist/highlight.d.ts +42 -32
- package/dist/highlight.d.ts.map +1 -1
- package/dist/highlight.js +67 -41
- package/dist/highlight.js.map +1 -1
- package/dist/highlight.test.js +73 -32
- package/dist/highlight.test.js.map +1 -1
- package/dist/hotkeys.d.ts +151 -0
- package/dist/hotkeys.d.ts.map +1 -0
- package/dist/hotkeys.js +188 -0
- package/dist/hotkeys.js.map +1 -0
- package/dist/hotkeys.test.d.ts +2 -0
- package/dist/hotkeys.test.d.ts.map +1 -0
- package/dist/hotkeys.test.js +170 -0
- package/dist/hotkeys.test.js.map +1 -0
- package/dist/index.d.ts +33 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -13
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +34 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +54 -0
- package/dist/input.js.map +1 -0
- package/dist/input.test.d.ts +2 -0
- package/dist/input.test.d.ts.map +1 -0
- package/dist/input.test.js +56 -0
- package/dist/input.test.js.map +1 -0
- package/dist/markdown-render.d.ts +49 -0
- package/dist/markdown-render.d.ts.map +1 -0
- package/dist/markdown-render.js +61 -0
- package/dist/markdown-render.js.map +1 -0
- package/dist/markdown-render.test.d.ts +2 -0
- package/dist/markdown-render.test.d.ts.map +1 -0
- package/dist/markdown-render.test.js +106 -0
- package/dist/markdown-render.test.js.map +1 -0
- package/dist/notification.d.ts +40 -31
- package/dist/notification.d.ts.map +1 -1
- package/dist/notification.js +86 -70
- package/dist/notification.js.map +1 -1
- package/dist/notification.test.js +62 -39
- package/dist/notification.test.js.map +1 -1
- package/dist/numeral.d.ts +32 -0
- package/dist/numeral.d.ts.map +1 -0
- package/dist/numeral.js +67 -0
- package/dist/numeral.js.map +1 -0
- package/dist/numeral.test.d.ts +2 -0
- package/dist/numeral.test.d.ts.map +1 -0
- package/dist/numeral.test.js +59 -0
- package/dist/numeral.test.js.map +1 -0
- package/dist/overflow-list.d.ts +9 -40
- package/dist/overflow-list.d.ts.map +1 -1
- package/dist/overflow-list.js +9 -70
- package/dist/overflow-list.js.map +1 -1
- package/dist/overflow-list.test.js +1 -122
- package/dist/overflow-list.test.js.map +1 -1
- package/dist/pagination.d.ts +17 -0
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +48 -0
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.test.js +40 -1
- package/dist/pagination.test.js.map +1 -1
- package/dist/pincode.d.ts +79 -0
- package/dist/pincode.d.ts.map +1 -0
- package/dist/pincode.js +119 -0
- package/dist/pincode.js.map +1 -0
- package/dist/pincode.test.d.ts +2 -0
- package/dist/pincode.test.d.ts.map +1 -0
- package/dist/pincode.test.js +151 -0
- package/dist/pincode.test.js.map +1 -0
- package/dist/progress.d.ts +32 -30
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +257 -64
- package/dist/progress.js.map +1 -1
- package/dist/progress.test.js +50 -47
- package/dist/progress.test.js.map +1 -1
- package/dist/resizable.d.ts +200 -0
- package/dist/resizable.d.ts.map +1 -0
- package/dist/resizable.js +329 -0
- package/dist/resizable.js.map +1 -0
- package/dist/resizable.test.d.ts +2 -0
- package/dist/resizable.test.d.ts.map +1 -0
- package/dist/resizable.test.js +302 -0
- package/dist/resizable.test.js.map +1 -0
- package/dist/scroll-list.d.ts +69 -62
- package/dist/scroll-list.d.ts.map +1 -1
- package/dist/scroll-list.js +103 -144
- package/dist/scroll-list.js.map +1 -1
- package/dist/scroll-list.test.js +100 -110
- package/dist/scroll-list.test.js.map +1 -1
- package/dist/sidebar.d.ts +46 -0
- package/dist/sidebar.d.ts.map +1 -0
- package/dist/sidebar.js +65 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/sidebar.test.d.ts +2 -0
- package/dist/sidebar.test.d.ts.map +1 -0
- package/dist/sidebar.test.js +88 -0
- package/dist/sidebar.test.js.map +1 -0
- package/dist/spin.d.ts +5 -5
- package/dist/spin.d.ts.map +1 -1
- package/dist/spin.js +13 -39
- package/dist/spin.js.map +1 -1
- package/dist/spin.test.js +2 -26
- package/dist/spin.test.js.map +1 -1
- package/dist/toast.d.ts +33 -30
- package/dist/toast.d.ts.map +1 -1
- package/dist/toast.js +77 -72
- package/dist/toast.js.map +1 -1
- package/dist/toast.test.js +63 -37
- package/dist/toast.test.js.map +1 -1
- package/dist/tree.d.ts +22 -5
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +61 -9
- package/dist/tree.js.map +1 -1
- package/dist/tree.test.js +72 -1
- package/dist/tree.test.js.map +1 -1
- package/dist/user-guide.d.ts +73 -0
- package/dist/user-guide.d.ts.map +1 -0
- package/dist/user-guide.js +95 -0
- package/dist/user-guide.js.map +1 -0
- package/dist/user-guide.test.d.ts +2 -0
- package/dist/user-guide.test.d.ts.map +1 -0
- package/dist/user-guide.test.js +109 -0
- package/dist/user-guide.test.js.map +1 -0
- package/dist/video-player.d.ts +196 -0
- package/dist/video-player.d.ts.map +1 -0
- package/dist/video-player.js +461 -0
- package/dist/video-player.js.map +1 -0
- package/dist/video-player.test.d.ts +2 -0
- package/dist/video-player.test.d.ts.map +1 -0
- package/dist/video-player.test.js +435 -0
- package/dist/video-player.test.js.map +1 -0
- package/package.json +17 -1
- package/dist/banner.d.ts +0 -19
- package/dist/banner.d.ts.map +0 -1
- package/dist/banner.js +0 -20
- package/dist/banner.js.map +0 -1
- package/dist/banner.test.d.ts +0 -2
- package/dist/banner.test.d.ts.map +0 -1
- package/dist/banner.test.js +0 -29
- package/dist/banner.test.js.map +0 -1
- package/dist/breakpoints.d.ts +0 -30
- package/dist/breakpoints.d.ts.map +0 -1
- package/dist/breakpoints.js +0 -45
- package/dist/breakpoints.js.map +0 -1
- package/dist/breakpoints.test.d.ts +0 -2
- package/dist/breakpoints.test.d.ts.map +0 -1
- package/dist/breakpoints.test.js +0 -46
- package/dist/breakpoints.test.js.map +0 -1
- package/dist/lottie-icon.d.ts +0 -88
- package/dist/lottie-icon.d.ts.map +0 -1
- package/dist/lottie-icon.js +0 -84
- package/dist/lottie-icon.js.map +0 -1
- package/dist/lottie-icon.test.d.ts +0 -2
- package/dist/lottie-icon.test.d.ts.map +0 -1
- package/dist/lottie-icon.test.js +0 -88
- package/dist/lottie-icon.test.js.map +0 -1
- package/dist/sider.d.ts +0 -26
- package/dist/sider.d.ts.map +0 -1
- package/dist/sider.js +0 -55
- package/dist/sider.js.map +0 -1
- package/dist/sider.test.d.ts +0 -2
- package/dist/sider.test.d.ts.map +0 -1
- package/dist/sider.test.js +0 -29
- package/dist/sider.test.js.map +0 -1
package/dist/calendar.js
CHANGED
|
@@ -1,94 +1,437 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Framework-agnostic Calendar event algorithms — aligned to Semi Design's
|
|
3
|
+
* `@douyinfe/semi-foundation/calendar/eventUtil` + `foundation`.
|
|
4
|
+
*
|
|
5
|
+
* Four view modes: day / week / month / range. Pure functions only; no DOM,
|
|
6
|
+
* no framework deps. The render layer (Calendar.svelte) supplies `children`
|
|
7
|
+
* for each event and turns the numeric positions here into inline styles.
|
|
8
|
+
*
|
|
9
|
+
* Semi event model: an EventObject carries a `key` (required, unique) and an
|
|
10
|
+
* optional `start` / `end` / `allDay`. Content is the render layer's business
|
|
11
|
+
* (Semi: `children`); this module never touches it beyond passing it through.
|
|
5
12
|
*/
|
|
6
13
|
import { isSameDay, startOfDay } from './date.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
// ============================ low-level date algebra ============================
|
|
15
|
+
// Calendar-only date helpers (Semi uses date-fns). Kept local so DatePicker's
|
|
16
|
+
// shared date.ts stays untouched. All local-time, pure.
|
|
17
|
+
const MS_DAY = 86_400_000;
|
|
18
|
+
export function addDaysLocal(d, n) {
|
|
19
|
+
const r = new Date(d);
|
|
20
|
+
r.setDate(r.getDate() + n);
|
|
21
|
+
return r;
|
|
22
|
+
}
|
|
23
|
+
export function addHoursLocal(d, n) {
|
|
24
|
+
const r = new Date(d);
|
|
25
|
+
r.setHours(r.getHours() + n);
|
|
26
|
+
return r;
|
|
27
|
+
}
|
|
28
|
+
export function endOfDay(d) {
|
|
29
|
+
const r = new Date(d);
|
|
30
|
+
r.setHours(23, 59, 59, 999);
|
|
31
|
+
return r;
|
|
32
|
+
}
|
|
33
|
+
export function startOfMonth(d) {
|
|
34
|
+
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
35
|
+
}
|
|
36
|
+
export function endOfMonth(d) {
|
|
37
|
+
return new Date(d.getFullYear(), d.getMonth() + 1, 0, 23, 59, 59, 999);
|
|
38
|
+
}
|
|
39
|
+
export function startOfWeek(d, weekStartsOn = 0) {
|
|
40
|
+
const day = d.getDay();
|
|
41
|
+
const diff = (day - weekStartsOn + 7) % 7;
|
|
42
|
+
return startOfDay(addDaysLocal(d, -diff));
|
|
43
|
+
}
|
|
44
|
+
export function endOfWeek(d, weekStartsOn = 0) {
|
|
45
|
+
return endOfDay(addDaysLocal(startOfWeek(d, weekStartsOn), 6));
|
|
46
|
+
}
|
|
47
|
+
export function isSameMonth(a, b) {
|
|
48
|
+
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
49
|
+
}
|
|
50
|
+
export function isSameWeek(a, b, weekStartsOn = 0) {
|
|
51
|
+
return isSameDay(startOfWeek(a, weekStartsOn), startOfWeek(b, weekStartsOn));
|
|
52
|
+
}
|
|
53
|
+
/** whole calendar days b - a (positive when b is later) */
|
|
54
|
+
export function differenceInCalendarDays(b, a) {
|
|
55
|
+
return Math.round((startOfDay(b).getTime() - startOfDay(a).getTime()) / MS_DAY);
|
|
56
|
+
}
|
|
57
|
+
export function isBefore(a, b) {
|
|
58
|
+
return a.getTime() < b.getTime();
|
|
59
|
+
}
|
|
60
|
+
export function isAfter(a, b) {
|
|
61
|
+
return a.getTime() > b.getTime();
|
|
62
|
+
}
|
|
63
|
+
export function isWeekend(d) {
|
|
64
|
+
const day = d.getDay();
|
|
65
|
+
return day === 0 || day === 6;
|
|
66
|
+
}
|
|
67
|
+
/** ISO-ish week-of-month index (1-based) for a date, given weekStartsOn */
|
|
68
|
+
export function getWeekOfMonth(date, weekStartsOn = 0) {
|
|
69
|
+
const firstOfMonth = startOfMonth(date);
|
|
70
|
+
const firstWeekStart = startOfWeek(firstOfMonth, weekStartsOn);
|
|
71
|
+
const diff = differenceInCalendarDays(startOfWeek(date, weekStartsOn), firstWeekStart);
|
|
72
|
+
return Math.floor(diff / 7) + 1;
|
|
73
|
+
}
|
|
74
|
+
/** number of week rows the month spans, given weekStartsOn */
|
|
75
|
+
export function getWeeksInMonth(date, weekStartsOn = 0) {
|
|
76
|
+
const first = startOfMonth(date);
|
|
77
|
+
const last = endOfMonth(date);
|
|
78
|
+
const firstWeekStart = startOfWeek(first, weekStartsOn);
|
|
79
|
+
const lastWeekStart = startOfWeek(last, weekStartsOn);
|
|
80
|
+
return Math.round(differenceInCalendarDays(lastWeekStart, firstWeekStart) / 7) + 1;
|
|
81
|
+
}
|
|
82
|
+
export const round = (value) => Math.round(value * 1000) / 1000;
|
|
83
|
+
/** fraction of the day [0,1) at which `value`'s clock time falls (Semi getPos) */
|
|
84
|
+
export function getPos(value) {
|
|
85
|
+
const currSec = (value.getHours() * 60 + value.getMinutes()) * 60 + value.getSeconds();
|
|
86
|
+
return currSec / (24 * 60 * 60);
|
|
87
|
+
}
|
|
88
|
+
const isAllDayEvent = (e) => 'allDay' in e && !!e.allDay;
|
|
89
|
+
const sortByStart = (a, b) => (a.start?.getTime() ?? 0) - (b.start?.getTime() ?? 0);
|
|
90
|
+
function copyEvent(event, date, start, end, allDay = false) {
|
|
91
|
+
return { ...event, date, ...(start ? { start } : {}), ...(end ? { end } : {}), allDay };
|
|
13
92
|
}
|
|
14
93
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
94
|
+
* Normalize a single event: if it has no start, default start = end - 1h (or
|
|
95
|
+
* start-of-day if that would cross a day boundary); symmetric for missing end.
|
|
96
|
+
* (Semi amendEvent)
|
|
17
97
|
*/
|
|
18
|
-
export function
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
98
|
+
export function amendEvent(event) {
|
|
99
|
+
const { start, end } = event;
|
|
100
|
+
if (!start && !end)
|
|
101
|
+
return undefined;
|
|
102
|
+
const e = { ...event };
|
|
103
|
+
if (!start && end) {
|
|
104
|
+
e.start = isSameDay(end, addHoursLocal(end, -1)) ? addHoursLocal(end, -1) : startOfDay(end);
|
|
105
|
+
}
|
|
106
|
+
else if (start) {
|
|
107
|
+
e.end = isSameDay(start, addHoursLocal(start, 1)) ? addHoursLocal(start, 1) : endOfDay(start);
|
|
108
|
+
}
|
|
109
|
+
return e;
|
|
110
|
+
}
|
|
111
|
+
/** split a spanned all-day event into one copy per covered day (Semi parseAllDayEvent) */
|
|
112
|
+
export function parseAllDayEvent(event, allDay = true, currDate) {
|
|
113
|
+
const res = [];
|
|
114
|
+
const { start, end } = event;
|
|
115
|
+
if (start && end) {
|
|
116
|
+
const diff = differenceInCalendarDays(end, start);
|
|
117
|
+
for (let day = 0; day <= diff; day += 1) {
|
|
118
|
+
res.push(copyEvent(event, addDaysLocal(start, day), undefined, undefined, allDay));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const date = start ?? end ?? currDate ?? new Date();
|
|
123
|
+
res.push(copyEvent(event, startOfDay(date), undefined, undefined, allDay));
|
|
124
|
+
}
|
|
125
|
+
return res;
|
|
34
126
|
}
|
|
35
127
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
128
|
+
* Split an event into per-day copies (Semi parseEvent). Same-day timed events
|
|
129
|
+
* stay whole; timed events spanning < 24h split into a head (to end-of-day) and
|
|
130
|
+
* a tail (start-of-next-day); longer/all-day span into daily all-day copies.
|
|
38
131
|
*/
|
|
39
|
-
export function
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
132
|
+
export function parseEvent(event) {
|
|
133
|
+
const e = { ...event };
|
|
134
|
+
const { start, end } = e;
|
|
135
|
+
let res = [];
|
|
136
|
+
if (isAllDayEvent(e))
|
|
137
|
+
return parseAllDayEvent(e);
|
|
138
|
+
if (start && end) {
|
|
139
|
+
const s = isBefore(start, end) ? start : end;
|
|
140
|
+
const en = isBefore(start, end) ? end : start;
|
|
141
|
+
e.start = s;
|
|
142
|
+
e.end = en;
|
|
143
|
+
if (isSameDay(s, en)) {
|
|
144
|
+
res.push(copyEvent(e, startOfDay(s)));
|
|
145
|
+
}
|
|
146
|
+
else if (Math.abs(en.getTime() - s.getTime()) < MS_DAY) {
|
|
147
|
+
res.push(copyEvent(e, startOfDay(s), undefined, endOfDay(s)));
|
|
148
|
+
res.push(copyEvent(e, startOfDay(en), startOfDay(en)));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
res = res.concat(parseAllDayEvent(e));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
const amend = amendEvent(e);
|
|
156
|
+
if (amend)
|
|
157
|
+
res.push(copyEvent(amend, startOfDay(amend.start)));
|
|
158
|
+
}
|
|
159
|
+
return res;
|
|
160
|
+
}
|
|
161
|
+
/** split all events into all-day vs timed buckets (Semi _parseEvents) */
|
|
162
|
+
export function parseEvents(events) {
|
|
163
|
+
const allDay = [];
|
|
164
|
+
const day = [];
|
|
165
|
+
for (const event of events) {
|
|
166
|
+
for (const item of parseEvent(event)) {
|
|
167
|
+
if (item.allDay)
|
|
168
|
+
allDay.push(item);
|
|
169
|
+
else
|
|
170
|
+
day.push(item);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return { allDay, day };
|
|
174
|
+
}
|
|
175
|
+
/** group dated events into a Map keyed by start-of-day string (Semi convertEventsArrToMap) */
|
|
176
|
+
export function convertEventsArrToMap(arr, key, normalize) {
|
|
177
|
+
const res = new Map();
|
|
178
|
+
for (const item of arr) {
|
|
179
|
+
const val = item[key] ?? item.date;
|
|
180
|
+
const k = (normalize ? normalize(val) : val).toString();
|
|
181
|
+
const bucket = res.get(k);
|
|
182
|
+
if (bucket)
|
|
183
|
+
bucket.push(item);
|
|
184
|
+
else
|
|
185
|
+
res.set(k, [item]);
|
|
186
|
+
}
|
|
187
|
+
return res;
|
|
188
|
+
}
|
|
189
|
+
/** compute a timed event's startPos/endPos on its day (Semi renderDailyEvent) */
|
|
190
|
+
export function renderDailyEvent(event) {
|
|
191
|
+
let { start, end } = event;
|
|
192
|
+
let startPos;
|
|
193
|
+
let endPos;
|
|
194
|
+
if (isAllDayEvent(event)) {
|
|
195
|
+
startPos = 0;
|
|
196
|
+
endPos = 0;
|
|
43
197
|
}
|
|
44
|
-
|
|
198
|
+
else if (!start || !end) {
|
|
199
|
+
const amend = amendEvent(event);
|
|
200
|
+
endPos = getPos(amend.end);
|
|
201
|
+
startPos = getPos(amend.start);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
if (!isBefore(start, end))
|
|
205
|
+
[start, end] = [end, start];
|
|
206
|
+
startPos = getPos(start);
|
|
207
|
+
endPos = getPos(end);
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
key: event.key,
|
|
211
|
+
startPos: round(startPos),
|
|
212
|
+
endPos: round(endPos),
|
|
213
|
+
children: event.children,
|
|
214
|
+
allDay: !!event.allDay,
|
|
215
|
+
};
|
|
45
216
|
}
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
217
|
+
/**
|
|
218
|
+
* Timed events for one calendar day, positioned and offset for overlaps
|
|
219
|
+
* (Semi getParseDailyEvents). Events sharing an identical [startPos,endPos]
|
|
220
|
+
* are laid out side-by-side via the `left` percentage.
|
|
221
|
+
*/
|
|
222
|
+
export function getDailyEvents(events, date) {
|
|
223
|
+
const key = startOfDay(date).toString();
|
|
224
|
+
const parsed = parseEvents(events);
|
|
225
|
+
const allDayMap = convertEventsArrToMap(parsed.allDay, 'date', startOfDay);
|
|
226
|
+
const dayMap = convertEventsArrToMap(parsed.day, 'date', null);
|
|
227
|
+
const allDay = allDayMap.get(key) ?? [];
|
|
228
|
+
const dayRaw = dayMap.get(key) ?? [];
|
|
229
|
+
const positioned = dayRaw.map(renderDailyEvent);
|
|
230
|
+
// group by identical position span
|
|
231
|
+
const spanGroups = new Map();
|
|
232
|
+
for (const item of positioned) {
|
|
233
|
+
const gk = `${item.startPos}-${item.endPos}`;
|
|
234
|
+
spanGroups.set(gk, (spanGroups.get(gk) ?? 0) + 1);
|
|
235
|
+
}
|
|
236
|
+
const countMap = new Map();
|
|
237
|
+
const day = positioned.map((item) => {
|
|
238
|
+
const gk = `${item.startPos}-${item.endPos}`;
|
|
239
|
+
const prev = countMap.get(gk);
|
|
240
|
+
const cur = prev === undefined ? 0 : prev + 1;
|
|
241
|
+
countMap.set(gk, cur);
|
|
242
|
+
const groupSize = spanGroups.get(gk) ?? 1;
|
|
243
|
+
const left = cur !== 0 ? `${(cur / groupSize) * 100}%` : 0;
|
|
244
|
+
return { ...item, left };
|
|
245
|
+
});
|
|
246
|
+
return { day, allDay };
|
|
49
247
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
248
|
+
const isDateInRange = (date, start, end) => date.getTime() < end.getTime() && date.getTime() >= start.getTime();
|
|
249
|
+
const sortDateStr = (a, b) => isBefore(new Date(a), new Date(b)) ? -1 : 1;
|
|
250
|
+
/** filter a day-keyed event map to those overlapping [start,end) (Semi filterEvents) */
|
|
251
|
+
function filterEvents(events, start, end) {
|
|
252
|
+
const res = new Map();
|
|
253
|
+
for (const day of events.keys()) {
|
|
254
|
+
const item = events.get(day);
|
|
255
|
+
const date = new Date(day);
|
|
256
|
+
if (isDateInRange(date, start, end)) {
|
|
257
|
+
res.set(day, res.has(day) ? [...res.get(day), ...item] : item);
|
|
258
|
+
}
|
|
259
|
+
else if (isBefore(end, date)) {
|
|
260
|
+
// beyond range: drop
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
const filtered = item.filter((i) => !i.end || !isBefore(i.end, start));
|
|
264
|
+
const k = start.toString();
|
|
265
|
+
res.set(k, res.has(k) ? [...res.get(k), ...filtered] : item);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return res;
|
|
53
269
|
}
|
|
54
270
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* is clamped into [fromHour, toHour]. Everything else covering the day (all-day
|
|
59
|
-
* flagged, or multi-day events whose start falls on another day) goes to
|
|
60
|
-
* `allDay`. Pure: no DOM, no mutation of inputs.
|
|
271
|
+
* Arrange all-day/spanned events across a [rangeStart,rangeEnd) row, stacking
|
|
272
|
+
* overlaps into rows and computing leftPos/width/topInd (Semi parseRangeAllDayEvent).
|
|
273
|
+
* `parsed` is a working matrix [row][col]; returns it mutated.
|
|
61
274
|
*/
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
275
|
+
function parseRangeAllDayEvent(event, startDate, rangeStart, rangeEnd, parsed) {
|
|
276
|
+
const dateRangeLen = differenceInCalendarDays(rangeEnd, rangeStart);
|
|
277
|
+
event
|
|
278
|
+
.slice()
|
|
279
|
+
.sort((a, b) => sortByStart(a, b))
|
|
280
|
+
.forEach((item) => {
|
|
281
|
+
const { end } = item;
|
|
282
|
+
const j = differenceInCalendarDays(startDate, rangeStart);
|
|
283
|
+
let i = 0;
|
|
284
|
+
while (parsed[i] && parsed[i][j])
|
|
285
|
+
i++;
|
|
286
|
+
let dateLength;
|
|
287
|
+
if (!end) {
|
|
288
|
+
dateLength = 0;
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
dateLength = isDateInRange(end, rangeStart, rangeEnd)
|
|
292
|
+
? differenceInCalendarDays(end, startDate)
|
|
293
|
+
: differenceInCalendarDays(rangeEnd, startDate);
|
|
294
|
+
}
|
|
295
|
+
const info = {
|
|
296
|
+
key: item.key,
|
|
297
|
+
children: item.children,
|
|
298
|
+
leftPos: round(j / dateRangeLen),
|
|
299
|
+
width: Math.min(1 - round(j / dateRangeLen), round(((dateLength + 1) * 1) / dateRangeLen)),
|
|
300
|
+
topInd: i,
|
|
301
|
+
};
|
|
302
|
+
for (let dist = 0; dist <= dateLength; dist += 1) {
|
|
303
|
+
if (!parsed[i])
|
|
304
|
+
parsed[i] = [];
|
|
305
|
+
parsed[i][j + dist] = dist > 0 ? item : info;
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
return parsed;
|
|
309
|
+
}
|
|
310
|
+
/** pull the positioned span events out of the working matrix */
|
|
311
|
+
function collectSpanEvents(parsed) {
|
|
312
|
+
const res = [];
|
|
313
|
+
for (const row of parsed) {
|
|
314
|
+
if (!row)
|
|
71
315
|
continue;
|
|
316
|
+
for (const item of row) {
|
|
317
|
+
if (item && 'leftPos' in item)
|
|
318
|
+
res.push(item);
|
|
72
319
|
}
|
|
73
|
-
const hour = Math.max(lo, Math.min(hi, e.start.getHours()));
|
|
74
|
-
timed.push({ hour, event: e });
|
|
75
320
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
321
|
+
return res;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Lay out all-day/spanned events across a date range (week or multi-day view).
|
|
325
|
+
* `rangeStart` inclusive, `rangeEnd` exclusive (Semi's left-closed-right-open).
|
|
326
|
+
*/
|
|
327
|
+
export function parseSpanEvents(allDayEvents, rangeStart, rangeEnd) {
|
|
328
|
+
const map = convertEventsArrToMap(allDayEvents, 'start', startOfDay);
|
|
329
|
+
const filtered = filterEvents(map, rangeStart, rangeEnd);
|
|
330
|
+
let parsed = [[]];
|
|
331
|
+
[...filtered.keys()].sort(sortDateStr).forEach((k) => {
|
|
332
|
+
const startDate = new Date(k);
|
|
333
|
+
const curr = filtered.get(k).filter((e) => isSameDay(e.date, startDate));
|
|
334
|
+
parsed = parseRangeAllDayEvent(curr, startDate, rangeStart, rangeEnd, parsed);
|
|
335
|
+
});
|
|
336
|
+
return collectSpanEvents(parsed);
|
|
337
|
+
}
|
|
338
|
+
/** week-scoped span layout (Semi parseWeeklyAllDayEvents) */
|
|
339
|
+
export function parseWeekSpanEvents(allDayEvents, weekStart, weekStartsOn = 0) {
|
|
340
|
+
return parseSpanEvents(allDayEvents, weekStart, addDaysLocal(endOfWeek(weekStart, weekStartsOn), 1));
|
|
341
|
+
}
|
|
342
|
+
/** the all-day bucket (start-of-day keyed) for a set of events, for span layout */
|
|
343
|
+
export function allDayEventMap(events) {
|
|
344
|
+
return parseEvents(events).allDay;
|
|
345
|
+
}
|
|
346
|
+
/** number of stacking rows a span layout needs (Semi calcRowHeight) */
|
|
347
|
+
export function calcRowHeight(events) {
|
|
348
|
+
const tops = events.map((e) => e.topInd);
|
|
349
|
+
return tops.length ? Math.max(...tops) + 1 : 1;
|
|
350
|
+
}
|
|
351
|
+
function collectDailyEvents(events) {
|
|
352
|
+
const collections = [];
|
|
353
|
+
events.forEach((row, rowInd) => {
|
|
354
|
+
if (!row)
|
|
355
|
+
return;
|
|
356
|
+
row.forEach((event, ind) => {
|
|
357
|
+
if (!collections[ind])
|
|
358
|
+
collections[ind] = [];
|
|
359
|
+
collections[ind][rowInd] = event;
|
|
360
|
+
});
|
|
81
361
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
362
|
+
return collections;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Lay out a month's events by week row (Semi getParseMonthlyEvents). Returns a
|
|
366
|
+
* map week-index → { day, display }. The render layer counts how many events a
|
|
367
|
+
* given day cell holds beyond `itemLimit` for the "+N" affordance.
|
|
368
|
+
*/
|
|
369
|
+
export function getMonthEvents(events, displayValue, weekStartsOn = 0) {
|
|
370
|
+
const firstDayOfMonth = startOfMonth(displayValue);
|
|
371
|
+
const lastDayOfMonth = endOfMonth(displayValue);
|
|
372
|
+
const currDate = displayValue;
|
|
373
|
+
const dated = [];
|
|
374
|
+
events
|
|
375
|
+
.slice()
|
|
376
|
+
.sort((a, b) => {
|
|
377
|
+
if (a.start && b.start) {
|
|
378
|
+
if (isBefore(a.start, b.start))
|
|
379
|
+
return -1;
|
|
380
|
+
if (isAfter(a.start, b.start))
|
|
381
|
+
return 1;
|
|
382
|
+
}
|
|
383
|
+
return 0;
|
|
384
|
+
})
|
|
385
|
+
.forEach((event) => {
|
|
386
|
+
dated.push(...parseAllDayEvent(event, event.allDay, currDate));
|
|
387
|
+
});
|
|
388
|
+
const perWeek = {};
|
|
389
|
+
const push = (item, ind) => {
|
|
390
|
+
if (perWeek[ind])
|
|
391
|
+
perWeek[ind].push(item);
|
|
87
392
|
else
|
|
88
|
-
|
|
393
|
+
perWeek[ind] = [item];
|
|
394
|
+
};
|
|
395
|
+
for (const item of dated) {
|
|
396
|
+
if (isSameMonth(item.date, displayValue)) {
|
|
397
|
+
push(item, getWeekOfMonth(item.date, weekStartsOn) - 1);
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
if (isBefore(item.date, firstDayOfMonth)) {
|
|
401
|
+
if (isSameWeek(item.date, firstDayOfMonth, weekStartsOn))
|
|
402
|
+
push(item, 0);
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
if (isAfter(item.date, lastDayOfMonth)) {
|
|
406
|
+
if (isSameWeek(item.date, lastDayOfMonth, weekStartsOn)) {
|
|
407
|
+
push(item, getWeekOfMonth(lastDayOfMonth, weekStartsOn) - 1);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
const result = {};
|
|
412
|
+
for (const k of Object.keys(perWeek)) {
|
|
413
|
+
const ind = Number(k);
|
|
414
|
+
const week = perWeek[ind];
|
|
415
|
+
const weekStart = startOfWeek(week[0].date, weekStartsOn);
|
|
416
|
+
const weekEnd = addDaysLocal(endOfWeek(weekStart, weekStartsOn), 1);
|
|
417
|
+
// filterEvents 把「起始在本周之前但延续进本周」的跨周长条重映射到 weekStart,
|
|
418
|
+
// 否则这些片段的 start 键落在周外、被 isSameDay 过滤丢失(跨月长条中间周消失的根因,
|
|
419
|
+
// 对齐 Semi filterWeeklyEvents)。
|
|
420
|
+
const weekMap = filterEvents(convertEventsArrToMap(week, 'start', startOfDay), weekStart, weekEnd);
|
|
421
|
+
// parse span layout for this week
|
|
422
|
+
let parsed = [[]];
|
|
423
|
+
[...weekMap.keys()].sort(sortDateStr).forEach((mk) => {
|
|
424
|
+
const startDate = new Date(mk);
|
|
425
|
+
const curr = weekMap.get(mk).filter((e) => isSameDay(e.date, startDate));
|
|
426
|
+
parsed = parseRangeAllDayEvent(curr, startDate, weekStart, addDaysLocal(endOfWeek(weekStart, weekStartsOn), 1), parsed);
|
|
427
|
+
});
|
|
428
|
+
result[ind] = {
|
|
429
|
+
day: collectDailyEvents(parsed),
|
|
430
|
+
display: collectSpanEvents(parsed),
|
|
431
|
+
};
|
|
89
432
|
}
|
|
90
|
-
return
|
|
433
|
+
return result;
|
|
91
434
|
}
|
|
92
|
-
|
|
435
|
+
// ============================ re-exports ============================
|
|
93
436
|
export { isSameDay };
|
|
94
437
|
//# sourceMappingURL=calendar.js.map
|
package/dist/calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"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"}
|