@k2b/ui 0.18.0 → 0.20.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/README.md +3 -2
- package/dist/browser/actions/ContextMenu.js +3 -1
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/Dropdown.js +91 -46
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/FilterChip.js +4 -1
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/GestureMenu.js +467 -0
- package/dist/browser/actions/GestureMenu.js.map +1 -0
- package/dist/browser/actions/index.js +1 -0
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js +1255 -534
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +9 -3
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js +19 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-behavior.js +9 -0
- package/dist/browser/chat/chat-behavior.js.map +1 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/chat/types.js.map +1 -1
- package/dist/browser/content/Calendar.js +579 -533
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/Lightbox.js +76 -40
- package/dist/browser/content/Lightbox.js.map +1 -1
- package/dist/browser/content/MessageRow.js +2 -2
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/content/PdfPreview.js +146 -79
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/Timeline.js +1038 -0
- package/dist/browser/content/Timeline.js.map +1 -0
- package/dist/browser/content/VideoPlayer.js +29 -9
- package/dist/browser/content/VideoPlayer.js.map +1 -1
- package/dist/browser/content/chart-inspection.js +7 -2
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/index.js +1 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/timeline-model.js +579 -0
- package/dist/browser/content/timeline-model.js.map +1 -0
- package/dist/browser/feedback/dialog-core.js +26 -14
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/inputs/ChoiceChips.js +66 -0
- package/dist/browser/inputs/ChoiceChips.js.map +1 -0
- package/dist/browser/inputs/ChoiceGroups.js +53 -12
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js +48 -33
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/SignatureInput.js +558 -0
- package/dist/browser/inputs/SignatureInput.js.map +1 -0
- package/dist/browser/inputs/TextInput.js +13 -1
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/emoji/EmojiPicker.js +841 -0
- package/dist/browser/inputs/emoji/EmojiPicker.js.map +1 -0
- package/dist/browser/inputs/emoji/emoji-data.js +1903 -0
- package/dist/browser/inputs/emoji/emoji-data.js.map +1 -0
- package/dist/browser/inputs/emoji/emoji-index.js +209 -0
- package/dist/browser/inputs/emoji/emoji-index.js.map +1 -0
- package/dist/browser/inputs/emoji/emoji-messages.js +64 -0
- package/dist/browser/inputs/emoji/emoji-messages.js.map +1 -0
- package/dist/browser/inputs/index.js +5 -0
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/markdown/actions.js +6 -2
- package/dist/browser/inputs/markdown/actions.js.map +1 -1
- package/dist/browser/inputs/markdown/code-zone.js +38 -2
- package/dist/browser/inputs/markdown/code-zone.js.map +1 -1
- package/dist/browser/inputs/signature-messages.js +39 -0
- package/dist/browser/inputs/signature-messages.js.map +1 -0
- package/dist/browser/inputs/signature.js +208 -0
- package/dist/browser/inputs/signature.js.map +1 -0
- package/dist/browser/internal/render-error.js +49 -0
- package/dist/browser/internal/render-error.js.map +1 -0
- package/dist/browser/intl/messages.js +102 -0
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +321 -222
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/FloatingWindow.js +4 -1
- package/dist/browser/layout/FloatingWindow.js.map +1 -1
- package/dist/browser/layout/SidebarItemPreview.js +5 -1
- package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/surfaces/ResourceCard.js +212 -0
- package/dist/browser/surfaces/ResourceCard.js.map +1 -0
- package/dist/browser/surfaces/index.js +1 -0
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/licenses/emojibase-data.txt +21 -0
- package/dist/ssr/actions/ContextMenu.js +3 -1
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +49 -12
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +4 -1
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/GestureMenu.js +411 -0
- package/dist/ssr/actions/GestureMenu.js.map +1 -0
- package/dist/ssr/actions/index.js +1 -0
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +767 -214
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +9 -3
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +19 -1
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-behavior.js +9 -0
- package/dist/ssr/chat/chat-behavior.js.map +1 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/chat/types.js.map +1 -1
- package/dist/ssr/content/Calendar.js +183 -142
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/Lightbox.js +19 -5
- package/dist/ssr/content/Lightbox.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +2 -2
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js +77 -36
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/Timeline.js +804 -0
- package/dist/ssr/content/Timeline.js.map +1 -0
- package/dist/ssr/content/VideoPlayer.js +29 -9
- package/dist/ssr/content/VideoPlayer.js.map +1 -1
- package/dist/ssr/content/chart-inspection.js +7 -2
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/index.js +1 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/timeline-model.js +579 -0
- package/dist/ssr/content/timeline-model.js.map +1 -0
- package/dist/ssr/feedback/dialog-core.js +26 -14
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/inputs/ChoiceChips.js +66 -0
- package/dist/ssr/inputs/ChoiceChips.js.map +1 -0
- package/dist/ssr/inputs/ChoiceGroups.js +12 -4
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +19 -4
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/SignatureInput.js +404 -0
- package/dist/ssr/inputs/SignatureInput.js.map +1 -0
- package/dist/ssr/inputs/TextInput.js +13 -1
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/emoji/EmojiPicker.js +551 -0
- package/dist/ssr/inputs/emoji/EmojiPicker.js.map +1 -0
- package/dist/ssr/inputs/emoji/emoji-data.js +1903 -0
- package/dist/ssr/inputs/emoji/emoji-data.js.map +1 -0
- package/dist/ssr/inputs/emoji/emoji-index.js +209 -0
- package/dist/ssr/inputs/emoji/emoji-index.js.map +1 -0
- package/dist/ssr/inputs/emoji/emoji-messages.js +64 -0
- package/dist/ssr/inputs/emoji/emoji-messages.js.map +1 -0
- package/dist/ssr/inputs/index.js +5 -0
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/markdown/actions.js +6 -2
- package/dist/ssr/inputs/markdown/actions.js.map +1 -1
- package/dist/ssr/inputs/markdown/code-zone.js +38 -2
- package/dist/ssr/inputs/markdown/code-zone.js.map +1 -1
- package/dist/ssr/inputs/signature-messages.js +39 -0
- package/dist/ssr/inputs/signature-messages.js.map +1 -0
- package/dist/ssr/inputs/signature.js +208 -0
- package/dist/ssr/inputs/signature.js.map +1 -0
- package/dist/ssr/internal/render-error.js +49 -0
- package/dist/ssr/internal/render-error.js.map +1 -0
- package/dist/ssr/intl/messages.js +102 -0
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +112 -41
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/FloatingWindow.js +4 -1
- package/dist/ssr/layout/FloatingWindow.js.map +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js +5 -1
- package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/surfaces/ResourceCard.js +115 -0
- package/dist/ssr/surfaces/ResourceCard.js.map +1 -0
- package/dist/ssr/surfaces/index.js +1 -0
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/Dropdown.d.ts +13 -1
- package/dist/types/actions/FilterChip.d.ts +5 -0
- package/dist/types/actions/GestureMenu.d.ts +35 -0
- package/dist/types/actions/index.d.ts +2 -0
- package/dist/types/chat/ChatComposer.d.ts +27 -1
- package/dist/types/chat/chat-behavior.d.ts +15 -0
- package/dist/types/chat/index.d.ts +1 -1
- package/dist/types/chat/types.d.ts +34 -0
- package/dist/types/content/Calendar.d.ts +28 -8
- package/dist/types/content/Lightbox.d.ts +8 -0
- package/dist/types/content/Timeline.d.ts +49 -0
- package/dist/types/content/index.d.ts +4 -2
- package/dist/types/content/timeline-model.d.ts +148 -0
- package/dist/types/feedback/dialog-core.d.ts +1 -1
- package/dist/types/inputs/ChoiceChips.d.ts +20 -0
- package/dist/types/inputs/ChoiceGroups.d.ts +11 -2
- package/dist/types/inputs/FileInputs.d.ts +6 -0
- package/dist/types/inputs/SignatureInput.d.ts +22 -0
- package/dist/types/inputs/emoji/EmojiPicker.d.ts +42 -0
- package/dist/types/inputs/emoji/emoji-data.d.ts +2 -0
- package/dist/types/inputs/emoji/emoji-index.d.ts +109 -0
- package/dist/types/inputs/emoji/emoji-messages.d.ts +30 -0
- package/dist/types/inputs/index.d.ts +10 -0
- package/dist/types/inputs/markdown/actions.d.ts +2 -0
- package/dist/types/inputs/markdown/code-zone.d.ts +7 -0
- package/dist/types/inputs/signature-messages.d.ts +11 -0
- package/dist/types/inputs/signature.d.ts +72 -0
- package/dist/types/internal/render-error.d.ts +13 -0
- package/dist/types/intl/messages.d.ts +51 -0
- package/dist/types/layout/AppWorkspace.d.ts +17 -0
- package/dist/types/layout/SidebarItemPreview.d.ts +2 -0
- package/dist/types/layout/index.d.ts +1 -1
- package/dist/types/surfaces/ResourceCard.d.ts +31 -0
- package/dist/types/surfaces/index.d.ts +2 -0
- package/package.json +6 -5
|
@@ -4,52 +4,53 @@ import { ssrElement as _$ssrElement } from "solid-js/web";
|
|
|
4
4
|
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
5
5
|
import { ssrStyle as _$ssrStyle } from "solid-js/web";
|
|
6
6
|
import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
|
|
7
|
+
import { escape as _$escape } from "solid-js/web";
|
|
7
8
|
import { createComponent as _$createComponent } from "solid-js/web";
|
|
8
9
|
import { ssr as _$ssr } from "solid-js/web";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
_tmpl$
|
|
12
|
-
_tmpl$
|
|
13
|
-
_tmpl$
|
|
14
|
-
_tmpl$
|
|
15
|
-
_tmpl$
|
|
16
|
-
_tmpl$
|
|
17
|
-
_tmpl$
|
|
18
|
-
_tmpl$
|
|
19
|
-
_tmpl$
|
|
20
|
-
_tmpl$
|
|
21
|
-
_tmpl$
|
|
22
|
-
_tmpl$
|
|
23
|
-
_tmpl$
|
|
24
|
-
_tmpl$
|
|
25
|
-
_tmpl$
|
|
26
|
-
_tmpl$
|
|
27
|
-
_tmpl$
|
|
28
|
-
_tmpl$
|
|
29
|
-
_tmpl$
|
|
30
|
-
_tmpl$
|
|
31
|
-
_tmpl$
|
|
32
|
-
_tmpl$
|
|
33
|
-
_tmpl$
|
|
34
|
-
_tmpl$
|
|
35
|
-
_tmpl$
|
|
36
|
-
_tmpl$
|
|
37
|
-
_tmpl$
|
|
38
|
-
_tmpl$
|
|
39
|
-
_tmpl$
|
|
40
|
-
_tmpl$
|
|
41
|
-
_tmpl$
|
|
42
|
-
_tmpl$
|
|
43
|
-
_tmpl$
|
|
44
|
-
_tmpl$
|
|
45
|
-
_tmpl$
|
|
46
|
-
_tmpl$
|
|
47
|
-
_tmpl$
|
|
48
|
-
_tmpl$
|
|
49
|
-
_tmpl$
|
|
50
|
-
_tmpl$
|
|
51
|
-
_tmpl$
|
|
52
|
-
_tmpl$
|
|
10
|
+
var _tmpl$ = "<span class=\"k2b-calendar-event__marker\" aria-hidden=\"true\"></span>",
|
|
11
|
+
_tmpl$2 = ["<span class=\"k2b-calendar-event__title\">", "", "</span>"],
|
|
12
|
+
_tmpl$3 = ["<span class=\"k2b-calendar-event__meta\">", "</span>"],
|
|
13
|
+
_tmpl$4 = ["<span class=\"k2b-calendar-event__description\">", "</span>"],
|
|
14
|
+
_tmpl$5 = ["<a", " class=\"k2b-calendar-event\" data-calendar-event", " style=\"", "\"", ">", "</a>"],
|
|
15
|
+
_tmpl$6 = ["<button type=\"button\" class=\"k2b-calendar-event\" data-calendar-event", " data-interactive=\"true\"", " style=\"", "\"", ">", "</button>"],
|
|
16
|
+
_tmpl$7 = ["<div class=\"k2b-calendar-event\" role=\"group\" data-calendar-event", " style=\"", "\"", ">", "</div>"],
|
|
17
|
+
_tmpl$8 = ["<div role=\"radiogroup\"", " aria-orientation=\"horizontal\" class=\"k2b-segmented-control k2b-calendar-view-switcher\">", "</div>"],
|
|
18
|
+
_tmpl$9 = ["<i class=\"", "\"></i>"],
|
|
19
|
+
_tmpl$0 = ["<button type=\"button\"", " class=\"k2b-calendar-header__nav-button\"><i class=\"", "\"></i></button>"],
|
|
20
|
+
_tmpl$1 = ["<span class=\"k2b-button__label\">", "</span>"],
|
|
21
|
+
_tmpl$10 = "<span class=\"k2b-calendar-header__progress\" aria-hidden=\"true\"></span>",
|
|
22
|
+
_tmpl$11 = ["<header class=\"k2b-calendar-header\"><div class=\"k2b-calendar-header__navigation\">", "", "<div class=\"k2b-calendar-header__title\">", "</div></div><div class=\"k2b-calendar-header__actions\">", "", "", "</div>", "</header>"],
|
|
23
|
+
_tmpl$12 = ["<div class=\"k2b-calendar-month__weekday\">", "</div>"],
|
|
24
|
+
_tmpl$13 = ["<div class=\"k2b-calendar-month\" style=\"", "\"><div class=\"k2b-calendar-month__weekdays\"", ">", "", "</div>", "</div>"],
|
|
25
|
+
_tmpl$14 = ["<div class=\"k2b-calendar-month__week-number\">", "</div>"],
|
|
26
|
+
_tmpl$15 = ["<div class=\"k2b-calendar-month__week\"", ">", "", "</div>"],
|
|
27
|
+
_tmpl$16 = ["<div class=\"k2b-calendar-preview\">", "</div>"],
|
|
28
|
+
_tmpl$17 = ["<div class=\"k2b-calendar-month__day\"", ">", "<div class=\"k2b-calendar-month__day-header\">", "", "</div><div class=\"k2b-calendar-month__events\">", "", "", "</div><div class=\"k2b-calendar-month__dots\">", "</div></div>"],
|
|
29
|
+
_tmpl$18 = ["<span class=\"k2b-calendar-month__day-number\"", ">", "</span>"],
|
|
30
|
+
_tmpl$19 = ["<span class=\"k2b-calendar-month__badge\">", "", "</span>"],
|
|
31
|
+
_tmpl$20 = ["<span class=\"k2b-calendar-dot\"", " style=\"", "\"></span>"],
|
|
32
|
+
_tmpl$21 = ["<div class=\"k2b-calendar-time-grid__all-day\" style=\"", "\"><div class=\"k2b-calendar-time-grid__all-day-label\">", "</div>", "</div>"],
|
|
33
|
+
_tmpl$22 = ["<div class=\"k2b-calendar-time-grid\"><div class=\"k2b-calendar-time-grid__days\" style=\"", "\"><div></div>", "</div>", "<div class=\"k2b-calendar-time-grid__scroll\"><div class=\"k2b-calendar-time-grid__grid\" style=\"", "\"><div class=\"k2b-calendar-time-grid__gutter\" style=\"", "\">", "</div>", "</div></div></div>"],
|
|
34
|
+
_tmpl$23 = ["<span class=\"k2b-calendar-time-grid__day-label\"", ">", "</span>"],
|
|
35
|
+
_tmpl$24 = ["<span class=\"k2b-calendar-time-grid__badge\">", "", "</span>"],
|
|
36
|
+
_tmpl$25 = ["<div class=\"k2b-calendar-time-grid__all-day-events\">", "", "</div>"],
|
|
37
|
+
_tmpl$26 = ["<div class=\"k2b-calendar-time-grid__hour\"", ">", ":00</div>"],
|
|
38
|
+
_tmpl$27 = ["<div class=\"k2b-calendar-time-grid__now\" style=\"", "\"></div>"],
|
|
39
|
+
_tmpl$28 = ["<div class=\"k2b-calendar-time-grid__column\" style=\"", "\">", "", "", "", "", "</div>"],
|
|
40
|
+
_tmpl$29 = ["<div class=\"k2b-calendar-preview__title\">", "</div>"],
|
|
41
|
+
_tmpl$30 = ["<div class=\"k2b-calendar-preview k2b-calendar-preview--timed\"", " style=\"", "\"><div class=\"k2b-calendar-preview__content\">", "<div class=\"k2b-calendar-preview__label\">", " - ", "</div></div></div>"],
|
|
42
|
+
_tmpl$31 = ["<button type=\"button\"", " draggable=\"false\" class=\"k2b-calendar-time-grid__resize\"><span class=\"k2b-calendar-time-grid__resize-icon\" aria-hidden=\"true\"></span></button>"],
|
|
43
|
+
_tmpl$32 = ["<div class=\"k2b-calendar-time-grid__event-position\" style=\"", "\"><div class=\"k2b-calendar-time-grid__event-frame\">", "", "</div></div>"],
|
|
44
|
+
_tmpl$33 = ["<button type=\"button\" class=\"k2b-calendar-time-grid__overflow\" style=\"", "\"", "><span class=\"k2b-calendar-time-grid__overflow-count\">+", "</span></button>"],
|
|
45
|
+
_tmpl$34 = ["<div class=\"k2b-calendar-time-grid__overflow-menu\" style=\"", "\"><div class=\"k2b-calendar-time-grid__overflow-title\">", " - ", "</div>", "</div>"],
|
|
46
|
+
_tmpl$35 = ["<div class=\"k2b-calendar-year\">", "</div>"],
|
|
47
|
+
_tmpl$36 = ["<div class=\"k2b-calendar-year__month\"><div class=\"k2b-calendar-year__title\">", "</div><div class=\"k2b-calendar-year__grid\">", "</div></div>"],
|
|
48
|
+
_tmpl$37 = ["<span class=\"k2b-calendar-year__indicator\"", " style=\"", "\"></span>"],
|
|
49
|
+
_tmpl$38 = ["<div class=\"k2b-calendar-mobile-month__events\">", "</div>"],
|
|
50
|
+
_tmpl$39 = ["<div class=\"k2b-calendar-mobile-month\">", "<div class=\"k2b-calendar-mobile-month__agenda\"><div class=\"k2b-calendar-mobile-month__title\">", "</div>", "</div></div>"],
|
|
51
|
+
_tmpl$40 = ["<div class=\"k2b-calendar-mobile-month__empty\">", "</div>"],
|
|
52
|
+
_tmpl$41 = ["<div class=\"k2b-calendar-body\">", "</div>"],
|
|
53
|
+
_tmpl$42 = ["<section class=\"", "\"", ">", "", "", "</section>"];
|
|
53
54
|
import { Link } from "@k2b/ssr/nav";
|
|
54
55
|
import { dates as calendar } from "@k2b/stdlib";
|
|
55
56
|
import { createMemo, createSignal, For, mergeProps, onCleanup, onMount, Show } from "solid-js";
|
|
@@ -59,6 +60,11 @@ import { useDateConfigLocale } from "../intl/locale";
|
|
|
59
60
|
import { useUiMessages } from "../intl/messages";
|
|
60
61
|
import { layoutCalendarIntervals } from "./calendar-event-layout";
|
|
61
62
|
import { calendarDayIndexAtPoint, calendarMinuteAtPoint, startCalendarPointerSession } from "./calendar-pointer";
|
|
63
|
+
|
|
64
|
+
/** A view the application adds to the switcher; the calendar shows its header and toolbar, the application the body. */
|
|
65
|
+
|
|
66
|
+
/** What the built-in views read from the props: they only ever link to built-in views. */
|
|
67
|
+
|
|
62
68
|
const ownerDateConfig = owner => ({
|
|
63
69
|
...owner.dateConfig,
|
|
64
70
|
timeZone: owner.timeZone ?? owner.dateConfig?.timeZone,
|
|
@@ -228,11 +234,14 @@ const EventChip = props => {
|
|
|
228
234
|
const showLocation = () => Boolean(props.event.location && !props.compact && durationHours() >= 1.25);
|
|
229
235
|
const showDescription = () => Boolean(props.event.description?.trim() && props.fill && !props.event.allDay && !props.compact && durationHours() >= 1.5);
|
|
230
236
|
const timeLabel = () => `${formatTime(props.event.startDate, dateConfig())} - ${formatTime(props.event.endDate, dateConfig())}`;
|
|
231
|
-
const ariaLabel = () =>
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
237
|
+
const ariaLabel = () => {
|
|
238
|
+
const label = props.event.allDay ? props.event.title : messages().calendarEventTime({
|
|
239
|
+
title: props.event.title,
|
|
240
|
+
start: formatTime(props.event.startDate, dateConfig()),
|
|
241
|
+
end: formatTime(props.event.endDate, dateConfig())
|
|
242
|
+
});
|
|
243
|
+
return props.event.accessibleDetail ? `${label}, ${props.event.accessibleDetail}` : label;
|
|
244
|
+
};
|
|
236
245
|
const renderedEvent = () => props.owner.renderEvent?.(props.event, {
|
|
237
246
|
compact: props.compact ?? false,
|
|
238
247
|
fill: props.fill ?? false,
|
|
@@ -242,26 +251,33 @@ const EventChip = props => {
|
|
|
242
251
|
durationHours: durationHours(),
|
|
243
252
|
timeLabel: timeLabel()
|
|
244
253
|
});
|
|
245
|
-
const defaultContent = [_$ssr(_tmpl
|
|
254
|
+
const defaultContent = [_$ssr(_tmpl$2, _$escape(_$createComponent(Show, {
|
|
255
|
+
get when() {
|
|
256
|
+
return props.event.display === "marker";
|
|
257
|
+
},
|
|
258
|
+
get children() {
|
|
259
|
+
return _$ssr(_tmpl$);
|
|
260
|
+
}
|
|
261
|
+
})), _$escape(props.event.title)), _$createComponent(Show, {
|
|
246
262
|
get when() {
|
|
247
263
|
return showTime();
|
|
248
264
|
},
|
|
249
265
|
get children() {
|
|
250
|
-
return _$ssr(_tmpl$
|
|
266
|
+
return _$ssr(_tmpl$3, _$escape(timeLabel()));
|
|
251
267
|
}
|
|
252
268
|
}), _$createComponent(Show, {
|
|
253
269
|
get when() {
|
|
254
270
|
return showLocation();
|
|
255
271
|
},
|
|
256
272
|
get children() {
|
|
257
|
-
return _$ssr(_tmpl$
|
|
273
|
+
return _$ssr(_tmpl$3, _$escape(props.event.location));
|
|
258
274
|
}
|
|
259
275
|
}), _$createComponent(Show, {
|
|
260
276
|
get when() {
|
|
261
277
|
return showDescription();
|
|
262
278
|
},
|
|
263
279
|
get children() {
|
|
264
|
-
return _$ssr(_tmpl$
|
|
280
|
+
return _$ssr(_tmpl$4, _$escape(props.event.description));
|
|
265
281
|
}
|
|
266
282
|
})];
|
|
267
283
|
const content = () => renderedEvent() ?? defaultContent;
|
|
@@ -296,7 +312,7 @@ const EventChip = props => {
|
|
|
296
312
|
suppressClickUntil = performance.now() + 400;
|
|
297
313
|
});
|
|
298
314
|
};
|
|
299
|
-
return props.href ? _$ssr(_tmpl$
|
|
315
|
+
return props.href ? _$ssr(_tmpl$5, _$ssrAttribute("href", _$escape(props.href, true), false), _$ssrAttribute("data-color", props.event.colorHex ? _$escape(undefined, true) : _$escape(color(), true), false) + _$ssrAttribute("data-selected", selected() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-compact", props.compact ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-fill", props.fill ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-short", short() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-moving", props.moving ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-interactive", isInteractive() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-display", _$escape(props.event.display, true), false) + _$ssrAttribute("data-space-item-id", _$escape(props.event.dataSpaceItemId, true), false), _$ssrStyle(style()), _$ssrAttribute("draggable", props.onMovePointerDown ? _$escape(false, true) : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(ariaLabel(), true), false), _$escape(content())) : isActionable() ? _$ssr(_tmpl$6, _$ssrAttribute("data-color", props.event.colorHex ? _$escape(undefined, true) : _$escape(color(), true), false) + _$ssrAttribute("data-selected", selected() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-compact", props.compact ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-fill", props.fill ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-short", short() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-moving", props.moving ? "true" : _$escape(undefined, true), false), _$ssrAttribute("data-display", _$escape(props.event.display, true), false), _$ssrStyle(style()), _$ssrAttribute("aria-label", _$escape(ariaLabel(), true), false), _$escape(content())) : _$ssr(_tmpl$7, _$ssrAttribute("data-color", props.event.colorHex ? _$escape(undefined, true) : _$escape(color(), true), false) + _$ssrAttribute("data-selected", selected() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-compact", props.compact ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-fill", props.fill ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-short", short() ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-moving", props.moving ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-interactive", _$escape(undefined, true), false) + _$ssrAttribute("data-display", _$escape(props.event.display, true), false), _$ssrStyle(style()), _$ssrAttribute("aria-label", _$escape(ariaLabel(), true), false), _$escape(content()));
|
|
300
316
|
};
|
|
301
317
|
const slotInteractionProps = (owner, slot, suppressed, nativeControl = false) => {
|
|
302
318
|
const isSlotChild = event => {
|
|
@@ -379,7 +395,7 @@ const CalendarViewLinks = props => {
|
|
|
379
395
|
refs[event.key === "Home" ? 0 : props.options.length - 1]?.click();
|
|
380
396
|
}
|
|
381
397
|
};
|
|
382
|
-
return _$ssr(_tmpl$
|
|
398
|
+
return _$ssr(_tmpl$8, _$ssrAttribute("aria-label", _$escape(messages().calendarView, true), false), _$escape(_$createComponent(For, {
|
|
383
399
|
get each() {
|
|
384
400
|
return props.options;
|
|
385
401
|
},
|
|
@@ -413,10 +429,12 @@ const CalendarViewLinks = props => {
|
|
|
413
429
|
}
|
|
414
430
|
})));
|
|
415
431
|
};
|
|
432
|
+
|
|
433
|
+
/** Custom views page by day, like the day view. */
|
|
416
434
|
const adjacentCalendarDate = (date, view, direction, dateConfig) => {
|
|
417
435
|
if (view === "year") return calendar.addMonths(date, direction * 12, dateConfig);
|
|
418
436
|
if (view === "month" || view === "mobile-month") return calendar.addMonths(date, direction, dateConfig);
|
|
419
|
-
return calendar.addDays(date, direction * (view === "
|
|
437
|
+
return calendar.addDays(date, direction * (view === "week" ? 7 : 1), dateConfig);
|
|
420
438
|
};
|
|
421
439
|
const CalendarHeader = props => {
|
|
422
440
|
const messages = useUiMessages();
|
|
@@ -428,7 +446,7 @@ const CalendarHeader = props => {
|
|
|
428
446
|
year: "numeric",
|
|
429
447
|
timeZone: dateConfig().timeZone
|
|
430
448
|
}).format(props.date);
|
|
431
|
-
if (props.view
|
|
449
|
+
if (props.view !== "week" && props.view !== "month" && props.view !== "mobile-month") return props.date.toLocaleDateString(dateConfig().locale ?? "en", {
|
|
432
450
|
weekday: "long",
|
|
433
451
|
month: "long",
|
|
434
452
|
day: "numeric",
|
|
@@ -460,9 +478,9 @@ const CalendarHeader = props => {
|
|
|
460
478
|
class: "k2b-calendar-header__nav-button"
|
|
461
479
|
},
|
|
462
480
|
get children() {
|
|
463
|
-
return _$ssr(_tmpl$
|
|
481
|
+
return _$ssr(_tmpl$9, `ti ${_$escape(icon, true)}`);
|
|
464
482
|
}
|
|
465
|
-
}) : props.owner.onDateChange ? _$ssr(_tmpl$
|
|
483
|
+
}) : props.owner.onDateChange ? _$ssr(_tmpl$0, _$ssrAttribute("aria-label", _$escape(label, true), false), `ti ${_$escape(icon, true)}`) : _$createComponent(CalendarNavigationLink, {
|
|
466
484
|
get owner() {
|
|
467
485
|
return props.owner;
|
|
468
486
|
},
|
|
@@ -473,14 +491,14 @@ const CalendarHeader = props => {
|
|
|
473
491
|
class: "k2b-calendar-header__nav-button"
|
|
474
492
|
},
|
|
475
493
|
get children() {
|
|
476
|
-
return _$ssr(_tmpl$
|
|
494
|
+
return _$ssr(_tmpl$9, `ti ${_$escape(icon, true)}`);
|
|
477
495
|
}
|
|
478
496
|
});
|
|
479
497
|
};
|
|
480
498
|
const todayButton = () => {
|
|
481
499
|
const today = calendar.today(dateConfig());
|
|
482
500
|
const href = props.owner.getDateHref?.(today, props.view);
|
|
483
|
-
const label = _$ssr(_tmpl$
|
|
501
|
+
const label = _$ssr(_tmpl$1, _$escape(props.labels.today));
|
|
484
502
|
return (props.owner.onNavigateHref || props.owner.onNavigate) && href ? _$createComponent(CalendarNavigationLink, {
|
|
485
503
|
get owner() {
|
|
486
504
|
return props.owner;
|
|
@@ -514,7 +532,7 @@ const CalendarHeader = props => {
|
|
|
514
532
|
children: label
|
|
515
533
|
});
|
|
516
534
|
};
|
|
517
|
-
const viewOptions = createMemo(() => [{
|
|
535
|
+
const viewOptions = createMemo(() => [...[{
|
|
518
536
|
value: "day",
|
|
519
537
|
label: props.labels.day
|
|
520
538
|
}, {
|
|
@@ -526,8 +544,8 @@ const CalendarHeader = props => {
|
|
|
526
544
|
}, {
|
|
527
545
|
value: "year",
|
|
528
546
|
label: props.labels.year
|
|
529
|
-
}].filter(option => !props.owner.views || props.owner.views.includes(option.value)));
|
|
530
|
-
return _$ssr(_tmpl$
|
|
547
|
+
}].filter(option => !props.owner.views || props.owner.views.includes(option.value)), ...(props.owner.customViews ?? [])]);
|
|
548
|
+
return _$ssr(_tmpl$11, _$escape(navButton(previous(), "ti-chevron-left", props.labels.previous)), _$escape(navButton(next(), "ti-chevron-right", props.labels.next)), _$escape(title()), _$escape(todayButton()), _$escape(_$createComponent(Show, {
|
|
531
549
|
get when() {
|
|
532
550
|
return _$memo(() => !!!props.owner.onViewChange)() && props.owner.getViewHref;
|
|
533
551
|
},
|
|
@@ -561,7 +579,7 @@ const CalendarHeader = props => {
|
|
|
561
579
|
return props.owner.navigationPending;
|
|
562
580
|
},
|
|
563
581
|
get children() {
|
|
564
|
-
return _$ssr(_tmpl$
|
|
582
|
+
return _$ssr(_tmpl$10);
|
|
565
583
|
}
|
|
566
584
|
})));
|
|
567
585
|
};
|
|
@@ -619,28 +637,28 @@ const MonthView = props => {
|
|
|
619
637
|
});
|
|
620
638
|
};
|
|
621
639
|
onCleanup(() => cancelInteraction?.());
|
|
622
|
-
return _$ssr(_tmpl$
|
|
640
|
+
return _$ssr(_tmpl$13, _$ssrStyleProperty("grid-template-rows:", `auto repeat(${_$escape(weeks().length, true)}, ${props.compact ? "minmax(2.75rem, auto)" : "minmax(5rem, 1fr)"})`), _$ssrAttribute("data-week-numbers", props.owner.withWeekNumbers ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
623
641
|
get when() {
|
|
624
642
|
return props.owner.withWeekNumbers;
|
|
625
643
|
},
|
|
626
644
|
get children() {
|
|
627
|
-
return _$ssr(_tmpl$
|
|
645
|
+
return _$ssr(_tmpl$12, _$escape(messages().weekShort));
|
|
628
646
|
}
|
|
629
647
|
})), _$escape(_$createComponent(For, {
|
|
630
648
|
get each() {
|
|
631
649
|
return weekdays();
|
|
632
650
|
},
|
|
633
|
-
children: day => _$ssr(_tmpl$
|
|
651
|
+
children: day => _$ssr(_tmpl$12, _$escape(day))
|
|
634
652
|
})), _$escape(_$createComponent(For, {
|
|
635
653
|
get each() {
|
|
636
654
|
return weeks();
|
|
637
655
|
},
|
|
638
|
-
children: week => _$ssr(_tmpl$
|
|
656
|
+
children: week => _$ssr(_tmpl$15, _$ssrAttribute("data-week-numbers", props.owner.withWeekNumbers ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
639
657
|
get when() {
|
|
640
658
|
return props.owner.withWeekNumbers;
|
|
641
659
|
},
|
|
642
660
|
get children() {
|
|
643
|
-
return _$ssr(_tmpl$
|
|
661
|
+
return _$ssr(_tmpl$14, _$escape(zonedWeekNumber(week[0], dateConfig())));
|
|
644
662
|
}
|
|
645
663
|
})), _$escape(_$createComponent(For, {
|
|
646
664
|
each: week,
|
|
@@ -669,7 +687,7 @@ const MonthView = props => {
|
|
|
669
687
|
hiddenCount: Math.max(0, candidates.length - visibleLimit)
|
|
670
688
|
};
|
|
671
689
|
});
|
|
672
|
-
return _$ssr(_tmpl$
|
|
690
|
+
return _$ssr(_tmpl$17, _$ssrAttribute("data-calendar-day-key", _$escape(dayKey, true), false) + _$ssrAttribute("data-outside", !sameMonth ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-drop-preview", movePreview()?.start && calendar.formatDateKey(movePreview().start, dateConfig()) === dayKey ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
|
|
673
691
|
get when() {
|
|
674
692
|
return props.owner.onSlotActivate;
|
|
675
693
|
},
|
|
@@ -718,7 +736,7 @@ const MonthView = props => {
|
|
|
718
736
|
return props.owner.onSlotActivate && href;
|
|
719
737
|
},
|
|
720
738
|
get fallback() {
|
|
721
|
-
return _$ssr(_tmpl$
|
|
739
|
+
return _$ssr(_tmpl$18, _$ssrAttribute("data-today", isToday ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("data-outside", !sameMonth ? "true" : _$escape(undefined, true), false), _$escape(calendar.formatDayNumber(day, dateConfig())));
|
|
722
740
|
},
|
|
723
741
|
children: dayHref => _$createComponent(CalendarNavigationLink, {
|
|
724
742
|
get owner() {
|
|
@@ -743,18 +761,18 @@ const MonthView = props => {
|
|
|
743
761
|
})
|
|
744
762
|
})), _$escape(_$createComponent(Show, {
|
|
745
763
|
when: dayBadge,
|
|
746
|
-
children: badge => _$ssr(_tmpl$
|
|
764
|
+
children: badge => _$ssr(_tmpl$19, _$escape(_$createComponent(Show, {
|
|
747
765
|
get when() {
|
|
748
766
|
return badge().icon;
|
|
749
767
|
},
|
|
750
|
-
children: icon => _$ssr(_tmpl$
|
|
768
|
+
children: icon => _$ssr(_tmpl$9, `k2b-calendar-month__badge-icon ti ti-${_$escape(icon(), true)}`)
|
|
751
769
|
})), _$escape(badge().label))
|
|
752
770
|
})), _$escape(_$createComponent(Show, {
|
|
753
771
|
get when() {
|
|
754
772
|
return eventStack().preview;
|
|
755
773
|
},
|
|
756
774
|
get children() {
|
|
757
|
-
return _$ssr(_tmpl$
|
|
775
|
+
return _$ssr(_tmpl$16, _$escape(props.events.find(event => event.id === eventStack().preview.id)?.title ?? messages().moveEvent));
|
|
758
776
|
}
|
|
759
777
|
})), _$escape(_$createComponent(For, {
|
|
760
778
|
get each() {
|
|
@@ -798,7 +816,7 @@ const MonthView = props => {
|
|
|
798
816
|
get each() {
|
|
799
817
|
return events.slice(0, 4);
|
|
800
818
|
},
|
|
801
|
-
children: event => _$ssr(_tmpl$
|
|
819
|
+
children: event => _$ssr(_tmpl$20, _$ssrAttribute("data-color", event.colorHex ? _$escape(undefined, true) : _$escape(event.color ?? "blue", true), false), _$ssrStyle(event.colorHex ? {
|
|
802
820
|
"background-color": event.colorHex
|
|
803
821
|
} : undefined))
|
|
804
822
|
})));
|
|
@@ -1009,13 +1027,15 @@ const TimeGridView = props => {
|
|
|
1009
1027
|
requestAnimationFrame(() => {
|
|
1010
1028
|
if (!scrollContainer || !defaultHourMarker) return;
|
|
1011
1029
|
const targetTop = defaultHourMarker.getBoundingClientRect().top - scrollContainer.getBoundingClientRect().top;
|
|
1030
|
+
// Reduced motion jumps to the business hours instead of gliding there, like every transition of the library.
|
|
1031
|
+
const behavior = window.matchMedia("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth";
|
|
1012
1032
|
scrollContainer.scrollTo({
|
|
1013
1033
|
top: Math.max(0, scrollContainer.scrollTop + targetTop),
|
|
1014
|
-
behavior
|
|
1034
|
+
behavior
|
|
1015
1035
|
});
|
|
1016
1036
|
});
|
|
1017
1037
|
});
|
|
1018
|
-
return _$ssr(_tmpl$
|
|
1038
|
+
return _$ssr(_tmpl$22, _$ssrStyleProperty("grid-template-columns:", `4rem repeat(${_$escape(props.days.length, true)}, minmax(0, 1fr))`), _$escape(_$createComponent(For, {
|
|
1019
1039
|
get each() {
|
|
1020
1040
|
return props.days;
|
|
1021
1041
|
},
|
|
@@ -1033,13 +1053,13 @@ const TimeGridView = props => {
|
|
|
1033
1053
|
class: "k2b-calendar-time-grid__day"
|
|
1034
1054
|
},
|
|
1035
1055
|
get children() {
|
|
1036
|
-
return [_$ssr(_tmpl$
|
|
1056
|
+
return [_$ssr(_tmpl$23, _$ssrAttribute("data-today", today() ? "true" : _$escape(undefined, true), false), _$escape(formatDay(day, dateConfig()))), _$createComponent(Show, {
|
|
1037
1057
|
when: dayBadge,
|
|
1038
|
-
children: badge => _$ssr(_tmpl$
|
|
1058
|
+
children: badge => _$ssr(_tmpl$24, _$escape(_$createComponent(Show, {
|
|
1039
1059
|
get when() {
|
|
1040
1060
|
return badge().icon;
|
|
1041
1061
|
},
|
|
1042
|
-
children: icon => _$ssr(_tmpl$
|
|
1062
|
+
children: icon => _$ssr(_tmpl$9, `k2b-calendar-time-grid__badge-icon ti ti-${_$escape(icon(), true)}`)
|
|
1043
1063
|
})), _$escape(badge().label))
|
|
1044
1064
|
})];
|
|
1045
1065
|
}
|
|
@@ -1050,7 +1070,7 @@ const TimeGridView = props => {
|
|
|
1050
1070
|
return !props.owner.hideAllDay;
|
|
1051
1071
|
},
|
|
1052
1072
|
get children() {
|
|
1053
|
-
return _$ssr(_tmpl$
|
|
1073
|
+
return _$ssr(_tmpl$21, _$ssrStyleProperty("grid-template-columns:", `4rem repeat(${_$escape(props.days.length, true)}, minmax(0, 1fr))`) + _$ssrStyleProperty(";max-height:", `${_$escape(props.owner.allDayMaxHeightRem ?? 7, true)}rem`), _$escape(props.labels.allDay), _$escape(_$createComponent(For, {
|
|
1054
1074
|
get each() {
|
|
1055
1075
|
return props.days;
|
|
1056
1076
|
},
|
|
@@ -1074,9 +1094,9 @@ const TimeGridView = props => {
|
|
|
1074
1094
|
end: calendar.addDays(start, 1, dateConfig()),
|
|
1075
1095
|
allDay: true
|
|
1076
1096
|
};
|
|
1077
|
-
}, () => performance.now() < suppressSlotClickUntil)), _$ssr(_tmpl$
|
|
1097
|
+
}, () => performance.now() < suppressSlotClickUntil)), _$ssr(_tmpl$25, _$escape(_$createComponent(For, {
|
|
1078
1098
|
each: previewAllDay,
|
|
1079
|
-
children: event => _$ssr(_tmpl$
|
|
1099
|
+
children: event => _$ssr(_tmpl$16, _$escape(event.title))
|
|
1080
1100
|
})), _$escape(_$createComponent(For, {
|
|
1081
1101
|
get each() {
|
|
1082
1102
|
return allDay();
|
|
@@ -1105,7 +1125,7 @@ const TimeGridView = props => {
|
|
|
1105
1125
|
get each() {
|
|
1106
1126
|
return hours();
|
|
1107
1127
|
},
|
|
1108
|
-
children: hour => _$ssr(_tmpl$
|
|
1128
|
+
children: hour => _$ssr(_tmpl$26, _$ssrAttribute("data-outside-business", hour < businessStartHour() || hour > businessEndHour() ? "true" : _$escape(undefined, true), false), _$escape(`${hour}`.padStart(2, "0")))
|
|
1109
1129
|
})), _$escape(_$createComponent(For, {
|
|
1110
1130
|
get each() {
|
|
1111
1131
|
return props.days;
|
|
@@ -1113,12 +1133,12 @@ const TimeGridView = props => {
|
|
|
1113
1133
|
children: day => {
|
|
1114
1134
|
const dayKey = calendar.formatDateKey(day, dateConfig());
|
|
1115
1135
|
const layouts = createMemo(() => timedEventLayouts(eventsByDay().get(dayKey)?.timed ?? []));
|
|
1116
|
-
return _$ssr(_tmpl$
|
|
1136
|
+
return _$ssr(_tmpl$28, _$ssrStyleProperty("min-width:", _$escape(dayColumnMinWidth(layouts()), true)) + _$ssrStyleProperty(";grid-template-rows:", `repeat(${_$escape(hours().length, true)}, minmax(4rem, 1fr))`), _$escape(_$createComponent(Show, {
|
|
1117
1137
|
get when() {
|
|
1118
1138
|
return currentTimeLine(day) !== null;
|
|
1119
1139
|
},
|
|
1120
1140
|
get children() {
|
|
1121
|
-
return _$ssr(_tmpl$
|
|
1141
|
+
return _$ssr(_tmpl$27, _$ssrStyleProperty("top:", `${_$escape(currentTimeLine(day) ?? 0, true)}%`));
|
|
1122
1142
|
}
|
|
1123
1143
|
})), _$escape(_$createComponent(For, {
|
|
1124
1144
|
get each() {
|
|
@@ -1147,12 +1167,12 @@ const TimeGridView = props => {
|
|
|
1147
1167
|
children: event => {
|
|
1148
1168
|
const layout = eventLayout(event);
|
|
1149
1169
|
const short = event.endDate.getTime() - event.startDate.getTime() < 60 * 60_000;
|
|
1150
|
-
return _$ssr(_tmpl$
|
|
1170
|
+
return _$ssr(_tmpl$30, _$ssrAttribute("data-short", short ? "true" : _$escape(undefined, true), false), _$ssrStyleProperty("top:", `${_$escape(layout.top, true)}%`) + _$ssrStyleProperty(";height:", `${_$escape(layout.height, true)}%`), _$escape(_$createComponent(Show, {
|
|
1151
1171
|
get when() {
|
|
1152
1172
|
return event.title;
|
|
1153
1173
|
},
|
|
1154
1174
|
get children() {
|
|
1155
|
-
return _$ssr(_tmpl$
|
|
1175
|
+
return _$ssr(_tmpl$29, _$escape(event.title));
|
|
1156
1176
|
}
|
|
1157
1177
|
})), _$escape(formatTime(event.startDate, dateConfig())), _$escape(formatTime(event.endDate, dateConfig())));
|
|
1158
1178
|
}
|
|
@@ -1198,7 +1218,7 @@ const TimeGridView = props => {
|
|
|
1198
1218
|
onCancel: clearInteraction
|
|
1199
1219
|
});
|
|
1200
1220
|
};
|
|
1201
|
-
return _$ssr(_tmpl$
|
|
1221
|
+
return _$ssr(_tmpl$32, _$ssrStyleProperty("top:", `${_$escape(layout.top, true)}%`) + _$ssrStyleProperty(";height:", `${_$escape(layout.height, true)}%`) + _$ssrStyleProperty(";left:", _$escape(position.left, true)) + _$ssrStyleProperty(";width:", _$escape(position.width, true)) + _$ssrStyleProperty(";z-index:", _$escape(String(20 + layoutItem.lane), true)), _$escape(_$createComponent(EventChip, {
|
|
1202
1222
|
event: event,
|
|
1203
1223
|
get owner() {
|
|
1204
1224
|
return props.owner;
|
|
@@ -1218,7 +1238,7 @@ const TimeGridView = props => {
|
|
|
1218
1238
|
return props.owner.onEventResize;
|
|
1219
1239
|
},
|
|
1220
1240
|
get children() {
|
|
1221
|
-
return _$ssr(_tmpl$
|
|
1241
|
+
return _$ssr(_tmpl$31, _$ssrAttribute("aria-label", _$escape(messages().resizeEvent, true), false));
|
|
1222
1242
|
}
|
|
1223
1243
|
})));
|
|
1224
1244
|
}
|
|
@@ -1230,14 +1250,14 @@ const TimeGridView = props => {
|
|
|
1230
1250
|
const layout = timeRangeLayout(overflow.groupStartDate, overflow.groupEndDate);
|
|
1231
1251
|
const key = `${dayKey}-${overflow.groupId}`;
|
|
1232
1252
|
const hiddenTitle = () => overflow.hiddenEvents.map(event => `${formatTime(event.startDate, dateConfig())} ${event.title}`).join("\n");
|
|
1233
|
-
return [_$ssr(_tmpl$
|
|
1253
|
+
return [_$ssr(_tmpl$33, _$ssrStyleProperty("top:", `${_$escape(layout.top, true)}%`) + _$ssrStyleProperty(";height:", `${_$escape(layout.height, true)}%`), _$ssrAttribute("title", _$escape(hiddenTitle(), true), false) + _$ssrAttribute("aria-label", _$escape(messages().hiddenOverlappingEvents({
|
|
1234
1254
|
count: overflow.hiddenEvents.length
|
|
1235
1255
|
}), true), false), _$escape(overflow.hiddenEvents.length)), _$createComponent(Show, {
|
|
1236
1256
|
get when() {
|
|
1237
1257
|
return expandedOverflow() === key;
|
|
1238
1258
|
},
|
|
1239
1259
|
get children() {
|
|
1240
|
-
return _$ssr(_tmpl$
|
|
1260
|
+
return _$ssr(_tmpl$34, _$ssrStyleProperty("top:", `${_$escape(layout.top, true)}%`), _$escape(formatTime(overflow.groupStartDate, dateConfig())), _$escape(formatTime(overflow.groupEndDate, dateConfig())), _$escape(_$createComponent(For, {
|
|
1241
1261
|
get each() {
|
|
1242
1262
|
return overflow.hiddenEvents;
|
|
1243
1263
|
},
|
|
@@ -1296,11 +1316,11 @@ const YearView = props => {
|
|
|
1296
1316
|
};
|
|
1297
1317
|
});
|
|
1298
1318
|
});
|
|
1299
|
-
return _$ssr(_tmpl$
|
|
1319
|
+
return _$ssr(_tmpl$35, _$escape(_$createComponent(For, {
|
|
1300
1320
|
get each() {
|
|
1301
1321
|
return months();
|
|
1302
1322
|
},
|
|
1303
|
-
children: month => _$ssr(_tmpl$
|
|
1323
|
+
children: month => _$ssr(_tmpl$36, _$escape(month.label), _$escape(_$createComponent(For, {
|
|
1304
1324
|
get each() {
|
|
1305
1325
|
return month.days;
|
|
1306
1326
|
},
|
|
@@ -1323,7 +1343,7 @@ const YearView = props => {
|
|
|
1323
1343
|
get when() {
|
|
1324
1344
|
return day.events[0];
|
|
1325
1345
|
},
|
|
1326
|
-
children: event => _$ssr(_tmpl$
|
|
1346
|
+
children: event => _$ssr(_tmpl$37, _$ssrAttribute("data-color", event().colorHex ? _$escape(undefined, true) : _$escape(event().color ?? "blue", true), false) + _$ssrAttribute("data-today", day.isToday ? "true" : _$escape(undefined, true), false), _$ssrStyle(event().colorHex ? {
|
|
1327
1347
|
"background-color": day.isToday ? "white" : event().colorHex
|
|
1328
1348
|
} : undefined))
|
|
1329
1349
|
})];
|
|
@@ -1336,7 +1356,7 @@ const MobileMonthView = props => {
|
|
|
1336
1356
|
const dateConfig = createMemo(() => ownerDateConfig(props.owner));
|
|
1337
1357
|
const selectedDateKey = createMemo(() => calendar.formatDateKey(props.selectedDate, dateConfig()));
|
|
1338
1358
|
const selectedEvents = createMemo(() => props.events.filter(event => event.dayKey === selectedDateKey()));
|
|
1339
|
-
return _$ssr(_tmpl$
|
|
1359
|
+
return _$ssr(_tmpl$39, _$escape(_$createComponent(MonthView, {
|
|
1340
1360
|
get owner() {
|
|
1341
1361
|
return {
|
|
1342
1362
|
...props.owner,
|
|
@@ -1366,10 +1386,10 @@ const MobileMonthView = props => {
|
|
|
1366
1386
|
return selectedEvents().length > 0;
|
|
1367
1387
|
},
|
|
1368
1388
|
get fallback() {
|
|
1369
|
-
return _$ssr(_tmpl$
|
|
1389
|
+
return _$ssr(_tmpl$40, _$escape(props.labels.noEvents));
|
|
1370
1390
|
},
|
|
1371
1391
|
get children() {
|
|
1372
|
-
return _$ssr(_tmpl$
|
|
1392
|
+
return _$ssr(_tmpl$38, _$escape(_$createComponent(For, {
|
|
1373
1393
|
get each() {
|
|
1374
1394
|
return selectedEvents();
|
|
1375
1395
|
},
|
|
@@ -1386,8 +1406,8 @@ const MobileMonthView = props => {
|
|
|
1386
1406
|
}
|
|
1387
1407
|
})));
|
|
1388
1408
|
};
|
|
1389
|
-
const CalendarBody = props => _$ssr(_tmpl$
|
|
1390
|
-
const
|
|
1409
|
+
const CalendarBody = props => _$ssr(_tmpl$41, _$escape(props.children));
|
|
1410
|
+
const CalendarRoot = props => {
|
|
1391
1411
|
const messages = useUiMessages();
|
|
1392
1412
|
// Subviews derive their date config from the owner props, so the inherited
|
|
1393
1413
|
// render locale is merged here once; an explicit dateConfig.locale wins.
|
|
@@ -1398,6 +1418,7 @@ const Calendar = props => {
|
|
|
1398
1418
|
}
|
|
1399
1419
|
});
|
|
1400
1420
|
const view = () => props.view ?? "month";
|
|
1421
|
+
const custom = () => props.customViews?.some(option => option.value === view()) ?? false;
|
|
1401
1422
|
const dateConfig = createMemo(() => ownerDateConfig(owner));
|
|
1402
1423
|
const safeDate = value => {
|
|
1403
1424
|
const parsed = parseDate(value, dateConfig());
|
|
@@ -1432,7 +1453,7 @@ const Calendar = props => {
|
|
|
1432
1453
|
document.removeEventListener("visibilitychange", updateNow);
|
|
1433
1454
|
});
|
|
1434
1455
|
});
|
|
1435
|
-
return _$ssr(_tmpl$
|
|
1456
|
+
return _$ssr(_tmpl$42, `k2b-content-calendar ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-busy", props.navigationPending ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(CalendarHeader, {
|
|
1436
1457
|
get date() {
|
|
1437
1458
|
return date();
|
|
1438
1459
|
},
|
|
@@ -1445,38 +1466,24 @@ const Calendar = props => {
|
|
|
1445
1466
|
owner: owner
|
|
1446
1467
|
})), _$escape(props.toolbarContent), _$escape(_$createComponent(Show, {
|
|
1447
1468
|
get when() {
|
|
1448
|
-
return
|
|
1469
|
+
return !custom();
|
|
1449
1470
|
},
|
|
1450
1471
|
get fallback() {
|
|
1451
1472
|
return _$createComponent(CalendarBody, {
|
|
1452
1473
|
get children() {
|
|
1453
|
-
return
|
|
1454
|
-
owner: owner,
|
|
1455
|
-
get date() {
|
|
1456
|
-
return date();
|
|
1457
|
-
},
|
|
1458
|
-
get now() {
|
|
1459
|
-
return now();
|
|
1460
|
-
},
|
|
1461
|
-
get events() {
|
|
1462
|
-
return normalizedEvents();
|
|
1463
|
-
},
|
|
1464
|
-
get labels() {
|
|
1465
|
-
return mergedLabels();
|
|
1466
|
-
}
|
|
1467
|
-
});
|
|
1474
|
+
return props.children;
|
|
1468
1475
|
}
|
|
1469
1476
|
});
|
|
1470
1477
|
},
|
|
1471
1478
|
get children() {
|
|
1472
1479
|
return _$createComponent(Show, {
|
|
1473
1480
|
get when() {
|
|
1474
|
-
return view() !== "
|
|
1481
|
+
return view() !== "month";
|
|
1475
1482
|
},
|
|
1476
1483
|
get fallback() {
|
|
1477
1484
|
return _$createComponent(CalendarBody, {
|
|
1478
1485
|
get children() {
|
|
1479
|
-
return _$createComponent(
|
|
1486
|
+
return _$createComponent(MonthView, {
|
|
1480
1487
|
owner: owner,
|
|
1481
1488
|
get date() {
|
|
1482
1489
|
return date();
|
|
@@ -1486,6 +1493,9 @@ const Calendar = props => {
|
|
|
1486
1493
|
},
|
|
1487
1494
|
get events() {
|
|
1488
1495
|
return normalizedEvents();
|
|
1496
|
+
},
|
|
1497
|
+
get labels() {
|
|
1498
|
+
return mergedLabels();
|
|
1489
1499
|
}
|
|
1490
1500
|
});
|
|
1491
1501
|
}
|
|
@@ -1494,12 +1504,12 @@ const Calendar = props => {
|
|
|
1494
1504
|
get children() {
|
|
1495
1505
|
return _$createComponent(Show, {
|
|
1496
1506
|
get when() {
|
|
1497
|
-
return view() !== "
|
|
1507
|
+
return view() !== "year";
|
|
1498
1508
|
},
|
|
1499
1509
|
get fallback() {
|
|
1500
1510
|
return _$createComponent(CalendarBody, {
|
|
1501
1511
|
get children() {
|
|
1502
|
-
return _$createComponent(
|
|
1512
|
+
return _$createComponent(YearView, {
|
|
1503
1513
|
owner: owner,
|
|
1504
1514
|
get date() {
|
|
1505
1515
|
return date();
|
|
@@ -1507,36 +1517,61 @@ const Calendar = props => {
|
|
|
1507
1517
|
get now() {
|
|
1508
1518
|
return now();
|
|
1509
1519
|
},
|
|
1510
|
-
get selectedDate() {
|
|
1511
|
-
return selectedDate();
|
|
1512
|
-
},
|
|
1513
1520
|
get events() {
|
|
1514
1521
|
return normalizedEvents();
|
|
1515
|
-
},
|
|
1516
|
-
get labels() {
|
|
1517
|
-
return mergedLabels();
|
|
1518
1522
|
}
|
|
1519
1523
|
});
|
|
1520
1524
|
}
|
|
1521
1525
|
});
|
|
1522
1526
|
},
|
|
1523
1527
|
get children() {
|
|
1524
|
-
return _$createComponent(
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
return date();
|
|
1528
|
-
},
|
|
1529
|
-
get now() {
|
|
1530
|
-
return now();
|
|
1528
|
+
return _$createComponent(Show, {
|
|
1529
|
+
get when() {
|
|
1530
|
+
return view() !== "mobile-month";
|
|
1531
1531
|
},
|
|
1532
|
-
get
|
|
1533
|
-
return
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1532
|
+
get fallback() {
|
|
1533
|
+
return _$createComponent(CalendarBody, {
|
|
1534
|
+
get children() {
|
|
1535
|
+
return _$createComponent(MobileMonthView, {
|
|
1536
|
+
owner: owner,
|
|
1537
|
+
get date() {
|
|
1538
|
+
return date();
|
|
1539
|
+
},
|
|
1540
|
+
get now() {
|
|
1541
|
+
return now();
|
|
1542
|
+
},
|
|
1543
|
+
get selectedDate() {
|
|
1544
|
+
return selectedDate();
|
|
1545
|
+
},
|
|
1546
|
+
get events() {
|
|
1547
|
+
return normalizedEvents();
|
|
1548
|
+
},
|
|
1549
|
+
get labels() {
|
|
1550
|
+
return mergedLabels();
|
|
1551
|
+
}
|
|
1552
|
+
});
|
|
1553
|
+
}
|
|
1554
|
+
});
|
|
1537
1555
|
},
|
|
1538
|
-
get
|
|
1539
|
-
return
|
|
1556
|
+
get children() {
|
|
1557
|
+
return _$createComponent(TimeGridView, {
|
|
1558
|
+
owner: owner,
|
|
1559
|
+
get date() {
|
|
1560
|
+
return date();
|
|
1561
|
+
},
|
|
1562
|
+
get now() {
|
|
1563
|
+
return now();
|
|
1564
|
+
},
|
|
1565
|
+
get events() {
|
|
1566
|
+
return normalizedEvents();
|
|
1567
|
+
},
|
|
1568
|
+
get labels() {
|
|
1569
|
+
return mergedLabels();
|
|
1570
|
+
},
|
|
1571
|
+
get days() {
|
|
1572
|
+
return days();
|
|
1573
|
+
}
|
|
1574
|
+
});
|
|
1540
1575
|
}
|
|
1541
1576
|
});
|
|
1542
1577
|
}
|
|
@@ -1546,5 +1581,11 @@ const Calendar = props => {
|
|
|
1546
1581
|
}
|
|
1547
1582
|
})));
|
|
1548
1583
|
};
|
|
1584
|
+
|
|
1585
|
+
/** JSX infers the values of `customViews`; inference from the last signature, as in `createComponent`, sees plain props. */
|
|
1586
|
+
|
|
1587
|
+
function Calendar(props) {
|
|
1588
|
+
return CalendarRoot(props);
|
|
1589
|
+
}
|
|
1549
1590
|
export default Calendar;
|
|
1550
1591
|
//# sourceMappingURL=Calendar.js.map
|