@korsolutions/ui 0.0.72 → 0.0.74
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/module/components/calendar/calendar/calendar-root.js +57 -0
- package/dist/module/components/calendar/calendar/calendar-root.js.map +1 -0
- package/dist/module/components/calendar/{components → calendar}/calendar-weeks.js +12 -5
- package/dist/module/components/calendar/calendar/calendar-weeks.js.map +1 -0
- package/dist/module/components/calendar/calendar/index.js +19 -0
- package/dist/module/components/calendar/calendar/index.js.map +1 -0
- package/dist/module/components/calendar/calendar/types.js.map +1 -0
- package/dist/module/components/calendar/{variants → calendar/variants}/default.js +29 -13
- package/dist/module/components/calendar/calendar/variants/default.js.map +1 -0
- package/dist/module/components/calendar/calendar/variants/index.js.map +1 -0
- package/dist/module/components/calendar/index.js +3 -16
- package/dist/module/components/calendar/index.js.map +1 -1
- package/dist/module/components/calendar/{context.js → shared/calendar-context.js} +2 -2
- package/dist/module/components/calendar/shared/calendar-context.js.map +1 -0
- package/dist/module/components/calendar/{components → shared}/calendar-day.js +12 -11
- package/dist/module/components/calendar/shared/calendar-day.js.map +1 -0
- package/dist/module/components/calendar/{components → shared}/calendar-header.js +1 -1
- package/dist/module/components/calendar/shared/calendar-header.js.map +1 -0
- package/dist/module/components/calendar/shared/calendar-nav-buttons.js +63 -0
- package/dist/module/components/calendar/shared/calendar-nav-buttons.js.map +1 -0
- package/dist/module/components/calendar/{components → shared}/calendar-title.js +2 -2
- package/dist/module/components/calendar/shared/calendar-title.js.map +1 -0
- package/dist/module/components/calendar/{components → shared}/calendar-week-labels.js +1 -1
- package/dist/module/components/calendar/shared/calendar-week-labels.js.map +1 -0
- package/dist/module/components/calendar/shared/types.js +4 -0
- package/dist/module/components/calendar/shared/types.js.map +1 -0
- package/dist/module/components/calendar/timeline/calendar-timeline.js +135 -0
- package/dist/module/components/calendar/timeline/calendar-timeline.js.map +1 -0
- package/dist/module/components/calendar/timeline/index.js +4 -0
- package/dist/module/components/calendar/timeline/index.js.map +1 -0
- package/dist/module/components/calendar/timeline/types.js +4 -0
- package/dist/module/components/calendar/timeline/types.js.map +1 -0
- package/dist/module/components/calendar/timeline/variants/default.js +62 -0
- package/dist/module/components/calendar/timeline/variants/default.js.map +1 -0
- package/dist/module/components/calendar/timeline/variants/index.js +7 -0
- package/dist/module/components/calendar/timeline/variants/index.js.map +1 -0
- package/dist/module/components/calendar/week-calendar/index.js +4 -0
- package/dist/module/components/calendar/week-calendar/index.js.map +1 -0
- package/dist/module/components/calendar/week-calendar/types.js +4 -0
- package/dist/module/components/calendar/week-calendar/types.js.map +1 -0
- package/dist/module/components/calendar/week-calendar/variants/default.js +145 -0
- package/dist/module/components/calendar/week-calendar/variants/default.js.map +1 -0
- package/dist/module/components/calendar/week-calendar/variants/index.js +7 -0
- package/dist/module/components/calendar/week-calendar/variants/index.js.map +1 -0
- package/dist/module/components/calendar/week-calendar/week-calendar.js +158 -0
- package/dist/module/components/calendar/week-calendar/week-calendar.js.map +1 -0
- package/dist/module/components/index.js +1 -1
- package/dist/module/index.js +2 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/themes/provider.js.map +1 -1
- package/dist/module/utils/date-utils.js +45 -17
- package/dist/module/utils/date-utils.js.map +1 -1
- package/dist/typescript/src/components/calendar/{components → calendar}/calendar-root.d.ts +2 -1
- package/dist/typescript/src/components/calendar/calendar/calendar-root.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/calendar/calendar-weeks.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/calendar/index.d.ts +25 -0
- package/dist/typescript/src/components/calendar/calendar/index.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/calendar/types.d.ts +7 -0
- package/dist/typescript/src/components/calendar/calendar/types.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/calendar/variants/default.d.ts +3 -0
- package/dist/typescript/src/components/calendar/calendar/variants/default.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/calendar/variants/index.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/index.d.ts +7 -24
- package/dist/typescript/src/components/calendar/index.d.ts.map +1 -1
- package/dist/typescript/src/components/calendar/{context.d.ts → shared/calendar-context.d.ts} +10 -4
- package/dist/typescript/src/components/calendar/shared/calendar-context.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/shared/calendar-day.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/shared/calendar-header.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/shared/calendar-nav-buttons.d.ts +7 -0
- package/dist/typescript/src/components/calendar/shared/calendar-nav-buttons.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/shared/calendar-title.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/shared/calendar-week-labels.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/shared/types.d.ts +18 -0
- package/dist/typescript/src/components/calendar/shared/types.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/timeline/calendar-timeline.d.ts +23 -0
- package/dist/typescript/src/components/calendar/timeline/calendar-timeline.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/timeline/index.d.ts +4 -0
- package/dist/typescript/src/components/calendar/timeline/index.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/timeline/types.d.ts +13 -0
- package/dist/typescript/src/components/calendar/timeline/types.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/timeline/variants/default.d.ts +3 -0
- package/dist/typescript/src/components/calendar/timeline/variants/default.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/timeline/variants/index.d.ts +4 -0
- package/dist/typescript/src/components/calendar/timeline/variants/index.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/week-calendar/index.d.ts +4 -0
- package/dist/typescript/src/components/calendar/week-calendar/index.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/week-calendar/types.d.ts +7 -0
- package/dist/typescript/src/components/calendar/week-calendar/types.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/week-calendar/variants/default.d.ts +3 -0
- package/dist/typescript/src/components/calendar/week-calendar/variants/default.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/week-calendar/variants/index.d.ts +4 -0
- package/dist/typescript/src/components/calendar/week-calendar/variants/index.d.ts.map +1 -0
- package/dist/typescript/src/components/calendar/week-calendar/week-calendar.d.ts +16 -0
- package/dist/typescript/src/components/calendar/week-calendar/week-calendar.d.ts.map +1 -0
- package/dist/typescript/src/components/index.d.ts +1 -1
- package/dist/typescript/src/index.d.ts.map +1 -1
- package/dist/typescript/src/themes/provider.d.ts +4 -0
- package/dist/typescript/src/themes/provider.d.ts.map +1 -1
- package/dist/typescript/src/utils/date-utils.d.ts +8 -1
- package/dist/typescript/src/utils/date-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/calendar/calendar/calendar-root.tsx +73 -0
- package/src/components/calendar/{components → calendar}/calendar-weeks.tsx +22 -8
- package/src/components/calendar/calendar/index.ts +26 -0
- package/src/components/calendar/calendar/types.ts +7 -0
- package/src/components/calendar/{variants → calendar/variants}/default.tsx +30 -14
- package/src/components/calendar/index.ts +21 -24
- package/src/components/calendar/shared/calendar-context.ts +35 -0
- package/src/components/calendar/{components → shared}/calendar-day.tsx +41 -13
- package/src/components/calendar/{components → shared}/calendar-header.tsx +7 -2
- package/src/components/calendar/shared/calendar-nav-buttons.tsx +81 -0
- package/src/components/calendar/{components → shared}/calendar-title.tsx +8 -3
- package/src/components/calendar/{components → shared}/calendar-week-labels.tsx +8 -2
- package/src/components/calendar/shared/types.ts +24 -0
- package/src/components/calendar/timeline/calendar-timeline.tsx +202 -0
- package/src/components/calendar/timeline/index.ts +6 -0
- package/src/components/calendar/timeline/types.ts +13 -0
- package/src/components/calendar/timeline/variants/default.tsx +59 -0
- package/src/components/calendar/timeline/variants/index.ts +5 -0
- package/src/components/calendar/week-calendar/index.ts +3 -0
- package/src/components/calendar/week-calendar/types.ts +7 -0
- package/src/components/calendar/week-calendar/variants/default.tsx +141 -0
- package/src/components/calendar/week-calendar/variants/index.ts +5 -0
- package/src/components/calendar/week-calendar/week-calendar.tsx +243 -0
- package/src/components/index.ts +1 -1
- package/src/index.tsx +2 -0
- package/src/themes/provider.tsx +4 -0
- package/src/utils/date-utils.ts +53 -21
- package/dist/module/components/calendar/components/calendar-day.js.map +0 -1
- package/dist/module/components/calendar/components/calendar-header.js.map +0 -1
- package/dist/module/components/calendar/components/calendar-nav-button.js +0 -61
- package/dist/module/components/calendar/components/calendar-nav-button.js.map +0 -1
- package/dist/module/components/calendar/components/calendar-root.js +0 -39
- package/dist/module/components/calendar/components/calendar-root.js.map +0 -1
- package/dist/module/components/calendar/components/calendar-title.js.map +0 -1
- package/dist/module/components/calendar/components/calendar-week-labels.js.map +0 -1
- package/dist/module/components/calendar/components/calendar-weeks.js.map +0 -1
- package/dist/module/components/calendar/context.js.map +0 -1
- package/dist/module/components/calendar/types.js.map +0 -1
- package/dist/module/components/calendar/variants/default.js.map +0 -1
- package/dist/module/components/calendar/variants/index.js.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-day.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-header.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-nav-button.d.ts +0 -10
- package/dist/typescript/src/components/calendar/components/calendar-nav-button.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-root.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-title.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-week-labels.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/components/calendar-weeks.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/context.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/types.d.ts +0 -37
- package/dist/typescript/src/components/calendar/types.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/variants/default.d.ts +0 -3
- package/dist/typescript/src/components/calendar/variants/default.d.ts.map +0 -1
- package/dist/typescript/src/components/calendar/variants/index.d.ts.map +0 -1
- package/src/components/calendar/components/calendar-nav-button.tsx +0 -60
- package/src/components/calendar/components/calendar-root.tsx +0 -42
- package/src/components/calendar/context.ts +0 -23
- package/src/components/calendar/types.ts +0 -39
- /package/dist/module/components/calendar/{types.js → calendar/types.js} +0 -0
- /package/dist/module/components/calendar/{variants → calendar/variants}/index.js +0 -0
- /package/dist/typescript/src/components/calendar/{components → calendar}/calendar-weeks.d.ts +0 -0
- /package/dist/typescript/src/components/calendar/{variants → calendar/variants}/index.d.ts +0 -0
- /package/dist/typescript/src/components/calendar/{components → shared}/calendar-day.d.ts +0 -0
- /package/dist/typescript/src/components/calendar/{components → shared}/calendar-header.d.ts +0 -0
- /package/dist/typescript/src/components/calendar/{components → shared}/calendar-title.d.ts +0 -0
- /package/dist/typescript/src/components/calendar/{components → shared}/calendar-week-labels.d.ts +0 -0
- /package/src/components/calendar/{variants → calendar/variants}/index.ts +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useMemo, useState } from "react";
|
|
4
|
+
import { View } from "react-native";
|
|
5
|
+
import { addMonths, subMonths } from "../../../utils/date-utils.js";
|
|
6
|
+
import { CalendarContext } from "../shared/calendar-context.js";
|
|
7
|
+
import { CalendarVariants } from "./variants/index.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
export function CalendarRoot(props) {
|
|
10
|
+
const {
|
|
11
|
+
children,
|
|
12
|
+
value,
|
|
13
|
+
onChange,
|
|
14
|
+
defaultMonth = new Date(),
|
|
15
|
+
minDate,
|
|
16
|
+
maxDate,
|
|
17
|
+
markedDates,
|
|
18
|
+
style
|
|
19
|
+
} = props;
|
|
20
|
+
const variantStyles = CalendarVariants[props.variant || "default"]();
|
|
21
|
+
const [currentMonth, setCurrentMonth] = useState(defaultMonth);
|
|
22
|
+
const goToPrev = useCallback(() => {
|
|
23
|
+
setCurrentMonth(prev => subMonths(prev, 1));
|
|
24
|
+
}, []);
|
|
25
|
+
const goToNext = useCallback(() => {
|
|
26
|
+
setCurrentMonth(prev => addMonths(prev, 1));
|
|
27
|
+
}, []);
|
|
28
|
+
const isPrevDisabled = useMemo(() => {
|
|
29
|
+
if (!minDate) return false;
|
|
30
|
+
return subMonths(currentMonth, 1) < minDate;
|
|
31
|
+
}, [currentMonth, minDate]);
|
|
32
|
+
const isNextDisabled = useMemo(() => {
|
|
33
|
+
if (!maxDate) return false;
|
|
34
|
+
return addMonths(currentMonth, 1) > maxDate;
|
|
35
|
+
}, [currentMonth, maxDate]);
|
|
36
|
+
const containerStyle = [variantStyles.root, style];
|
|
37
|
+
return /*#__PURE__*/_jsx(CalendarContext.Provider, {
|
|
38
|
+
value: {
|
|
39
|
+
value,
|
|
40
|
+
onChange,
|
|
41
|
+
currentMonth,
|
|
42
|
+
goToPrev,
|
|
43
|
+
goToNext,
|
|
44
|
+
isPrevDisabled,
|
|
45
|
+
isNextDisabled,
|
|
46
|
+
styles: variantStyles,
|
|
47
|
+
minDate,
|
|
48
|
+
maxDate,
|
|
49
|
+
markedDates
|
|
50
|
+
},
|
|
51
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
52
|
+
style: containerStyle,
|
|
53
|
+
children: children
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=calendar-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useState","View","addMonths","subMonths","CalendarContext","CalendarVariants","jsx","_jsx","CalendarRoot","props","children","value","onChange","defaultMonth","Date","minDate","maxDate","markedDates","style","variantStyles","variant","currentMonth","setCurrentMonth","goToPrev","prev","goToNext","isPrevDisabled","isNextDisabled","containerStyle","root","Provider","styles"],"sourceRoot":"../../../../../src","sources":["components/calendar/calendar/calendar-root.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC7D,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,SAAS,EAAEC,SAAS,QAAQ,8BAA2B;AAChE,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,gBAAgB,QAAQ,qBAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAc9C,OAAO,SAASC,YAAYA,CAACC,KAAwB,EAAE;EACrD,MAAM;IACJC,QAAQ;IACRC,KAAK;IACLC,QAAQ;IACRC,YAAY,GAAG,IAAIC,IAAI,CAAC,CAAC;IACzBC,OAAO;IACPC,OAAO;IACPC,WAAW;IACXC;EACF,CAAC,GAAGT,KAAK;EACT,MAAMU,aAAa,GAAGd,gBAAgB,CAACI,KAAK,CAACW,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;EAEpE,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGtB,QAAQ,CAAOa,YAAY,CAAC;EAEpE,MAAMU,QAAQ,GAAGzB,WAAW,CAAC,MAAM;IACjCwB,eAAe,CAAEE,IAAI,IAAKrB,SAAS,CAACqB,IAAI,EAAE,CAAC,CAAC,CAAC;EAC/C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,QAAQ,GAAG3B,WAAW,CAAC,MAAM;IACjCwB,eAAe,CAAEE,IAAI,IAAKtB,SAAS,CAACsB,IAAI,EAAE,CAAC,CAAC,CAAC;EAC/C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,cAAc,GAAG3B,OAAO,CAAC,MAAM;IACnC,IAAI,CAACgB,OAAO,EAAE,OAAO,KAAK;IAC1B,OAAOZ,SAAS,CAACkB,YAAY,EAAE,CAAC,CAAC,GAAGN,OAAO;EAC7C,CAAC,EAAE,CAACM,YAAY,EAAEN,OAAO,CAAC,CAAC;EAE3B,MAAMY,cAAc,GAAG5B,OAAO,CAAC,MAAM;IACnC,IAAI,CAACiB,OAAO,EAAE,OAAO,KAAK;IAC1B,OAAOd,SAAS,CAACmB,YAAY,EAAE,CAAC,CAAC,GAAGL,OAAO;EAC7C,CAAC,EAAE,CAACK,YAAY,EAAEL,OAAO,CAAC,CAAC;EAE3B,MAAMY,cAAc,GAAG,CAACT,aAAa,CAACU,IAAI,EAAEX,KAAK,CAAC;EAElD,oBACEX,IAAA,CAACH,eAAe,CAAC0B,QAAQ;IACvBnB,KAAK,EAAE;MACLA,KAAK;MACLC,QAAQ;MACRS,YAAY;MACZE,QAAQ;MACRE,QAAQ;MACRC,cAAc;MACdC,cAAc;MACdI,MAAM,EAAEZ,aAAa;MACrBJ,OAAO;MACPC,OAAO;MACPC;IACF,CAAE;IAAAP,QAAA,eAEFH,IAAA,CAACN,IAAI;MAACiB,KAAK,EAAEU,cAAe;MAAAlB,QAAA,EAAEA;IAAQ,CAAO;EAAC,CACtB,CAAC;AAE/B","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { getWeekDays, getWeeksInMonth } from "../../../utils/date-utils.js";
|
|
4
3
|
import React from "react";
|
|
5
4
|
import { View } from "react-native";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { getWeekDays, getWeeksInMonth } from "../../../utils/date-utils.js";
|
|
6
|
+
import { useCalendarContext } from "../shared/calendar-context.js";
|
|
7
|
+
import { CalendarDay } from "../shared/calendar-day.js";
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
function CalendarWeek(props) {
|
|
10
10
|
const {
|
|
@@ -15,12 +15,18 @@ function CalendarWeek(props) {
|
|
|
15
15
|
currentMonth,
|
|
16
16
|
styles
|
|
17
17
|
} = useCalendarContext();
|
|
18
|
+
const calStyles = styles;
|
|
18
19
|
const days = getWeekDays(currentMonth.getMonth(), currentMonth.getFullYear(), props.index);
|
|
19
|
-
const composedStyle = [
|
|
20
|
+
const composedStyle = [calStyles?.week, style];
|
|
20
21
|
return /*#__PURE__*/_jsx(View, {
|
|
21
22
|
...viewProps,
|
|
22
23
|
style: composedStyle,
|
|
23
24
|
children: days.map((day, index) => {
|
|
25
|
+
if (!day) {
|
|
26
|
+
return /*#__PURE__*/_jsx(View, {
|
|
27
|
+
style: styles?.dayButton?.default
|
|
28
|
+
}, index);
|
|
29
|
+
}
|
|
24
30
|
return /*#__PURE__*/_jsx(CalendarDay, {
|
|
25
31
|
date: day
|
|
26
32
|
}, index);
|
|
@@ -32,8 +38,9 @@ export function CalendarWeeks(props) {
|
|
|
32
38
|
currentMonth,
|
|
33
39
|
styles
|
|
34
40
|
} = useCalendarContext();
|
|
41
|
+
const calStyles = styles;
|
|
35
42
|
const weeks = getWeeksInMonth(currentMonth);
|
|
36
|
-
const composedStyle = [
|
|
43
|
+
const composedStyle = [calStyles?.weeks, props.style];
|
|
37
44
|
return /*#__PURE__*/_jsx(View, {
|
|
38
45
|
style: composedStyle,
|
|
39
46
|
children: Array.from({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","getWeekDays","getWeeksInMonth","useCalendarContext","CalendarDay","jsx","_jsx","CalendarWeek","props","style","viewProps","currentMonth","styles","calStyles","days","getMonth","getFullYear","index","composedStyle","week","children","map","day","dayButton","default","date","CalendarWeeks","weeks","Array","from","length","_"],"sourceRoot":"../../../../../src","sources":["components/calendar/calendar/calendar-weeks.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,QAIC,cAAc;AACrB,SAASC,WAAW,EAAEC,eAAe,QAAQ,8BAA2B;AACxE,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,WAAW,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQrD,SAASC,YAAYA,CAACC,KAAwB,EAAE;EAC9C,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAU,CAAC,GAAGF,KAAK;EACrC,MAAM;IAAEG,YAAY;IAAEC;EAAO,CAAC,GAAGT,kBAAkB,CAAC,CAAC;EACrD,MAAMU,SAAS,GAAGD,MAAwB;EAE1C,MAAME,IAAI,GAAGb,WAAW,CACtBU,YAAY,CAACI,QAAQ,CAAC,CAAC,EACvBJ,YAAY,CAACK,WAAW,CAAC,CAAC,EAC1BR,KAAK,CAACS,KACR,CAAC;EAED,MAAMC,aAAa,GAAG,CAACL,SAAS,EAAEM,IAAI,EAAEV,KAAK,CAAC;EAC9C,oBACEH,IAAA,CAACN,IAAI;IAAA,GAAKU,SAAS;IAAED,KAAK,EAAES,aAAc;IAAAE,QAAA,EACvCN,IAAI,CAACO,GAAG,CAAC,CAACC,GAAG,EAAEL,KAAK,KAAK;MACxB,IAAI,CAACK,GAAG,EAAE;QACR,oBAAOhB,IAAA,CAACN,IAAI;UAAaS,KAAK,EAAEG,MAAM,EAAEW,SAAS,EAAEC;QAAQ,GAAzCP,KAA2C,CAAC;MAChE;MACA,oBAAOX,IAAA,CAACF,WAAW;QAAaqB,IAAI,EAAEH;MAAI,GAAjBL,KAAmB,CAAC;IAC/C,CAAC;EAAC,CACE,CAAC;AAEX;AAMA,OAAO,SAASS,aAAaA,CAAClB,KAAyB,EAAE;EACvD,MAAM;IAAEG,YAAY;IAAEC;EAAO,CAAC,GAAGT,kBAAkB,CAAC,CAAC;EACrD,MAAMU,SAAS,GAAGD,MAAwB;EAE1C,MAAMe,KAAK,GAAGzB,eAAe,CAACS,YAAY,CAAC;EAE3C,MAAMO,aAAa,GAAG,CAACL,SAAS,EAAEc,KAAK,EAAEnB,KAAK,CAACC,KAAK,CAAC;EAErD,oBACEH,IAAA,CAACN,IAAI;IAACS,KAAK,EAAES,aAAc;IAAAE,QAAA,EACxBQ,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEH;IAAM,CAAC,CAAC,CAACN,GAAG,CAAC,CAACU,CAAC,EAAEd,KAAK,KAAK;MAC/C,oBAAOX,IAAA,CAACC,YAAY;QAAaU,KAAK,EAAEA;MAAM,GAApBA,KAAsB,CAAC;IACnD,CAAC;EAAC,CACE,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { CalendarDay } from "../shared/calendar-day.js";
|
|
4
|
+
import { CalendarHeader } from "../shared/calendar-header.js";
|
|
5
|
+
import { CalendarNavButtons } from "../shared/calendar-nav-buttons.js";
|
|
6
|
+
import { CalendarTitle } from "../shared/calendar-title.js";
|
|
7
|
+
import { CalendarWeekLabels } from "../shared/calendar-week-labels.js";
|
|
8
|
+
import { CalendarRoot } from "./calendar-root.js";
|
|
9
|
+
import { CalendarWeeks } from "./calendar-weeks.js";
|
|
10
|
+
export const Calendar = {
|
|
11
|
+
Root: CalendarRoot,
|
|
12
|
+
Header: CalendarHeader,
|
|
13
|
+
Title: CalendarTitle,
|
|
14
|
+
NavButtons: CalendarNavButtons,
|
|
15
|
+
CalendarWeekLabels: CalendarWeekLabels,
|
|
16
|
+
Weeks: CalendarWeeks,
|
|
17
|
+
Day: CalendarDay
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CalendarDay","CalendarHeader","CalendarNavButtons","CalendarTitle","CalendarWeekLabels","CalendarRoot","CalendarWeeks","Calendar","Root","Header","Title","NavButtons","Weeks","Day"],"sourceRoot":"../../../../../src","sources":["components/calendar/calendar/index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,2BAAwB;AACpD,SAASC,cAAc,QAAQ,8BAA2B;AAC1D,SAASC,kBAAkB,QAAQ,mCAAgC;AACnE,SAASC,aAAa,QAAQ,6BAA0B;AACxD,SAASC,kBAAkB,QAAQ,mCAAgC;AACnE,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,aAAa,QAAQ,qBAAkB;AAEhD,OAAO,MAAMC,QAAQ,GAAG;EACtBC,IAAI,EAAEH,YAAY;EAClBI,MAAM,EAAER,cAAc;EACtBS,KAAK,EAAEP,aAAa;EACpBQ,UAAU,EAAET,kBAAkB;EAC9BE,kBAAkB,EAAEA,kBAAkB;EACtCQ,KAAK,EAAEN,aAAa;EACpBO,GAAG,EAAEb;AACP,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/calendar/calendar/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { hslaSetRelativeLightness } from "../../../../utils/hsla-utils.js";
|
|
4
|
+
import { useThemedStyles } from "../../../../utils/use-themed-styles.js";
|
|
4
5
|
export const useCalendarVariantDefault = () => {
|
|
5
6
|
return useThemedStyles(({
|
|
6
7
|
colors,
|
|
@@ -29,24 +30,38 @@ export const useCalendarVariantDefault = () => {
|
|
|
29
30
|
fontFamily,
|
|
30
31
|
color: colors.foreground
|
|
31
32
|
},
|
|
33
|
+
navButtons: {
|
|
34
|
+
flexDirection: "row",
|
|
35
|
+
gap: 4
|
|
36
|
+
},
|
|
32
37
|
navButton: {
|
|
33
38
|
default: {
|
|
34
39
|
width: 32,
|
|
35
40
|
height: 32,
|
|
36
|
-
borderRadius: radius
|
|
41
|
+
borderRadius: radius,
|
|
37
42
|
alignItems: "center",
|
|
38
43
|
justifyContent: "center",
|
|
39
44
|
backgroundColor: "transparent"
|
|
40
45
|
},
|
|
41
46
|
disabled: {
|
|
42
|
-
opacity: 0.
|
|
47
|
+
opacity: 0.5
|
|
48
|
+
},
|
|
49
|
+
hovered: {
|
|
50
|
+
backgroundColor: hslaSetRelativeLightness(colors.secondary, -1)
|
|
43
51
|
}
|
|
44
52
|
},
|
|
45
|
-
|
|
53
|
+
navButtonIcon: {
|
|
46
54
|
default: {
|
|
47
|
-
fontSize: fontSize * 1.5,
|
|
48
55
|
color: colors.foreground,
|
|
49
|
-
|
|
56
|
+
size: fontSize * 1.25,
|
|
57
|
+
style: {
|
|
58
|
+
color: colors.foreground,
|
|
59
|
+
fontSize: fontSize * 1.25,
|
|
60
|
+
lineHeight: fontSize * 1.25,
|
|
61
|
+
textAlign: "center",
|
|
62
|
+
fontWeight: "500",
|
|
63
|
+
pointerEvents: "none"
|
|
64
|
+
}
|
|
50
65
|
},
|
|
51
66
|
disabled: {
|
|
52
67
|
color: colors.mutedForeground
|
|
@@ -95,9 +110,6 @@ export const useCalendarVariantDefault = () => {
|
|
|
95
110
|
disabled: {
|
|
96
111
|
opacity: 0.3
|
|
97
112
|
},
|
|
98
|
-
deprioritized: {
|
|
99
|
-
backgroundColor: "transparent"
|
|
100
|
-
},
|
|
101
113
|
hovered: {
|
|
102
114
|
backgroundColor: colors.muted
|
|
103
115
|
}
|
|
@@ -120,11 +132,15 @@ export const useCalendarVariantDefault = () => {
|
|
|
120
132
|
},
|
|
121
133
|
disabled: {
|
|
122
134
|
color: colors.mutedForeground
|
|
123
|
-
},
|
|
124
|
-
deprioritized: {
|
|
125
|
-
color: colors.mutedForeground,
|
|
126
|
-
opacity: 0.5
|
|
127
135
|
}
|
|
136
|
+
},
|
|
137
|
+
dayMarker: {
|
|
138
|
+
width: 5,
|
|
139
|
+
height: 5,
|
|
140
|
+
borderRadius: 2.5,
|
|
141
|
+
backgroundColor: colors.primary,
|
|
142
|
+
marginTop: 2,
|
|
143
|
+
alignSelf: "center"
|
|
128
144
|
}
|
|
129
145
|
}));
|
|
130
146
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hslaSetRelativeLightness","useThemedStyles","useCalendarVariantDefault","colors","radius","fontFamily","fontSize","root","padding","backgroundColor","background","borderRadius","borderWidth","borderColor","border","width","header","flexDirection","justifyContent","alignItems","marginBottom","paddingHorizontal","headerTitle","fontWeight","color","foreground","navButtons","gap","navButton","default","height","disabled","opacity","hovered","secondary","navButtonIcon","size","style","lineHeight","textAlign","pointerEvents","mutedForeground","weekLabels","paddingVertical","weekLabel","weeks","week","dayButton","selected","primary","today","muted","dayText","primaryForeground","dayMarker","marginTop","alignSelf"],"sourceRoot":"../../../../../../src","sources":["components/calendar/calendar/variants/default.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCalendarVariantDefault","CalendarVariants","default"],"sourceRoot":"../../../../../../src","sources":["components/calendar/calendar/variants/index.ts"],"mappings":";;AAAA,SAASA,yBAAyB,QAAQ,cAAW;AAErD,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,OAAO,EAAEF;AACX,CAAC","ignoreList":[]}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { CalendarRoot } from "./components/calendar-root.js";
|
|
7
|
-
import { CalendarTitle } from "./components/calendar-title.js";
|
|
8
|
-
import { CalendarWeekLabels } from "./components/calendar-week-labels.js";
|
|
9
|
-
import { CalendarWeeks } from "./components/calendar-weeks.js";
|
|
10
|
-
export const Calendar = {
|
|
11
|
-
Root: CalendarRoot,
|
|
12
|
-
Header: CalendarHeader,
|
|
13
|
-
Title: CalendarTitle,
|
|
14
|
-
NavButton: CalendarNavButton,
|
|
15
|
-
CalendarWeekLabels: CalendarWeekLabels,
|
|
16
|
-
Weeks: CalendarWeeks,
|
|
17
|
-
Day: CalendarDay
|
|
18
|
-
};
|
|
3
|
+
export { Calendar } from "./calendar/index.js";
|
|
4
|
+
export { WeekCalendar } from "./week-calendar/index.js";
|
|
5
|
+
export { CalendarTimeline } from "./timeline/index.js";
|
|
19
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Calendar","WeekCalendar","CalendarTimeline"],"sourceRoot":"../../../../src","sources":["components/calendar/index.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,qBAAY;AAYrC,SAASC,YAAY,QAAQ,0BAAiB;AAG9C,SAASC,gBAAgB,QAAQ,qBAAY","ignoreList":[]}
|
|
@@ -5,8 +5,8 @@ export const CalendarContext = /*#__PURE__*/React.createContext(undefined);
|
|
|
5
5
|
export const useCalendarContext = () => {
|
|
6
6
|
const context = React.useContext(CalendarContext);
|
|
7
7
|
if (!context) {
|
|
8
|
-
throw new Error("Calendar components must be used within
|
|
8
|
+
throw new Error("Calendar components must be used within a Calendar or WeekCalendar Root");
|
|
9
9
|
}
|
|
10
10
|
return context;
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=context.js.map
|
|
12
|
+
//# sourceMappingURL=calendar-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","CalendarContext","createContext","undefined","useCalendarContext","context","useContext","Error"],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/calendar-context.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAsBzB,OAAO,MAAMC,eAAe,gBAAGD,KAAK,CAACE,aAAa,CAEhDC,SAAS,CAAC;AAEZ,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMC,OAAO,GAAGL,KAAK,CAACM,UAAU,CAACL,eAAe,CAAC;EACjD,IAAI,CAACI,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CACb,yEACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { formatDate, isDateAfter, isDateBefore, isDateSameDay, isDateToday, isSameMonth } from "../../../utils/date-utils.js";
|
|
4
3
|
import React, { useMemo, useState } from "react";
|
|
5
|
-
import { Pressable, Text } from "react-native";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
4
|
+
import { Pressable, Text, View } from "react-native";
|
|
5
|
+
import { formatDate, isDateAfter, isDateBefore, isDateSameDay, isDateToday } from "../../../utils/date-utils.js";
|
|
6
|
+
import { useCalendarContext } from "./calendar-context.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const calculateState = (date, selected, isDisabled, isHovered) => {
|
|
9
9
|
if (isDisabled) return "disabled";
|
|
10
10
|
if (selected && isDateSameDay(date, selected)) return "selected";
|
|
11
11
|
if (isDateToday(date)) return "today";
|
|
12
12
|
if (isHovered) return "hovered";
|
|
13
|
-
if (!isCurrentMonth) return "deprioritized";
|
|
14
13
|
return "default";
|
|
15
14
|
};
|
|
16
15
|
export function CalendarDay(props) {
|
|
17
16
|
const calendar = useCalendarContext();
|
|
18
17
|
const [isHovered, setIsHovered] = useState(false);
|
|
19
|
-
const isCurrentMonth = isSameMonth(props.date, calendar.currentMonth);
|
|
20
18
|
const isDisabled = useMemo(() => {
|
|
21
19
|
if (calendar.minDate && isDateBefore(props.date, calendar.minDate)) return true;
|
|
22
20
|
if (calendar.maxDate && isDateAfter(props.date, calendar.maxDate)) return true;
|
|
23
21
|
return false;
|
|
24
22
|
}, [props.date, calendar.minDate, calendar.maxDate]);
|
|
25
|
-
const
|
|
23
|
+
const isMarked = calendar.markedDates?.some(d => isDateSameDay(d, props.date)) ?? false;
|
|
24
|
+
const state = calculateState(props.date, calendar.value, isDisabled, isHovered);
|
|
26
25
|
const handlePress = () => {
|
|
27
26
|
if (isDisabled || !calendar.onChange) return;
|
|
28
27
|
calendar.onChange(props.date);
|
|
29
28
|
};
|
|
30
29
|
const composedStyle = [calendar.styles?.dayButton?.default, calendar.styles?.dayButton?.[state], props.style];
|
|
31
30
|
const composedTextStyle = [calendar.styles?.dayText?.default, calendar.styles?.dayText?.[state], props.textStyle];
|
|
32
|
-
return /*#__PURE__*/
|
|
31
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
33
32
|
onPress: handlePress,
|
|
34
33
|
onHoverIn: () => setIsHovered(true),
|
|
35
34
|
onHoverOut: () => setIsHovered(false),
|
|
36
35
|
disabled: isDisabled,
|
|
37
36
|
style: composedStyle,
|
|
38
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
37
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
39
38
|
style: composedTextStyle,
|
|
40
39
|
children: formatDate(props.date, "d")
|
|
41
|
-
})
|
|
40
|
+
}), isMarked && /*#__PURE__*/_jsx(View, {
|
|
41
|
+
style: calendar.styles?.dayMarker
|
|
42
|
+
})]
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
45
|
//# sourceMappingURL=calendar-day.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","useState","Pressable","Text","View","formatDate","isDateAfter","isDateBefore","isDateSameDay","isDateToday","useCalendarContext","jsx","_jsx","jsxs","_jsxs","calculateState","date","selected","isDisabled","isHovered","CalendarDay","props","calendar","setIsHovered","minDate","maxDate","isMarked","markedDates","some","d","state","value","handlePress","onChange","composedStyle","styles","dayButton","default","style","composedTextStyle","dayText","textStyle","onPress","onHoverIn","onHoverOut","disabled","children","dayMarker"],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/calendar-day.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { View } from "react-native";
|
|
5
|
-
import { useCalendarContext } from "
|
|
5
|
+
import { useCalendarContext } from "./calendar-context.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
export function CalendarHeader(props) {
|
|
8
8
|
const {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","useCalendarContext","jsx","_jsx","CalendarHeader","props","children","style","viewProps","styles","headerStyle","header"],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/calendar-header.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,QAIC,cAAc;AACrB,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD,OAAO,SAASC,cAAcA,CAACC,KAA0B,EAAE;EACzD,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAU,CAAC,GAAGH,KAAK;EAC/C,MAAM;IAAEI;EAAO,CAAC,GAAGR,kBAAkB,CAAC,CAAC;EAEvC,MAAMS,WAAW,GAAG,CAACD,MAAM,EAAEE,MAAM,EAAEJ,KAAK,CAAC;EAE3C,oBACEJ,IAAA,CAACH,IAAI;IAAA,GAAKQ,SAAS;IAAED,KAAK,EAAEG,WAAY;IAAAJ,QAAA,EACrCA;EAAQ,CACL,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState } from "react";
|
|
4
|
+
import { Pressable, StyleSheet, Text, View } from "react-native";
|
|
5
|
+
import { useComponentsConfig } from "../../../themes/index.js";
|
|
6
|
+
import { useCalendarContext } from "./calendar-context.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const calculateState = (isDisabled, isHovered) => {
|
|
9
|
+
if (isDisabled) return "disabled";
|
|
10
|
+
if (isHovered) return "hovered";
|
|
11
|
+
return "default";
|
|
12
|
+
};
|
|
13
|
+
export function CalendarNavButtons(props) {
|
|
14
|
+
const {
|
|
15
|
+
style
|
|
16
|
+
} = props;
|
|
17
|
+
const {
|
|
18
|
+
goToPrev,
|
|
19
|
+
goToNext,
|
|
20
|
+
isPrevDisabled,
|
|
21
|
+
isNextDisabled,
|
|
22
|
+
styles
|
|
23
|
+
} = useCalendarContext();
|
|
24
|
+
const config = useComponentsConfig();
|
|
25
|
+
const PrevIcon = config?.calendar?.prevIcon;
|
|
26
|
+
const NextIcon = config?.calendar?.nextIcon;
|
|
27
|
+
const [prevHovered, setPrevHovered] = useState(false);
|
|
28
|
+
const [nextHovered, setNextHovered] = useState(false);
|
|
29
|
+
const prevState = calculateState(isPrevDisabled, prevHovered);
|
|
30
|
+
const nextState = calculateState(isNextDisabled, nextHovered);
|
|
31
|
+
const prevIconProps = StyleSheet.flatten([styles?.navButtonIcon?.default, styles?.navButtonIcon?.[prevState]]);
|
|
32
|
+
const nextIconProps = StyleSheet.flatten([styles?.navButtonIcon?.default, styles?.navButtonIcon?.[nextState]]);
|
|
33
|
+
const composedStyle = [styles?.navButtons, style];
|
|
34
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
35
|
+
style: composedStyle,
|
|
36
|
+
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
37
|
+
onPress: goToPrev,
|
|
38
|
+
onHoverIn: () => setPrevHovered(true),
|
|
39
|
+
onHoverOut: () => setPrevHovered(false),
|
|
40
|
+
disabled: isPrevDisabled,
|
|
41
|
+
style: [styles?.navButton?.default, styles?.navButton?.[prevState]],
|
|
42
|
+
children: PrevIcon ? /*#__PURE__*/_jsx(PrevIcon, {
|
|
43
|
+
...prevIconProps
|
|
44
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
45
|
+
style: prevIconProps?.style,
|
|
46
|
+
children: "\u2039"
|
|
47
|
+
})
|
|
48
|
+
}), /*#__PURE__*/_jsx(Pressable, {
|
|
49
|
+
onPress: goToNext,
|
|
50
|
+
onHoverIn: () => setNextHovered(true),
|
|
51
|
+
onHoverOut: () => setNextHovered(false),
|
|
52
|
+
disabled: isNextDisabled,
|
|
53
|
+
style: [styles?.navButton?.default, styles?.navButton?.[nextState]],
|
|
54
|
+
children: NextIcon ? /*#__PURE__*/_jsx(NextIcon, {
|
|
55
|
+
...nextIconProps
|
|
56
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
57
|
+
style: nextIconProps?.style,
|
|
58
|
+
children: "\u203A"
|
|
59
|
+
})
|
|
60
|
+
})]
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=calendar-nav-buttons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","Pressable","StyleSheet","Text","View","useComponentsConfig","useCalendarContext","jsx","_jsx","jsxs","_jsxs","calculateState","isDisabled","isHovered","CalendarNavButtons","props","style","goToPrev","goToNext","isPrevDisabled","isNextDisabled","styles","config","PrevIcon","calendar","prevIcon","NextIcon","nextIcon","prevHovered","setPrevHovered","nextHovered","setNextHovered","prevState","nextState","prevIconProps","flatten","navButtonIcon","default","nextIconProps","composedStyle","navButtons","children","onPress","onHoverIn","onHoverOut","disabled","navButton"],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/calendar-nav-buttons.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { formatDate } from "../../../utils/date-utils.js";
|
|
4
3
|
import React from "react";
|
|
5
4
|
import { Text } from "react-native";
|
|
6
|
-
import {
|
|
5
|
+
import { formatDate } from "../../../utils/date-utils.js";
|
|
6
|
+
import { useCalendarContext } from "./calendar-context.js";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
export function CalendarTitle(props) {
|
|
9
9
|
const {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Text","formatDate","useCalendarContext","jsx","_jsx","CalendarTitle","props","children","style","formatStr","textProps","currentMonth","styles","titleStyle","headerTitle"],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/calendar-title.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,QAIC,cAAc;AACrB,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQxD,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,SAAS,GAAG,WAAW;IAAE,GAAGC;EAAU,CAAC,GAAGJ,KAAK;EACxE,MAAM;IAAEK,YAAY;IAAEC;EAAO,CAAC,GAAGV,kBAAkB,CAAC,CAAC;EAErD,MAAMW,UAAU,GAAG,CAACD,MAAM,EAAEE,WAAW,EAAEN,KAAK,CAAC;EAE/C,oBACEJ,IAAA,CAACJ,IAAI;IAAA,GAAKU,SAAS;IAAEF,KAAK,EAAEK,UAAW;IAAAN,QAAA,EACpCA,QAAQ,IAAIN,UAAU,CAACU,YAAY,EAAEF,SAAS;EAAC,CAC5C,CAAC;AAEX","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { Text, View } from "react-native";
|
|
5
|
-
import { useCalendarContext } from "
|
|
5
|
+
import { useCalendarContext } from "./calendar-context.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
function CalendarWeekLabel(props) {
|
|
8
8
|
const {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Text","View","useCalendarContext","jsx","_jsx","CalendarWeekLabel","props","styles","composedStyle","weekLabel","style","numberOfLines","children","DEFAULT_WEEK_DAYS","CalendarWeekLabels","weekDays","weekLabels","map","day","index"],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/calendar-week-labels.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,EACJC,IAAI,QAIC,cAAc;AACrB,SAASC,kBAAkB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD,SAASC,iBAAiBA,CAACC,KAA6B,EAAE;EACxD,MAAM;IAAEC;EAAO,CAAC,GAAGL,kBAAkB,CAAC,CAAC;EAEvC,MAAMM,aAAa,GAAG,CAACD,MAAM,EAAEE,SAAS,EAAEH,KAAK,CAACI,KAAK,CAAC;EAEtD,oBACEN,IAAA,CAACJ,IAAI;IAACW,aAAa,EAAE,CAAE;IAACD,KAAK,EAAEF,aAAc;IAAAI,QAAA,EAC1CN,KAAK,CAACM;EAAQ,CACX,CAAC;AAEX;AAQA,MAAMC,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAEpE,OAAO,SAASC,kBAAkBA,CAACR,KAA8B,EAAE;EACjE,MAAM;IAAES,QAAQ,GAAGF,iBAAiB;IAAEH;EAAM,CAAC,GAAGJ,KAAK;EACrD,MAAM;IAAEC;EAAO,CAAC,GAAGL,kBAAkB,CAAC,CAAC;EAEvC,MAAMM,aAAa,GAAG,CAACD,MAAM,EAAES,UAAU,EAAEN,KAAK,CAAC;EAEjD,oBACEN,IAAA,CAACH,IAAI;IAACS,KAAK,EAAEF,aAAc;IAAAI,QAAA,EACxBG,QAAQ,CAACE,GAAG,CAAC,CAACC,GAAG,EAAEC,KAAK,kBACvBf,IAAA,CAACC,iBAAiB;MAAaK,KAAK,EAAEH,MAAM,EAAEE,SAAU;MAAAG,QAAA,EACrDM;IAAG,GADkBC,KAEL,CACpB;EAAC,CACE,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/calendar/shared/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import { ScrollView, View } from "react-native";
|
|
5
|
+
import { isDateSameDay } from "../../../utils/date-utils.js";
|
|
6
|
+
import { TimelineVariants } from "./variants/index.js";
|
|
7
|
+
const HOUR_HEIGHT = 60;
|
|
8
|
+
function formatHour(hour) {
|
|
9
|
+
if (hour === 0) return "12 AM";
|
|
10
|
+
if (hour < 12) return `${hour} AM`;
|
|
11
|
+
if (hour === 12) return "12 PM";
|
|
12
|
+
return `${hour - 12} PM`;
|
|
13
|
+
}
|
|
14
|
+
function getMinutesFromStartOfDay(date) {
|
|
15
|
+
return date.getHours() * 60 + date.getMinutes();
|
|
16
|
+
}
|
|
17
|
+
function groupOverlappingEvents(events, getStart, getEnd) {
|
|
18
|
+
const sorted = [...events].sort((a, b) => getStart(a).getTime() - getStart(b).getTime());
|
|
19
|
+
const groups = [];
|
|
20
|
+
for (const event of sorted) {
|
|
21
|
+
let placed = false;
|
|
22
|
+
const eStart = getStart(event);
|
|
23
|
+
const eEnd = getEnd(event);
|
|
24
|
+
for (const group of groups) {
|
|
25
|
+
const overlaps = group.some(g => {
|
|
26
|
+
const gStart = getStart(g);
|
|
27
|
+
const gEnd = getEnd(g);
|
|
28
|
+
return eStart >= gStart && eStart < gEnd || eEnd > gStart && eEnd <= gEnd || eStart <= gStart && eEnd >= gEnd;
|
|
29
|
+
});
|
|
30
|
+
if (overlaps) {
|
|
31
|
+
group.push(event);
|
|
32
|
+
placed = true;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!placed) {
|
|
37
|
+
groups.push([event]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return groups;
|
|
41
|
+
}
|
|
42
|
+
import { Text } from "react-native";
|
|
43
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
44
|
+
export function CalendarTimeline(props) {
|
|
45
|
+
const {
|
|
46
|
+
date,
|
|
47
|
+
startHour = 0,
|
|
48
|
+
endHour = 24,
|
|
49
|
+
getStart,
|
|
50
|
+
getEnd,
|
|
51
|
+
keyExtractor,
|
|
52
|
+
renderEvent,
|
|
53
|
+
style
|
|
54
|
+
} = props;
|
|
55
|
+
const variantStyles = TimelineVariants[props.variant || "default"]();
|
|
56
|
+
const hours = useMemo(() => {
|
|
57
|
+
const arr = [];
|
|
58
|
+
for (let i = startHour; i < endHour; i++) {
|
|
59
|
+
arr.push(i);
|
|
60
|
+
}
|
|
61
|
+
return arr;
|
|
62
|
+
}, [startHour, endHour]);
|
|
63
|
+
const allEvents = props.events ?? [];
|
|
64
|
+
const dayEvents = useMemo(() => {
|
|
65
|
+
return allEvents.filter(event => isDateSameDay(getStart(event), date));
|
|
66
|
+
}, [allEvents, date, getStart]);
|
|
67
|
+
const eventGroups = useMemo(() => groupOverlappingEvents(dayEvents, getStart, getEnd), [dayEvents, getStart, getEnd]);
|
|
68
|
+
const now = new Date();
|
|
69
|
+
const isToday = isDateSameDay(now, date);
|
|
70
|
+
const currentTimePosition = isToday ? (getMinutesFromStartOfDay(now) - startHour * 60) / 60 * HOUR_HEIGHT : null;
|
|
71
|
+
return /*#__PURE__*/_jsx(ScrollView, {
|
|
72
|
+
style: [variantStyles.container, style],
|
|
73
|
+
showsVerticalScrollIndicator: true,
|
|
74
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
75
|
+
style: variantStyles.timeline,
|
|
76
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
77
|
+
style: variantStyles.timeColumn,
|
|
78
|
+
children: hours.map(hour => /*#__PURE__*/_jsx(View, {
|
|
79
|
+
style: variantStyles.timeSlot,
|
|
80
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
81
|
+
style: variantStyles.timeText,
|
|
82
|
+
children: formatHour(hour)
|
|
83
|
+
})
|
|
84
|
+
}, hour))
|
|
85
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
86
|
+
style: variantStyles.eventsColumn,
|
|
87
|
+
children: [hours.map(hour => /*#__PURE__*/_jsx(View, {
|
|
88
|
+
style: variantStyles.hourLine
|
|
89
|
+
}, hour)), currentTimePosition != null && currentTimePosition >= 0 && /*#__PURE__*/_jsxs(View, {
|
|
90
|
+
style: {
|
|
91
|
+
position: "absolute",
|
|
92
|
+
left: 0,
|
|
93
|
+
right: 0,
|
|
94
|
+
top: currentTimePosition,
|
|
95
|
+
flexDirection: "row",
|
|
96
|
+
alignItems: "center",
|
|
97
|
+
zIndex: 1000
|
|
98
|
+
},
|
|
99
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
100
|
+
style: variantStyles.currentTimeDot
|
|
101
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
102
|
+
style: variantStyles.currentTimeLineBar
|
|
103
|
+
})]
|
|
104
|
+
}), eventGroups.map(group => group.map(event => {
|
|
105
|
+
const startMinutes = getMinutesFromStartOfDay(getStart(event));
|
|
106
|
+
const endMinutes = getMinutesFromStartOfDay(getEnd(event));
|
|
107
|
+
const duration = endMinutes - startMinutes;
|
|
108
|
+
const top = (startMinutes - startHour * 60) / 60 * HOUR_HEIGHT + 1;
|
|
109
|
+
const height = duration / 60 * HOUR_HEIGHT - 3;
|
|
110
|
+
const indexInGroup = group.indexOf(event);
|
|
111
|
+
const totalInGroup = group.length;
|
|
112
|
+
const eventWidth = `${100 / totalInGroup - 1}%`;
|
|
113
|
+
const left = `${100 / totalInGroup * indexInGroup}%`;
|
|
114
|
+
const layout = {
|
|
115
|
+
top,
|
|
116
|
+
height: Math.max(height, 20),
|
|
117
|
+
left,
|
|
118
|
+
width: eventWidth
|
|
119
|
+
};
|
|
120
|
+
return /*#__PURE__*/_jsx(View, {
|
|
121
|
+
style: {
|
|
122
|
+
position: "absolute",
|
|
123
|
+
top: layout.top,
|
|
124
|
+
height: layout.height,
|
|
125
|
+
left: layout.left,
|
|
126
|
+
width: layout.width
|
|
127
|
+
},
|
|
128
|
+
children: renderEvent(event, layout)
|
|
129
|
+
}, keyExtractor(event));
|
|
130
|
+
}))]
|
|
131
|
+
})]
|
|
132
|
+
})
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=calendar-timeline.js.map
|