@ovok/native 1.8.0 → 1.8.1

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.
Files changed (41) hide show
  1. package/lib/commonjs/modules/ui/components/calendar-grid.js +156 -0
  2. package/lib/commonjs/modules/ui/components/calendar-grid.js.map +1 -0
  3. package/lib/commonjs/modules/ui/components/calendar.js +137 -0
  4. package/lib/commonjs/modules/ui/components/calendar.js.map +1 -0
  5. package/lib/commonjs/modules/ui/components/period-calendar.js +127 -0
  6. package/lib/commonjs/modules/ui/components/period-calendar.js.map +1 -0
  7. package/lib/commonjs/modules/ui/index.js +22 -0
  8. package/lib/commonjs/modules/ui/index.js.map +1 -1
  9. package/lib/commonjs/modules/ui/utils/calendar-date.js +44 -0
  10. package/lib/commonjs/modules/ui/utils/calendar-date.js.map +1 -0
  11. package/lib/module/modules/ui/components/calendar-grid.js +152 -0
  12. package/lib/module/modules/ui/components/calendar-grid.js.map +1 -0
  13. package/lib/module/modules/ui/components/calendar.js +133 -0
  14. package/lib/module/modules/ui/components/calendar.js.map +1 -0
  15. package/lib/module/modules/ui/components/period-calendar.js +122 -0
  16. package/lib/module/modules/ui/components/period-calendar.js.map +1 -0
  17. package/lib/module/modules/ui/index.js +2 -0
  18. package/lib/module/modules/ui/index.js.map +1 -1
  19. package/lib/module/modules/ui/utils/calendar-date.js +36 -0
  20. package/lib/module/modules/ui/utils/calendar-date.js.map +1 -0
  21. package/lib/typescript/commonjs/src/modules/ui/components/calendar-grid.d.ts +23 -0
  22. package/lib/typescript/commonjs/src/modules/ui/components/calendar-grid.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/src/modules/ui/components/calendar.d.ts +32 -0
  24. package/lib/typescript/commonjs/src/modules/ui/components/calendar.d.ts.map +1 -0
  25. package/lib/typescript/commonjs/src/modules/ui/components/period-calendar.d.ts +16 -0
  26. package/lib/typescript/commonjs/src/modules/ui/components/period-calendar.d.ts.map +1 -0
  27. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +2 -0
  28. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/src/modules/ui/utils/calendar-date.d.ts +9 -0
  30. package/lib/typescript/commonjs/src/modules/ui/utils/calendar-date.d.ts.map +1 -0
  31. package/lib/typescript/module/src/modules/ui/components/calendar-grid.d.ts +23 -0
  32. package/lib/typescript/module/src/modules/ui/components/calendar-grid.d.ts.map +1 -0
  33. package/lib/typescript/module/src/modules/ui/components/calendar.d.ts +32 -0
  34. package/lib/typescript/module/src/modules/ui/components/calendar.d.ts.map +1 -0
  35. package/lib/typescript/module/src/modules/ui/components/period-calendar.d.ts +16 -0
  36. package/lib/typescript/module/src/modules/ui/components/period-calendar.d.ts.map +1 -0
  37. package/lib/typescript/module/src/modules/ui/index.d.ts +2 -0
  38. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
  39. package/lib/typescript/module/src/modules/ui/utils/calendar-date.d.ts +9 -0
  40. package/lib/typescript/module/src/modules/ui/utils/calendar-date.d.ts.map +1 -0
  41. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CalendarGrid = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _calendarDate = require("../utils/calendar-date.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const CalendarGridComponent = ({
13
+ activeMonth,
14
+ selectedDate,
15
+ minDate,
16
+ maxDate,
17
+ isDateDisabled,
18
+ markers,
19
+ getMarkerForDate,
20
+ labelForDate,
21
+ locale,
22
+ weekStartsOn,
23
+ testID,
24
+ theme,
25
+ Text,
26
+ onSelectDate
27
+ }) => {
28
+ const dates = (0, _calendarDate.calendarGridDates)(activeMonth, weekStartsOn);
29
+ const firstWeek = (0, _calendarDate.calendarGridDates)(new Date(2024, 0, 1), weekStartsOn).slice(0, 7);
30
+ const weekdays = firstWeek.map(date => ({
31
+ short: new Intl.DateTimeFormat(locale, {
32
+ weekday: "short"
33
+ }).format(date),
34
+ full: new Intl.DateTimeFormat(locale, {
35
+ weekday: "long"
36
+ }).format(date)
37
+ }));
38
+ const dateFormatter = new Intl.DateTimeFormat(locale, {
39
+ dateStyle: "full"
40
+ });
41
+ const selectedKey = selectedDate ? (0, _calendarDate.calendarDateKey)(selectedDate) : undefined;
42
+ const min = (0, _calendarDate.toCalendarDate)(minDate);
43
+ const max = (0, _calendarDate.toCalendarDate)(maxDate);
44
+ const minKey = min ? (0, _calendarDate.calendarDateKey)(min) : undefined;
45
+ const maxKey = max ? (0, _calendarDate.calendarDateKey)(max) : undefined;
46
+ const todayKey = (0, _calendarDate.calendarDateKey)(new Date());
47
+ const markerByDate = new Map();
48
+ for (const marker of markers) {
49
+ const date = (0, _calendarDate.toCalendarDate)(marker.date);
50
+ if (date) {
51
+ markerByDate.set((0, _calendarDate.calendarDateKey)(date), marker);
52
+ }
53
+ }
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
55
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
56
+ accessibilityRole: "list",
57
+ style: styles.weekRow,
58
+ children: weekdays.map((weekday, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
59
+ accessibilityLabel: weekday.full,
60
+ style: styles.weekdayCell,
61
+ testID: `${testID}-weekday-${index}`,
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Text, {
63
+ theme: theme,
64
+ variant: "labelSmall",
65
+ style: {
66
+ color: theme.colors.onSurfaceVariant
67
+ },
68
+ children: weekday.short
69
+ })
70
+ }, `${weekday.full}-${index}`))
71
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
72
+ style: styles.grid,
73
+ children: Array.from({
74
+ length: 6
75
+ }, (_, week) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
76
+ style: styles.weekRow,
77
+ children: dates.slice(week * 7, week * 7 + 7).map((date, weekdayIndex) => {
78
+ const key = (0, _calendarDate.calendarDateKey)(date);
79
+ const marker = getMarkerForDate?.(date) ?? markerByDate.get(key);
80
+ const disabled = minKey !== undefined && key < minKey || maxKey !== undefined && key > maxKey || Boolean(isDateDisabled?.(date));
81
+ const selected = key === selectedKey;
82
+ const isCurrentMonth = date.getMonth() === activeMonth.getMonth();
83
+ const accessibleDate = labelForDate?.(date) ?? dateFormatter.format(date);
84
+ const markerStartsBand = marker && (marker.rangePosition === "single" || marker.rangePosition === "start" || weekdayIndex === 0);
85
+ const markerEndsBand = marker && (marker.rangePosition === "single" || marker.rangePosition === "end" || weekdayIndex === 6);
86
+ const markerStyle = marker?.rangePosition ? {
87
+ backgroundColor: marker.backgroundColor,
88
+ borderBottomLeftRadius: markerStartsBand ? 18 : 0,
89
+ borderBottomRightRadius: markerEndsBand ? 18 : 0,
90
+ borderTopLeftRadius: markerStartsBand ? 18 : 0,
91
+ borderTopRightRadius: markerEndsBand ? 18 : 0
92
+ } : {
93
+ backgroundColor: marker?.backgroundColor,
94
+ borderRadius: 18
95
+ };
96
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
97
+ accessibilityRole: "button",
98
+ accessibilityLabel: marker?.label ? `${accessibleDate}, ${marker.label}` : accessibleDate,
99
+ accessibilityState: {
100
+ selected,
101
+ disabled
102
+ },
103
+ disabled: disabled,
104
+ onPress: () => onSelectDate(date),
105
+ style: ({
106
+ pressed
107
+ }) => [styles.dayCell, markerStyle, selected && {
108
+ borderColor: theme.colors.primary,
109
+ borderWidth: 2
110
+ }, !selected && key === todayKey && {
111
+ borderColor: theme.colors.outline,
112
+ borderWidth: 1
113
+ }, disabled && styles.disabledDay, pressed && !disabled && styles.pressedDay],
114
+ testID: `${testID}-day-${key}`,
115
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Text, {
116
+ theme: theme,
117
+ variant: selected ? "titleSmall" : "bodyMedium",
118
+ style: {
119
+ color: marker?.color ?? (selected ? theme.colors.primary : isCurrentMonth ? theme.colors.onSurface : theme.colors.onSurfaceVariant)
120
+ },
121
+ children: date.getDate()
122
+ })
123
+ }, key);
124
+ })
125
+ }, week))
126
+ })]
127
+ });
128
+ };
129
+ const CalendarGrid = exports.CalendarGrid = /*#__PURE__*/React.memo(CalendarGridComponent);
130
+ const styles = _reactNative.StyleSheet.create({
131
+ weekRow: {
132
+ flexDirection: "row"
133
+ },
134
+ weekdayCell: {
135
+ alignItems: "center",
136
+ flex: 1,
137
+ justifyContent: "center",
138
+ minHeight: 28
139
+ },
140
+ grid: {
141
+ width: "100%"
142
+ },
143
+ dayCell: {
144
+ alignItems: "center",
145
+ flex: 1,
146
+ height: 40,
147
+ justifyContent: "center"
148
+ },
149
+ disabledDay: {
150
+ opacity: 0.35
151
+ },
152
+ pressedDay: {
153
+ opacity: 0.65
154
+ }
155
+ });
156
+ //# sourceMappingURL=calendar-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_calendarDate","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CalendarGridComponent","activeMonth","selectedDate","minDate","maxDate","isDateDisabled","markers","getMarkerForDate","labelForDate","locale","weekStartsOn","testID","theme","Text","onSelectDate","dates","calendarGridDates","firstWeek","Date","slice","weekdays","map","date","short","Intl","DateTimeFormat","weekday","format","full","dateFormatter","dateStyle","selectedKey","calendarDateKey","undefined","min","toCalendarDate","max","minKey","maxKey","todayKey","markerByDate","Map","marker","jsxs","Fragment","children","jsx","View","accessibilityRole","style","styles","weekRow","index","accessibilityLabel","weekdayCell","variant","color","colors","onSurfaceVariant","grid","Array","from","length","_","week","weekdayIndex","key","disabled","Boolean","selected","isCurrentMonth","getMonth","accessibleDate","markerStartsBand","rangePosition","markerEndsBand","markerStyle","backgroundColor","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","borderRadius","Pressable","label","accessibilityState","onPress","pressed","dayCell","borderColor","primary","borderWidth","outline","disabledDay","pressedDay","onSurface","getDate","CalendarGrid","exports","memo","StyleSheet","create","flexDirection","alignItems","flex","justifyContent","minHeight","width","height","opacity"],"sourceRoot":"../../../../../src","sources":["modules/ui/components/calendar-grid.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Calendar = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativePaper = require("react-native-paper");
10
+ var _useOvokUi = require("../use-ovok-ui.js");
11
+ var _calendarDate = require("../utils/calendar-date.js");
12
+ var _calendarGrid = require("./calendar-grid.js");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const CalendarComponent = ({
16
+ selectedDate,
17
+ defaultSelectedDate,
18
+ onDateSelect,
19
+ visibleMonth,
20
+ defaultVisibleMonth,
21
+ onVisibleMonthChange,
22
+ locale,
23
+ weekStartsOn = 1,
24
+ minDate,
25
+ maxDate,
26
+ isDateDisabled,
27
+ markers = [],
28
+ getMarkerForDate,
29
+ labelForDate,
30
+ previousMonthLabel = "Previous month",
31
+ nextMonthLabel = "Next month",
32
+ testID = "calendar",
33
+ ...uiProps
34
+ }) => {
35
+ const {
36
+ theme,
37
+ slots
38
+ } = (0, _useOvokUi.useOvokUi)(uiProps);
39
+ const Text = slots.Text ?? _reactNativePaper.Text;
40
+ const [internalVisibleMonth, setInternalVisibleMonth] = React.useState(() => (0, _calendarDate.firstOfMonth)((0, _calendarDate.toCalendarDate)(defaultVisibleMonth) ?? (0, _calendarDate.toCalendarDate)(visibleMonth) ?? (0, _calendarDate.toCalendarDate)(defaultSelectedDate) ?? (0, _calendarDate.toCalendarDate)(selectedDate ?? undefined) ?? new Date()));
41
+ const [internalSelectedDate, setInternalSelectedDate] = React.useState(() => (0, _calendarDate.toCalendarDate)(defaultSelectedDate));
42
+ const activeMonth = (0, _calendarDate.firstOfMonth)((0, _calendarDate.toCalendarDate)(visibleMonth) ?? internalVisibleMonth);
43
+ const activeSelectedDate = selectedDate === undefined ? internalSelectedDate : (0, _calendarDate.toCalendarDate)(selectedDate ?? undefined);
44
+ const monthLabel = new Intl.DateTimeFormat(locale, {
45
+ month: "long",
46
+ year: "numeric"
47
+ }).format(activeMonth);
48
+ const changeMonth = amount => {
49
+ const nextMonth = (0, _calendarDate.monthBy)(activeMonth, amount);
50
+ if (visibleMonth === undefined) {
51
+ setInternalVisibleMonth(nextMonth);
52
+ }
53
+ onVisibleMonthChange?.(nextMonth);
54
+ };
55
+ const selectDate = date => {
56
+ if (selectedDate === undefined) {
57
+ setInternalSelectedDate(date);
58
+ }
59
+ if (date.getMonth() !== activeMonth.getMonth() || date.getFullYear() !== activeMonth.getFullYear()) {
60
+ if (visibleMonth === undefined) {
61
+ setInternalVisibleMonth((0, _calendarDate.firstOfMonth)(date));
62
+ }
63
+ onVisibleMonthChange?.((0, _calendarDate.firstOfMonth)(date));
64
+ }
65
+ onDateSelect?.(date);
66
+ };
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
68
+ testID: testID,
69
+ style: [styles.container, {
70
+ gap: theme.spacing(1)
71
+ }],
72
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
73
+ style: styles.monthHeader,
74
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
75
+ accessibilityRole: "button",
76
+ accessibilityLabel: previousMonthLabel,
77
+ onPress: () => changeMonth(-1),
78
+ style: styles.navigationButton,
79
+ testID: `${testID}-previous-month`,
80
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Text, {
81
+ theme: theme,
82
+ variant: "titleLarge",
83
+ children: "\u2039"
84
+ })
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Text, {
86
+ accessibilityRole: "header",
87
+ theme: theme,
88
+ variant: "titleMedium",
89
+ children: monthLabel
90
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
91
+ accessibilityRole: "button",
92
+ accessibilityLabel: nextMonthLabel,
93
+ onPress: () => changeMonth(1),
94
+ style: styles.navigationButton,
95
+ testID: `${testID}-next-month`,
96
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Text, {
97
+ theme: theme,
98
+ variant: "titleLarge",
99
+ children: "\u203A"
100
+ })
101
+ })]
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_calendarGrid.CalendarGrid, {
103
+ activeMonth: activeMonth,
104
+ selectedDate: activeSelectedDate,
105
+ minDate: minDate,
106
+ maxDate: maxDate,
107
+ isDateDisabled: isDateDisabled,
108
+ markers: markers,
109
+ getMarkerForDate: getMarkerForDate,
110
+ labelForDate: labelForDate,
111
+ locale: locale,
112
+ weekStartsOn: weekStartsOn,
113
+ testID: testID,
114
+ theme: theme,
115
+ Text: Text,
116
+ onSelectDate: selectDate
117
+ })]
118
+ });
119
+ };
120
+ const Calendar = exports.Calendar = /*#__PURE__*/React.memo(CalendarComponent);
121
+ const styles = _reactNative.StyleSheet.create({
122
+ container: {
123
+ width: "100%"
124
+ },
125
+ monthHeader: {
126
+ alignItems: "center",
127
+ flexDirection: "row",
128
+ justifyContent: "space-between"
129
+ },
130
+ navigationButton: {
131
+ alignItems: "center",
132
+ height: 40,
133
+ justifyContent: "center",
134
+ width: 40
135
+ }
136
+ });
137
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativePaper","_useOvokUi","_calendarDate","_calendarGrid","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CalendarComponent","selectedDate","defaultSelectedDate","onDateSelect","visibleMonth","defaultVisibleMonth","onVisibleMonthChange","locale","weekStartsOn","minDate","maxDate","isDateDisabled","markers","getMarkerForDate","labelForDate","previousMonthLabel","nextMonthLabel","testID","uiProps","theme","slots","useOvokUi","Text","PaperText","internalVisibleMonth","setInternalVisibleMonth","useState","firstOfMonth","toCalendarDate","undefined","Date","internalSelectedDate","setInternalSelectedDate","activeMonth","activeSelectedDate","monthLabel","Intl","DateTimeFormat","month","year","format","changeMonth","amount","nextMonth","monthBy","selectDate","date","getMonth","getFullYear","jsxs","View","style","styles","container","gap","spacing","children","monthHeader","jsx","Pressable","accessibilityRole","accessibilityLabel","onPress","navigationButton","variant","CalendarGrid","onSelectDate","Calendar","exports","memo","StyleSheet","create","width","alignItems","flexDirection","justifyContent","height"],"sourceRoot":"../../../../../src","sources":["modules/ui/components/calendar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PeriodCalendar = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativePaper = require("react-native-paper");
10
+ var _useOvokUi = require("../use-ovok-ui.js");
11
+ var _calendarDate = require("../utils/calendar-date.js");
12
+ var _calendar = require("./calendar.js");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const normalizePeriods = periods => {
16
+ const valid = periods.flatMap(({
17
+ startDate,
18
+ endDate
19
+ }) => {
20
+ const start = (0, _calendarDate.toCalendarDate)(startDate);
21
+ const end = (0, _calendarDate.toCalendarDate)(endDate);
22
+ if (!start || !end || end < start) {
23
+ return [];
24
+ }
25
+ return [{
26
+ start,
27
+ end
28
+ }];
29
+ }).sort((left, right) => left.start.getTime() - right.start.getTime());
30
+ const merged = [];
31
+ for (const period of valid) {
32
+ const previous = merged[merged.length - 1];
33
+ const dayAfterPrevious = previous ? new Date(previous.end.getFullYear(), previous.end.getMonth(), previous.end.getDate() + 1) : undefined;
34
+ if (previous && dayAfterPrevious && period.start <= dayAfterPrevious) {
35
+ if (period.end > previous.end) {
36
+ previous.end = period.end;
37
+ }
38
+ } else {
39
+ merged.push({
40
+ ...period
41
+ });
42
+ }
43
+ }
44
+ return merged.map(({
45
+ start,
46
+ end
47
+ }) => ({
48
+ start,
49
+ end,
50
+ startKey: (0, _calendarDate.calendarDateKey)(start),
51
+ endKey: (0, _calendarDate.calendarDateKey)(end)
52
+ }));
53
+ };
54
+ const PeriodCalendar = ({
55
+ periods,
56
+ periodLabel = "Period",
57
+ labelForPeriodDate,
58
+ showLegend = true,
59
+ testID = "period-calendar",
60
+ ...calendarProps
61
+ }) => {
62
+ const {
63
+ theme,
64
+ slots
65
+ } = (0, _useOvokUi.useOvokUi)(calendarProps);
66
+ const Text = slots.Text ?? _reactNativePaper.Text;
67
+ const normalizedPeriods = React.useMemo(() => normalizePeriods(periods), [periods]);
68
+ const getMarkerForDate = React.useCallback(date => {
69
+ const key = (0, _calendarDate.calendarDateKey)(date);
70
+ const period = normalizedPeriods.find(({
71
+ startKey,
72
+ endKey
73
+ }) => key >= startKey && key <= endKey);
74
+ if (!period) {
75
+ return undefined;
76
+ }
77
+ const isStart = key === period.startKey;
78
+ const isEnd = key === period.endKey;
79
+ return {
80
+ date,
81
+ label: labelForPeriodDate?.(date) ?? periodLabel,
82
+ backgroundColor: theme.colors.tertiaryContainer,
83
+ color: theme.colors.onTertiaryContainer,
84
+ rangePosition: isStart && isEnd ? "single" : isStart ? "start" : isEnd ? "end" : "middle"
85
+ };
86
+ }, [labelForPeriodDate, normalizedPeriods, periodLabel, theme.colors.onTertiaryContainer, theme.colors.tertiaryContainer]);
87
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
88
+ testID: testID,
89
+ style: styles.container,
90
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_calendar.Calendar, {
91
+ ...calendarProps,
92
+ getMarkerForDate: getMarkerForDate,
93
+ testID: testID
94
+ }), showLegend && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
95
+ accessibilityRole: "text",
96
+ style: styles.legend,
97
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
98
+ accessible: false,
99
+ style: [styles.legendMarker, {
100
+ backgroundColor: theme.colors.tertiaryContainer
101
+ }]
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Text, {
103
+ theme: theme,
104
+ variant: "bodySmall",
105
+ children: [periodLabel, " days"]
106
+ })]
107
+ })]
108
+ });
109
+ };
110
+ exports.PeriodCalendar = PeriodCalendar;
111
+ const styles = _reactNative.StyleSheet.create({
112
+ container: {
113
+ gap: 12,
114
+ width: "100%"
115
+ },
116
+ legend: {
117
+ alignItems: "center",
118
+ flexDirection: "row",
119
+ gap: 8
120
+ },
121
+ legendMarker: {
122
+ borderRadius: 8,
123
+ height: 16,
124
+ width: 16
125
+ }
126
+ });
127
+ //# sourceMappingURL=period-calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativePaper","_useOvokUi","_calendarDate","_calendar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","normalizePeriods","periods","valid","flatMap","startDate","endDate","start","toCalendarDate","end","sort","left","right","getTime","merged","period","previous","length","dayAfterPrevious","Date","getFullYear","getMonth","getDate","undefined","push","map","startKey","calendarDateKey","endKey","PeriodCalendar","periodLabel","labelForPeriodDate","showLegend","testID","calendarProps","theme","slots","useOvokUi","Text","PaperText","normalizedPeriods","useMemo","getMarkerForDate","useCallback","date","key","find","isStart","isEnd","label","backgroundColor","colors","tertiaryContainer","color","onTertiaryContainer","rangePosition","jsxs","View","style","styles","container","children","jsx","Calendar","accessibilityRole","legend","accessible","legendMarker","variant","exports","StyleSheet","create","gap","width","alignItems","flexDirection","borderRadius","height"],"sourceRoot":"../../../../../src","sources":["modules/ui/components/period-calendar.tsx"],"mappings":"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","ignoreList":[]}
@@ -124,4 +124,26 @@ Object.keys(_measurementTrendChart).forEach(function (key) {
124
124
  }
125
125
  });
126
126
  });
127
+ var _calendar = require("./components/calendar.js");
128
+ Object.keys(_calendar).forEach(function (key) {
129
+ if (key === "default" || key === "__esModule") return;
130
+ if (key in exports && exports[key] === _calendar[key]) return;
131
+ Object.defineProperty(exports, key, {
132
+ enumerable: true,
133
+ get: function () {
134
+ return _calendar[key];
135
+ }
136
+ });
137
+ });
138
+ var _periodCalendar = require("./components/period-calendar.js");
139
+ Object.keys(_periodCalendar).forEach(function (key) {
140
+ if (key === "default" || key === "__esModule") return;
141
+ if (key in exports && exports[key] === _periodCalendar[key]) return;
142
+ Object.defineProperty(exports, key, {
143
+ enumerable: true,
144
+ get: function () {
145
+ return _periodCalendar[key];
146
+ }
147
+ });
148
+ });
127
149
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useOvokUi","_ecgStripViewer","_manualEntryForm","_supportedDevicesCatalogList","_bluetoothStateNotice","_pairingFlow","_urineTestResult","_healthImportCard","_backgroundSyncSetting","_measurementTrendChart"],"sourceRoot":"../../../../src","sources":["modules/ui/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useOvokUi","_ecgStripViewer","_manualEntryForm","_supportedDevicesCatalogList","_bluetoothStateNotice","_pairingFlow","_urineTestResult","_healthImportCard","_backgroundSyncSetting","_measurementTrendChart","_calendar","_periodCalendar"],"sourceRoot":"../../../../src","sources":["modules/ui/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toCalendarDate = exports.monthBy = exports.firstOfMonth = exports.calendarGridDates = exports.calendarDateKey = void 0;
7
+ const toCalendarDate = value => {
8
+ if (value === undefined) {
9
+ return undefined;
10
+ }
11
+ if (value instanceof Date) {
12
+ if (Number.isNaN(value.getTime())) {
13
+ return undefined;
14
+ }
15
+ return new Date(value.getFullYear(), value.getMonth(), value.getDate());
16
+ }
17
+ const dateOnly = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
18
+ if (dateOnly) {
19
+ const year = Number(dateOnly[1]);
20
+ const month = Number(dateOnly[2]) - 1;
21
+ const day = Number(dateOnly[3]);
22
+ const date = new Date(year, month, day);
23
+ return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day ? date : undefined;
24
+ }
25
+ const parsed = new Date(value);
26
+ return Number.isNaN(parsed.getTime()) ? undefined : new Date(parsed.getFullYear(), parsed.getMonth(), parsed.getDate());
27
+ };
28
+ exports.toCalendarDate = toCalendarDate;
29
+ const calendarDateKey = date => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
30
+ exports.calendarDateKey = calendarDateKey;
31
+ const firstOfMonth = date => new Date(date.getFullYear(), date.getMonth(), 1);
32
+ exports.firstOfMonth = firstOfMonth;
33
+ const calendarGridDates = (visibleMonth, weekStartsOn) => {
34
+ const first = firstOfMonth(visibleMonth);
35
+ const offset = (first.getDay() - weekStartsOn + 7) % 7;
36
+ const gridStart = new Date(first.getFullYear(), first.getMonth(), 1 - offset);
37
+ return Array.from({
38
+ length: 42
39
+ }, (_, index) => new Date(gridStart.getFullYear(), gridStart.getMonth(), gridStart.getDate() + index));
40
+ };
41
+ exports.calendarGridDates = calendarGridDates;
42
+ const monthBy = (date, amount) => new Date(date.getFullYear(), date.getMonth() + amount, 1);
43
+ exports.monthBy = monthBy;
44
+ //# sourceMappingURL=calendar-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toCalendarDate","value","undefined","Date","Number","isNaN","getTime","getFullYear","getMonth","getDate","dateOnly","exec","year","month","day","date","parsed","exports","calendarDateKey","String","padStart","firstOfMonth","calendarGridDates","visibleMonth","weekStartsOn","first","offset","getDay","gridStart","Array","from","length","_","index","monthBy","amount"],"sourceRoot":"../../../../../src","sources":["modules/ui/utils/calendar-date.ts"],"mappings":"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","ignoreList":[]}