@almadar/ui 5.126.0 → 5.127.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/avl/index.cjs +52 -39
- package/dist/avl/index.js +53 -40
- package/dist/components/index.cjs +51 -38
- package/dist/components/index.d.cts +27 -1
- package/dist/components/index.d.ts +27 -1
- package/dist/components/index.js +51 -38
- package/dist/providers/index.cjs +51 -38
- package/dist/providers/index.js +51 -38
- package/dist/runtime/index.cjs +52 -39
- package/dist/runtime/index.js +53 -40
- package/package.json +5 -5
package/dist/components/index.js
CHANGED
|
@@ -14413,6 +14413,32 @@ var init_ButtonGroup = __esm({
|
|
|
14413
14413
|
ButtonGroup.displayName = "ButtonGroup";
|
|
14414
14414
|
}
|
|
14415
14415
|
});
|
|
14416
|
+
|
|
14417
|
+
// lib/getNestedValue.ts
|
|
14418
|
+
function getNestedValue(obj, path) {
|
|
14419
|
+
if (obj === null || obj === void 0 || !path) {
|
|
14420
|
+
return void 0;
|
|
14421
|
+
}
|
|
14422
|
+
if (!path.includes(".")) {
|
|
14423
|
+
return obj[path];
|
|
14424
|
+
}
|
|
14425
|
+
const parts = path.split(".");
|
|
14426
|
+
let value = obj;
|
|
14427
|
+
for (const part of parts) {
|
|
14428
|
+
if (value === null || value === void 0) {
|
|
14429
|
+
return void 0;
|
|
14430
|
+
}
|
|
14431
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
14432
|
+
return void 0;
|
|
14433
|
+
}
|
|
14434
|
+
value = value[part];
|
|
14435
|
+
}
|
|
14436
|
+
return value;
|
|
14437
|
+
}
|
|
14438
|
+
var init_getNestedValue = __esm({
|
|
14439
|
+
"lib/getNestedValue.ts"() {
|
|
14440
|
+
}
|
|
14441
|
+
});
|
|
14416
14442
|
function useSwipeGesture(callbacks, options = {}) {
|
|
14417
14443
|
const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
|
|
14418
14444
|
const startX = useRef(0);
|
|
@@ -14526,11 +14552,15 @@ function getWeekDays(start) {
|
|
|
14526
14552
|
}
|
|
14527
14553
|
return days;
|
|
14528
14554
|
}
|
|
14529
|
-
function
|
|
14555
|
+
function eventStartDate(event, startField) {
|
|
14556
|
+
const raw = getNestedValue(event, startField);
|
|
14557
|
+
return new Date(raw ?? "");
|
|
14558
|
+
}
|
|
14559
|
+
function generateDefaultTimeSlots(events2, startField) {
|
|
14530
14560
|
let first = DEFAULT_FIRST_HOUR;
|
|
14531
14561
|
let last = DEFAULT_LAST_HOUR;
|
|
14532
14562
|
for (const ev of events2) {
|
|
14533
|
-
const start =
|
|
14563
|
+
const start = eventStartDate(ev, startField);
|
|
14534
14564
|
if (Number.isNaN(start.getTime())) continue;
|
|
14535
14565
|
const hour = start.getHours();
|
|
14536
14566
|
if (hour < first) first = hour;
|
|
@@ -14542,8 +14572,8 @@ function generateDefaultTimeSlots(events2) {
|
|
|
14542
14572
|
}
|
|
14543
14573
|
return slots;
|
|
14544
14574
|
}
|
|
14545
|
-
function eventInSlot(event, day, slotTime) {
|
|
14546
|
-
const eventStart =
|
|
14575
|
+
function eventInSlot(event, day, slotTime, startField) {
|
|
14576
|
+
const eventStart = eventStartDate(event, startField);
|
|
14547
14577
|
if (Number.isNaN(eventStart.getTime())) return false;
|
|
14548
14578
|
const [slotHour] = slotTime.split(":").map(Number);
|
|
14549
14579
|
return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
|
|
@@ -14560,7 +14590,12 @@ function CalendarGrid({
|
|
|
14560
14590
|
longPressPayload,
|
|
14561
14591
|
swipeLeftEvent,
|
|
14562
14592
|
swipeRightEvent,
|
|
14563
|
-
dayWindow = "auto"
|
|
14593
|
+
dayWindow = "auto",
|
|
14594
|
+
titleField = "title",
|
|
14595
|
+
startField = "startTime",
|
|
14596
|
+
colorField = "color",
|
|
14597
|
+
children,
|
|
14598
|
+
renderItem
|
|
14564
14599
|
}) {
|
|
14565
14600
|
const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
|
|
14566
14601
|
const eventBus = useEventBus();
|
|
@@ -14575,8 +14610,8 @@ function CalendarGrid({
|
|
|
14575
14610
|
[resolvedWeekStart]
|
|
14576
14611
|
);
|
|
14577
14612
|
const resolvedTimeSlots = useMemo(
|
|
14578
|
-
() => timeSlots ?? generateDefaultTimeSlots(evs),
|
|
14579
|
-
[timeSlots, evs]
|
|
14613
|
+
() => timeSlots ?? generateDefaultTimeSlots(evs, startField),
|
|
14614
|
+
[timeSlots, evs, startField]
|
|
14580
14615
|
);
|
|
14581
14616
|
const visibleCount = useDayWindow(dayWindow);
|
|
14582
14617
|
const [dayOffset, setDayOffset] = useState(0);
|
|
@@ -14613,9 +14648,9 @@ function CalendarGrid({
|
|
|
14613
14648
|
);
|
|
14614
14649
|
const eventsForDayCount = useCallback(
|
|
14615
14650
|
(day) => evs.filter(
|
|
14616
|
-
(ev) =>
|
|
14651
|
+
(ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
|
|
14617
14652
|
).length,
|
|
14618
|
-
[events2]
|
|
14653
|
+
[events2, startField]
|
|
14619
14654
|
);
|
|
14620
14655
|
const swipeCallbacks = useMemo(() => ({
|
|
14621
14656
|
onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
|
|
@@ -14634,8 +14669,11 @@ function CalendarGrid({
|
|
|
14634
14669
|
eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
|
|
14635
14670
|
}, 500);
|
|
14636
14671
|
}, [longPressEvent, longPressPayload, eventBus]);
|
|
14672
|
+
const renderChip = children ?? renderItem;
|
|
14637
14673
|
const renderEvent = (event) => {
|
|
14638
|
-
const color = event
|
|
14674
|
+
const color = getNestedValue(event, colorField);
|
|
14675
|
+
const label = String(getNestedValue(event, titleField) ?? "");
|
|
14676
|
+
const eventIndex = evs.indexOf(event);
|
|
14639
14677
|
return /* @__PURE__ */ jsx(
|
|
14640
14678
|
Box,
|
|
14641
14679
|
{
|
|
@@ -14647,7 +14685,7 @@ function CalendarGrid({
|
|
|
14647
14685
|
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
14648
14686
|
),
|
|
14649
14687
|
onClick: (e) => handleEventClick(event, e),
|
|
14650
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children:
|
|
14688
|
+
children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
|
|
14651
14689
|
},
|
|
14652
14690
|
event.id
|
|
14653
14691
|
);
|
|
@@ -14731,7 +14769,7 @@ function CalendarGrid({
|
|
|
14731
14769
|
) }),
|
|
14732
14770
|
visibleDays.map((day) => {
|
|
14733
14771
|
const slotEvents = evs.filter(
|
|
14734
|
-
(ev) => eventInSlot(ev, day, time)
|
|
14772
|
+
(ev) => eventInSlot(ev, day, time, startField)
|
|
14735
14773
|
);
|
|
14736
14774
|
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
14737
14775
|
return /* @__PURE__ */ jsx(
|
|
@@ -14768,6 +14806,7 @@ var init_CalendarGrid = __esm({
|
|
|
14768
14806
|
"components/core/molecules/CalendarGrid.tsx"() {
|
|
14769
14807
|
"use client";
|
|
14770
14808
|
init_cn();
|
|
14809
|
+
init_getNestedValue();
|
|
14771
14810
|
init_Box();
|
|
14772
14811
|
init_Button();
|
|
14773
14812
|
init_Stack();
|
|
@@ -16379,32 +16418,6 @@ var init_Canvas = __esm({
|
|
|
16379
16418
|
Canvas.displayName = "Canvas";
|
|
16380
16419
|
}
|
|
16381
16420
|
});
|
|
16382
|
-
|
|
16383
|
-
// lib/getNestedValue.ts
|
|
16384
|
-
function getNestedValue(obj, path) {
|
|
16385
|
-
if (obj === null || obj === void 0 || !path) {
|
|
16386
|
-
return void 0;
|
|
16387
|
-
}
|
|
16388
|
-
if (!path.includes(".")) {
|
|
16389
|
-
return obj[path];
|
|
16390
|
-
}
|
|
16391
|
-
const parts = path.split(".");
|
|
16392
|
-
let value = obj;
|
|
16393
|
-
for (const part of parts) {
|
|
16394
|
-
if (value === null || value === void 0) {
|
|
16395
|
-
return void 0;
|
|
16396
|
-
}
|
|
16397
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
16398
|
-
return void 0;
|
|
16399
|
-
}
|
|
16400
|
-
value = value[part];
|
|
16401
|
-
}
|
|
16402
|
-
return value;
|
|
16403
|
-
}
|
|
16404
|
-
var init_getNestedValue = __esm({
|
|
16405
|
-
"lib/getNestedValue.ts"() {
|
|
16406
|
-
}
|
|
16407
|
-
});
|
|
16408
16421
|
var Pagination;
|
|
16409
16422
|
var init_Pagination = __esm({
|
|
16410
16423
|
"components/core/molecules/Pagination.tsx"() {
|
package/dist/providers/index.cjs
CHANGED
|
@@ -18876,6 +18876,32 @@ var init_ButtonGroup = __esm({
|
|
|
18876
18876
|
ButtonGroup.displayName = "ButtonGroup";
|
|
18877
18877
|
}
|
|
18878
18878
|
});
|
|
18879
|
+
|
|
18880
|
+
// lib/getNestedValue.ts
|
|
18881
|
+
function getNestedValue(obj, path) {
|
|
18882
|
+
if (obj === null || obj === void 0 || !path) {
|
|
18883
|
+
return void 0;
|
|
18884
|
+
}
|
|
18885
|
+
if (!path.includes(".")) {
|
|
18886
|
+
return obj[path];
|
|
18887
|
+
}
|
|
18888
|
+
const parts = path.split(".");
|
|
18889
|
+
let value = obj;
|
|
18890
|
+
for (const part of parts) {
|
|
18891
|
+
if (value === null || value === void 0) {
|
|
18892
|
+
return void 0;
|
|
18893
|
+
}
|
|
18894
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18895
|
+
return void 0;
|
|
18896
|
+
}
|
|
18897
|
+
value = value[part];
|
|
18898
|
+
}
|
|
18899
|
+
return value;
|
|
18900
|
+
}
|
|
18901
|
+
var init_getNestedValue = __esm({
|
|
18902
|
+
"lib/getNestedValue.ts"() {
|
|
18903
|
+
}
|
|
18904
|
+
});
|
|
18879
18905
|
function useSwipeGesture(callbacks, options = {}) {
|
|
18880
18906
|
const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
|
|
18881
18907
|
const startX = React84.useRef(0);
|
|
@@ -18989,11 +19015,15 @@ function getWeekDays(start) {
|
|
|
18989
19015
|
}
|
|
18990
19016
|
return days;
|
|
18991
19017
|
}
|
|
18992
|
-
function
|
|
19018
|
+
function eventStartDate(event, startField) {
|
|
19019
|
+
const raw = getNestedValue(event, startField);
|
|
19020
|
+
return new Date(raw ?? "");
|
|
19021
|
+
}
|
|
19022
|
+
function generateDefaultTimeSlots(events2, startField) {
|
|
18993
19023
|
let first = DEFAULT_FIRST_HOUR;
|
|
18994
19024
|
let last = DEFAULT_LAST_HOUR;
|
|
18995
19025
|
for (const ev of events2) {
|
|
18996
|
-
const start =
|
|
19026
|
+
const start = eventStartDate(ev, startField);
|
|
18997
19027
|
if (Number.isNaN(start.getTime())) continue;
|
|
18998
19028
|
const hour = start.getHours();
|
|
18999
19029
|
if (hour < first) first = hour;
|
|
@@ -19005,8 +19035,8 @@ function generateDefaultTimeSlots(events2) {
|
|
|
19005
19035
|
}
|
|
19006
19036
|
return slots;
|
|
19007
19037
|
}
|
|
19008
|
-
function eventInSlot(event, day, slotTime) {
|
|
19009
|
-
const eventStart =
|
|
19038
|
+
function eventInSlot(event, day, slotTime, startField) {
|
|
19039
|
+
const eventStart = eventStartDate(event, startField);
|
|
19010
19040
|
if (Number.isNaN(eventStart.getTime())) return false;
|
|
19011
19041
|
const [slotHour] = slotTime.split(":").map(Number);
|
|
19012
19042
|
return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
|
|
@@ -19023,7 +19053,12 @@ function CalendarGrid({
|
|
|
19023
19053
|
longPressPayload,
|
|
19024
19054
|
swipeLeftEvent,
|
|
19025
19055
|
swipeRightEvent,
|
|
19026
|
-
dayWindow = "auto"
|
|
19056
|
+
dayWindow = "auto",
|
|
19057
|
+
titleField = "title",
|
|
19058
|
+
startField = "startTime",
|
|
19059
|
+
colorField = "color",
|
|
19060
|
+
children,
|
|
19061
|
+
renderItem
|
|
19027
19062
|
}) {
|
|
19028
19063
|
const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
|
|
19029
19064
|
const eventBus = useEventBus();
|
|
@@ -19038,8 +19073,8 @@ function CalendarGrid({
|
|
|
19038
19073
|
[resolvedWeekStart]
|
|
19039
19074
|
);
|
|
19040
19075
|
const resolvedTimeSlots = React84.useMemo(
|
|
19041
|
-
() => timeSlots ?? generateDefaultTimeSlots(evs),
|
|
19042
|
-
[timeSlots, evs]
|
|
19076
|
+
() => timeSlots ?? generateDefaultTimeSlots(evs, startField),
|
|
19077
|
+
[timeSlots, evs, startField]
|
|
19043
19078
|
);
|
|
19044
19079
|
const visibleCount = useDayWindow(dayWindow);
|
|
19045
19080
|
const [dayOffset, setDayOffset] = React84.useState(0);
|
|
@@ -19076,9 +19111,9 @@ function CalendarGrid({
|
|
|
19076
19111
|
);
|
|
19077
19112
|
const eventsForDayCount = React84.useCallback(
|
|
19078
19113
|
(day) => evs.filter(
|
|
19079
|
-
(ev) =>
|
|
19114
|
+
(ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
|
|
19080
19115
|
).length,
|
|
19081
|
-
[events2]
|
|
19116
|
+
[events2, startField]
|
|
19082
19117
|
);
|
|
19083
19118
|
const swipeCallbacks = React84.useMemo(() => ({
|
|
19084
19119
|
onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
|
|
@@ -19097,8 +19132,11 @@ function CalendarGrid({
|
|
|
19097
19132
|
eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
|
|
19098
19133
|
}, 500);
|
|
19099
19134
|
}, [longPressEvent, longPressPayload, eventBus]);
|
|
19135
|
+
const renderChip = children ?? renderItem;
|
|
19100
19136
|
const renderEvent = (event) => {
|
|
19101
|
-
const color = event
|
|
19137
|
+
const color = getNestedValue(event, colorField);
|
|
19138
|
+
const label = String(getNestedValue(event, titleField) ?? "");
|
|
19139
|
+
const eventIndex = evs.indexOf(event);
|
|
19102
19140
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19103
19141
|
Box,
|
|
19104
19142
|
{
|
|
@@ -19110,7 +19148,7 @@ function CalendarGrid({
|
|
|
19110
19148
|
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
19111
19149
|
),
|
|
19112
19150
|
onClick: (e) => handleEventClick(event, e),
|
|
19113
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children:
|
|
19151
|
+
children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
|
|
19114
19152
|
},
|
|
19115
19153
|
event.id
|
|
19116
19154
|
);
|
|
@@ -19194,7 +19232,7 @@ function CalendarGrid({
|
|
|
19194
19232
|
) }),
|
|
19195
19233
|
visibleDays.map((day) => {
|
|
19196
19234
|
const slotEvents = evs.filter(
|
|
19197
|
-
(ev) => eventInSlot(ev, day, time)
|
|
19235
|
+
(ev) => eventInSlot(ev, day, time, startField)
|
|
19198
19236
|
);
|
|
19199
19237
|
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
19200
19238
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -19231,6 +19269,7 @@ var init_CalendarGrid = __esm({
|
|
|
19231
19269
|
"components/core/molecules/CalendarGrid.tsx"() {
|
|
19232
19270
|
"use client";
|
|
19233
19271
|
init_cn();
|
|
19272
|
+
init_getNestedValue();
|
|
19234
19273
|
init_Box();
|
|
19235
19274
|
init_Button();
|
|
19236
19275
|
init_Stack();
|
|
@@ -19247,32 +19286,6 @@ var init_CalendarGrid = __esm({
|
|
|
19247
19286
|
CalendarGrid.displayName = "CalendarGrid";
|
|
19248
19287
|
}
|
|
19249
19288
|
});
|
|
19250
|
-
|
|
19251
|
-
// lib/getNestedValue.ts
|
|
19252
|
-
function getNestedValue(obj, path) {
|
|
19253
|
-
if (obj === null || obj === void 0 || !path) {
|
|
19254
|
-
return void 0;
|
|
19255
|
-
}
|
|
19256
|
-
if (!path.includes(".")) {
|
|
19257
|
-
return obj[path];
|
|
19258
|
-
}
|
|
19259
|
-
const parts = path.split(".");
|
|
19260
|
-
let value = obj;
|
|
19261
|
-
for (const part of parts) {
|
|
19262
|
-
if (value === null || value === void 0) {
|
|
19263
|
-
return void 0;
|
|
19264
|
-
}
|
|
19265
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
19266
|
-
return void 0;
|
|
19267
|
-
}
|
|
19268
|
-
value = value[part];
|
|
19269
|
-
}
|
|
19270
|
-
return value;
|
|
19271
|
-
}
|
|
19272
|
-
var init_getNestedValue = __esm({
|
|
19273
|
-
"lib/getNestedValue.ts"() {
|
|
19274
|
-
}
|
|
19275
|
-
});
|
|
19276
19289
|
var Pagination;
|
|
19277
19290
|
var init_Pagination = __esm({
|
|
19278
19291
|
"components/core/molecules/Pagination.tsx"() {
|
package/dist/providers/index.js
CHANGED
|
@@ -18801,6 +18801,32 @@ var init_ButtonGroup = __esm({
|
|
|
18801
18801
|
ButtonGroup.displayName = "ButtonGroup";
|
|
18802
18802
|
}
|
|
18803
18803
|
});
|
|
18804
|
+
|
|
18805
|
+
// lib/getNestedValue.ts
|
|
18806
|
+
function getNestedValue(obj, path) {
|
|
18807
|
+
if (obj === null || obj === void 0 || !path) {
|
|
18808
|
+
return void 0;
|
|
18809
|
+
}
|
|
18810
|
+
if (!path.includes(".")) {
|
|
18811
|
+
return obj[path];
|
|
18812
|
+
}
|
|
18813
|
+
const parts = path.split(".");
|
|
18814
|
+
let value = obj;
|
|
18815
|
+
for (const part of parts) {
|
|
18816
|
+
if (value === null || value === void 0) {
|
|
18817
|
+
return void 0;
|
|
18818
|
+
}
|
|
18819
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18820
|
+
return void 0;
|
|
18821
|
+
}
|
|
18822
|
+
value = value[part];
|
|
18823
|
+
}
|
|
18824
|
+
return value;
|
|
18825
|
+
}
|
|
18826
|
+
var init_getNestedValue = __esm({
|
|
18827
|
+
"lib/getNestedValue.ts"() {
|
|
18828
|
+
}
|
|
18829
|
+
});
|
|
18804
18830
|
function useSwipeGesture(callbacks, options = {}) {
|
|
18805
18831
|
const { threshold = 50, velocityThreshold = 0.3, preventDefault = false } = options;
|
|
18806
18832
|
const startX = useRef(0);
|
|
@@ -18914,11 +18940,15 @@ function getWeekDays(start) {
|
|
|
18914
18940
|
}
|
|
18915
18941
|
return days;
|
|
18916
18942
|
}
|
|
18917
|
-
function
|
|
18943
|
+
function eventStartDate(event, startField) {
|
|
18944
|
+
const raw = getNestedValue(event, startField);
|
|
18945
|
+
return new Date(raw ?? "");
|
|
18946
|
+
}
|
|
18947
|
+
function generateDefaultTimeSlots(events2, startField) {
|
|
18918
18948
|
let first = DEFAULT_FIRST_HOUR;
|
|
18919
18949
|
let last = DEFAULT_LAST_HOUR;
|
|
18920
18950
|
for (const ev of events2) {
|
|
18921
|
-
const start =
|
|
18951
|
+
const start = eventStartDate(ev, startField);
|
|
18922
18952
|
if (Number.isNaN(start.getTime())) continue;
|
|
18923
18953
|
const hour = start.getHours();
|
|
18924
18954
|
if (hour < first) first = hour;
|
|
@@ -18930,8 +18960,8 @@ function generateDefaultTimeSlots(events2) {
|
|
|
18930
18960
|
}
|
|
18931
18961
|
return slots;
|
|
18932
18962
|
}
|
|
18933
|
-
function eventInSlot(event, day, slotTime) {
|
|
18934
|
-
const eventStart =
|
|
18963
|
+
function eventInSlot(event, day, slotTime, startField) {
|
|
18964
|
+
const eventStart = eventStartDate(event, startField);
|
|
18935
18965
|
if (Number.isNaN(eventStart.getTime())) return false;
|
|
18936
18966
|
const [slotHour] = slotTime.split(":").map(Number);
|
|
18937
18967
|
return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
|
|
@@ -18948,7 +18978,12 @@ function CalendarGrid({
|
|
|
18948
18978
|
longPressPayload,
|
|
18949
18979
|
swipeLeftEvent,
|
|
18950
18980
|
swipeRightEvent,
|
|
18951
|
-
dayWindow = "auto"
|
|
18981
|
+
dayWindow = "auto",
|
|
18982
|
+
titleField = "title",
|
|
18983
|
+
startField = "startTime",
|
|
18984
|
+
colorField = "color",
|
|
18985
|
+
children,
|
|
18986
|
+
renderItem
|
|
18952
18987
|
}) {
|
|
18953
18988
|
const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
|
|
18954
18989
|
const eventBus = useEventBus();
|
|
@@ -18963,8 +18998,8 @@ function CalendarGrid({
|
|
|
18963
18998
|
[resolvedWeekStart]
|
|
18964
18999
|
);
|
|
18965
19000
|
const resolvedTimeSlots = useMemo(
|
|
18966
|
-
() => timeSlots ?? generateDefaultTimeSlots(evs),
|
|
18967
|
-
[timeSlots, evs]
|
|
19001
|
+
() => timeSlots ?? generateDefaultTimeSlots(evs, startField),
|
|
19002
|
+
[timeSlots, evs, startField]
|
|
18968
19003
|
);
|
|
18969
19004
|
const visibleCount = useDayWindow(dayWindow);
|
|
18970
19005
|
const [dayOffset, setDayOffset] = useState(0);
|
|
@@ -19001,9 +19036,9 @@ function CalendarGrid({
|
|
|
19001
19036
|
);
|
|
19002
19037
|
const eventsForDayCount = useCallback(
|
|
19003
19038
|
(day) => evs.filter(
|
|
19004
|
-
(ev) =>
|
|
19039
|
+
(ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
|
|
19005
19040
|
).length,
|
|
19006
|
-
[events2]
|
|
19041
|
+
[events2, startField]
|
|
19007
19042
|
);
|
|
19008
19043
|
const swipeCallbacks = useMemo(() => ({
|
|
19009
19044
|
onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
|
|
@@ -19022,8 +19057,11 @@ function CalendarGrid({
|
|
|
19022
19057
|
eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
|
|
19023
19058
|
}, 500);
|
|
19024
19059
|
}, [longPressEvent, longPressPayload, eventBus]);
|
|
19060
|
+
const renderChip = children ?? renderItem;
|
|
19025
19061
|
const renderEvent = (event) => {
|
|
19026
|
-
const color = event
|
|
19062
|
+
const color = getNestedValue(event, colorField);
|
|
19063
|
+
const label = String(getNestedValue(event, titleField) ?? "");
|
|
19064
|
+
const eventIndex = evs.indexOf(event);
|
|
19027
19065
|
return /* @__PURE__ */ jsx(
|
|
19028
19066
|
Box,
|
|
19029
19067
|
{
|
|
@@ -19035,7 +19073,7 @@ function CalendarGrid({
|
|
|
19035
19073
|
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
19036
19074
|
),
|
|
19037
19075
|
onClick: (e) => handleEventClick(event, e),
|
|
19038
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children:
|
|
19076
|
+
children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
|
|
19039
19077
|
},
|
|
19040
19078
|
event.id
|
|
19041
19079
|
);
|
|
@@ -19119,7 +19157,7 @@ function CalendarGrid({
|
|
|
19119
19157
|
) }),
|
|
19120
19158
|
visibleDays.map((day) => {
|
|
19121
19159
|
const slotEvents = evs.filter(
|
|
19122
|
-
(ev) => eventInSlot(ev, day, time)
|
|
19160
|
+
(ev) => eventInSlot(ev, day, time, startField)
|
|
19123
19161
|
);
|
|
19124
19162
|
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
19125
19163
|
return /* @__PURE__ */ jsx(
|
|
@@ -19156,6 +19194,7 @@ var init_CalendarGrid = __esm({
|
|
|
19156
19194
|
"components/core/molecules/CalendarGrid.tsx"() {
|
|
19157
19195
|
"use client";
|
|
19158
19196
|
init_cn();
|
|
19197
|
+
init_getNestedValue();
|
|
19159
19198
|
init_Box();
|
|
19160
19199
|
init_Button();
|
|
19161
19200
|
init_Stack();
|
|
@@ -19172,32 +19211,6 @@ var init_CalendarGrid = __esm({
|
|
|
19172
19211
|
CalendarGrid.displayName = "CalendarGrid";
|
|
19173
19212
|
}
|
|
19174
19213
|
});
|
|
19175
|
-
|
|
19176
|
-
// lib/getNestedValue.ts
|
|
19177
|
-
function getNestedValue(obj, path) {
|
|
19178
|
-
if (obj === null || obj === void 0 || !path) {
|
|
19179
|
-
return void 0;
|
|
19180
|
-
}
|
|
19181
|
-
if (!path.includes(".")) {
|
|
19182
|
-
return obj[path];
|
|
19183
|
-
}
|
|
19184
|
-
const parts = path.split(".");
|
|
19185
|
-
let value = obj;
|
|
19186
|
-
for (const part of parts) {
|
|
19187
|
-
if (value === null || value === void 0) {
|
|
19188
|
-
return void 0;
|
|
19189
|
-
}
|
|
19190
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
19191
|
-
return void 0;
|
|
19192
|
-
}
|
|
19193
|
-
value = value[part];
|
|
19194
|
-
}
|
|
19195
|
-
return value;
|
|
19196
|
-
}
|
|
19197
|
-
var init_getNestedValue = __esm({
|
|
19198
|
-
"lib/getNestedValue.ts"() {
|
|
19199
|
-
}
|
|
19200
|
-
});
|
|
19201
19214
|
var Pagination;
|
|
19202
19215
|
var init_Pagination = __esm({
|
|
19203
19216
|
"components/core/molecules/Pagination.tsx"() {
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -18511,6 +18511,32 @@ var init_ButtonGroup = __esm({
|
|
|
18511
18511
|
ButtonGroup.displayName = "ButtonGroup";
|
|
18512
18512
|
}
|
|
18513
18513
|
});
|
|
18514
|
+
|
|
18515
|
+
// lib/getNestedValue.ts
|
|
18516
|
+
function getNestedValue(obj, path) {
|
|
18517
|
+
if (obj === null || obj === void 0 || !path) {
|
|
18518
|
+
return void 0;
|
|
18519
|
+
}
|
|
18520
|
+
if (!path.includes(".")) {
|
|
18521
|
+
return obj[path];
|
|
18522
|
+
}
|
|
18523
|
+
const parts = path.split(".");
|
|
18524
|
+
let value = obj;
|
|
18525
|
+
for (const part of parts) {
|
|
18526
|
+
if (value === null || value === void 0) {
|
|
18527
|
+
return void 0;
|
|
18528
|
+
}
|
|
18529
|
+
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18530
|
+
return void 0;
|
|
18531
|
+
}
|
|
18532
|
+
value = value[part];
|
|
18533
|
+
}
|
|
18534
|
+
return value;
|
|
18535
|
+
}
|
|
18536
|
+
var init_getNestedValue = __esm({
|
|
18537
|
+
"lib/getNestedValue.ts"() {
|
|
18538
|
+
}
|
|
18539
|
+
});
|
|
18514
18540
|
function dayWindowForViewport(width) {
|
|
18515
18541
|
if (width <= 640) return 1;
|
|
18516
18542
|
if (width <= 1024) return 3;
|
|
@@ -18557,11 +18583,15 @@ function getWeekDays(start) {
|
|
|
18557
18583
|
}
|
|
18558
18584
|
return days;
|
|
18559
18585
|
}
|
|
18560
|
-
function
|
|
18586
|
+
function eventStartDate(event, startField) {
|
|
18587
|
+
const raw = getNestedValue(event, startField);
|
|
18588
|
+
return new Date(raw ?? "");
|
|
18589
|
+
}
|
|
18590
|
+
function generateDefaultTimeSlots(events2, startField) {
|
|
18561
18591
|
let first = DEFAULT_FIRST_HOUR;
|
|
18562
18592
|
let last = DEFAULT_LAST_HOUR;
|
|
18563
18593
|
for (const ev of events2) {
|
|
18564
|
-
const start =
|
|
18594
|
+
const start = eventStartDate(ev, startField);
|
|
18565
18595
|
if (Number.isNaN(start.getTime())) continue;
|
|
18566
18596
|
const hour = start.getHours();
|
|
18567
18597
|
if (hour < first) first = hour;
|
|
@@ -18573,8 +18603,8 @@ function generateDefaultTimeSlots(events2) {
|
|
|
18573
18603
|
}
|
|
18574
18604
|
return slots;
|
|
18575
18605
|
}
|
|
18576
|
-
function eventInSlot(event, day, slotTime) {
|
|
18577
|
-
const eventStart =
|
|
18606
|
+
function eventInSlot(event, day, slotTime, startField) {
|
|
18607
|
+
const eventStart = eventStartDate(event, startField);
|
|
18578
18608
|
if (Number.isNaN(eventStart.getTime())) return false;
|
|
18579
18609
|
const [slotHour] = slotTime.split(":").map(Number);
|
|
18580
18610
|
return eventStart.toDateString() === day.toDateString() && eventStart.getHours() === slotHour;
|
|
@@ -18591,7 +18621,12 @@ function CalendarGrid({
|
|
|
18591
18621
|
longPressPayload,
|
|
18592
18622
|
swipeLeftEvent,
|
|
18593
18623
|
swipeRightEvent,
|
|
18594
|
-
dayWindow = "auto"
|
|
18624
|
+
dayWindow = "auto",
|
|
18625
|
+
titleField = "title",
|
|
18626
|
+
startField = "startTime",
|
|
18627
|
+
colorField = "color",
|
|
18628
|
+
children,
|
|
18629
|
+
renderItem
|
|
18595
18630
|
}) {
|
|
18596
18631
|
const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
|
|
18597
18632
|
const eventBus = useEventBus();
|
|
@@ -18606,8 +18641,8 @@ function CalendarGrid({
|
|
|
18606
18641
|
[resolvedWeekStart]
|
|
18607
18642
|
);
|
|
18608
18643
|
const resolvedTimeSlots = React82.useMemo(
|
|
18609
|
-
() => timeSlots ?? generateDefaultTimeSlots(evs),
|
|
18610
|
-
[timeSlots, evs]
|
|
18644
|
+
() => timeSlots ?? generateDefaultTimeSlots(evs, startField),
|
|
18645
|
+
[timeSlots, evs, startField]
|
|
18611
18646
|
);
|
|
18612
18647
|
const visibleCount = useDayWindow(dayWindow);
|
|
18613
18648
|
const [dayOffset, setDayOffset] = React82.useState(0);
|
|
@@ -18644,9 +18679,9 @@ function CalendarGrid({
|
|
|
18644
18679
|
);
|
|
18645
18680
|
const eventsForDayCount = React82.useCallback(
|
|
18646
18681
|
(day) => evs.filter(
|
|
18647
|
-
(ev) =>
|
|
18682
|
+
(ev) => eventStartDate(ev, startField).toDateString() === day.toDateString()
|
|
18648
18683
|
).length,
|
|
18649
|
-
[events2]
|
|
18684
|
+
[events2, startField]
|
|
18650
18685
|
);
|
|
18651
18686
|
const swipeCallbacks = React82.useMemo(() => ({
|
|
18652
18687
|
onSwipeLeft: swipeLeftEvent ? () => eventBus.emit(`UI:${swipeLeftEvent}`, {}) : void 0,
|
|
@@ -18665,8 +18700,11 @@ function CalendarGrid({
|
|
|
18665
18700
|
eventBus.emit(`UI:${longPressEvent}`, { date: day.toISOString(), time, ...longPressPayload });
|
|
18666
18701
|
}, 500);
|
|
18667
18702
|
}, [longPressEvent, longPressPayload, eventBus]);
|
|
18703
|
+
const renderChip = children ?? renderItem;
|
|
18668
18704
|
const renderEvent = (event) => {
|
|
18669
|
-
const color = event
|
|
18705
|
+
const color = getNestedValue(event, colorField);
|
|
18706
|
+
const label = String(getNestedValue(event, titleField) ?? "");
|
|
18707
|
+
const eventIndex = evs.indexOf(event);
|
|
18670
18708
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18671
18709
|
Box,
|
|
18672
18710
|
{
|
|
@@ -18678,7 +18716,7 @@ function CalendarGrid({
|
|
|
18678
18716
|
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
18679
18717
|
),
|
|
18680
18718
|
onClick: (e) => handleEventClick(event, e),
|
|
18681
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children:
|
|
18719
|
+
children: renderChip ? renderChip(event, eventIndex) : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "truncate font-medium", children: label })
|
|
18682
18720
|
},
|
|
18683
18721
|
event.id
|
|
18684
18722
|
);
|
|
@@ -18762,7 +18800,7 @@ function CalendarGrid({
|
|
|
18762
18800
|
) }),
|
|
18763
18801
|
visibleDays.map((day) => {
|
|
18764
18802
|
const slotEvents = evs.filter(
|
|
18765
|
-
(ev) => eventInSlot(ev, day, time)
|
|
18803
|
+
(ev) => eventInSlot(ev, day, time, startField)
|
|
18766
18804
|
);
|
|
18767
18805
|
const isToday = day.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
18768
18806
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -18799,6 +18837,7 @@ var init_CalendarGrid = __esm({
|
|
|
18799
18837
|
"components/core/molecules/CalendarGrid.tsx"() {
|
|
18800
18838
|
"use client";
|
|
18801
18839
|
init_cn();
|
|
18840
|
+
init_getNestedValue();
|
|
18802
18841
|
init_Box();
|
|
18803
18842
|
init_Button();
|
|
18804
18843
|
init_Stack();
|
|
@@ -18815,32 +18854,6 @@ var init_CalendarGrid = __esm({
|
|
|
18815
18854
|
CalendarGrid.displayName = "CalendarGrid";
|
|
18816
18855
|
}
|
|
18817
18856
|
});
|
|
18818
|
-
|
|
18819
|
-
// lib/getNestedValue.ts
|
|
18820
|
-
function getNestedValue(obj, path) {
|
|
18821
|
-
if (obj === null || obj === void 0 || !path) {
|
|
18822
|
-
return void 0;
|
|
18823
|
-
}
|
|
18824
|
-
if (!path.includes(".")) {
|
|
18825
|
-
return obj[path];
|
|
18826
|
-
}
|
|
18827
|
-
const parts = path.split(".");
|
|
18828
|
-
let value = obj;
|
|
18829
|
-
for (const part of parts) {
|
|
18830
|
-
if (value === null || value === void 0) {
|
|
18831
|
-
return void 0;
|
|
18832
|
-
}
|
|
18833
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18834
|
-
return void 0;
|
|
18835
|
-
}
|
|
18836
|
-
value = value[part];
|
|
18837
|
-
}
|
|
18838
|
-
return value;
|
|
18839
|
-
}
|
|
18840
|
-
var init_getNestedValue = __esm({
|
|
18841
|
-
"lib/getNestedValue.ts"() {
|
|
18842
|
-
}
|
|
18843
|
-
});
|
|
18844
18857
|
var Pagination;
|
|
18845
18858
|
var init_Pagination = __esm({
|
|
18846
18859
|
"components/core/molecules/Pagination.tsx"() {
|
|
@@ -45410,7 +45423,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
|
|
|
45410
45423
|
crossTraitLog.debug("listen:fired", { busKey, targetTrait: binding.trait.name, triggers: listen.triggers });
|
|
45411
45424
|
enqueueAndDrain(
|
|
45412
45425
|
listen.triggers,
|
|
45413
|
-
core.applyListenPayloadMapping(listen.payloadMapping, event.payload),
|
|
45426
|
+
core.applyListenPayloadMapping(listen.payloadMapping, event.payload, evaluator.evaluateListenPayloadExpr),
|
|
45414
45427
|
binding.trait.name
|
|
45415
45428
|
);
|
|
45416
45429
|
});
|