@ovok/native 1.7.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 (149) hide show
  1. package/lib/commonjs/modules/data-sync/index.js +15 -0
  2. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  3. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +25 -19
  4. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  5. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +73 -17
  6. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +14 -0
  8. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +45 -7
  10. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
  12. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
  14. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  15. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +66 -23
  16. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  17. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js +4 -1
  18. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  19. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +3 -3
  20. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  21. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +364 -0
  22. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -0
  23. package/lib/commonjs/modules/data-sync/utils/health-units.js +13 -11
  24. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js +34 -0
  26. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
  27. package/lib/commonjs/modules/ui/components/calendar-grid.js +156 -0
  28. package/lib/commonjs/modules/ui/components/calendar-grid.js.map +1 -0
  29. package/lib/commonjs/modules/ui/components/calendar.js +137 -0
  30. package/lib/commonjs/modules/ui/components/calendar.js.map +1 -0
  31. package/lib/commonjs/modules/ui/components/period-calendar.js +127 -0
  32. package/lib/commonjs/modules/ui/components/period-calendar.js.map +1 -0
  33. package/lib/commonjs/modules/ui/index.js +22 -0
  34. package/lib/commonjs/modules/ui/index.js.map +1 -1
  35. package/lib/commonjs/modules/ui/utils/calendar-date.js +44 -0
  36. package/lib/commonjs/modules/ui/utils/calendar-date.js.map +1 -0
  37. package/lib/module/modules/data-sync/index.js +1 -0
  38. package/lib/module/modules/data-sync/index.js.map +1 -1
  39. package/lib/module/modules/data-sync/services/base-health-sync-service.js +25 -19
  40. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  41. package/lib/module/modules/data-sync/services/managers/data-processor.js +74 -18
  42. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  43. package/lib/module/modules/data-sync/services/managers/storage-manager.js +14 -0
  44. package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  45. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +45 -7
  46. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  47. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
  48. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  49. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
  50. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  51. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +66 -22
  52. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  53. package/lib/module/modules/data-sync/utils/get-total-records-count.js +4 -1
  54. package/lib/module/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  55. package/lib/module/modules/data-sync/utils/get-total-samples-count.js +2 -2
  56. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  57. package/lib/module/modules/data-sync/utils/health-data-catalog.js +360 -0
  58. package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -0
  59. package/lib/module/modules/data-sync/utils/health-units.js +13 -11
  60. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  61. package/lib/module/modules/data-sync/utils/healthkit-data-types.js +26 -0
  62. package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
  63. package/lib/module/modules/ui/components/calendar-grid.js +152 -0
  64. package/lib/module/modules/ui/components/calendar-grid.js.map +1 -0
  65. package/lib/module/modules/ui/components/calendar.js +133 -0
  66. package/lib/module/modules/ui/components/calendar.js.map +1 -0
  67. package/lib/module/modules/ui/components/period-calendar.js +122 -0
  68. package/lib/module/modules/ui/components/period-calendar.js.map +1 -0
  69. package/lib/module/modules/ui/index.js +2 -0
  70. package/lib/module/modules/ui/index.js.map +1 -1
  71. package/lib/module/modules/ui/utils/calendar-date.js +36 -0
  72. package/lib/module/modules/ui/utils/calendar-date.js.map +1 -0
  73. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
  74. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  77. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
  79. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
  81. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
  83. package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
  85. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  87. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
  89. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
  92. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
  96. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
  97. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts +1 -1
  98. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
  100. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/src/modules/ui/components/calendar-grid.d.ts +23 -0
  102. package/lib/typescript/commonjs/src/modules/ui/components/calendar-grid.d.ts.map +1 -0
  103. package/lib/typescript/commonjs/src/modules/ui/components/calendar.d.ts +32 -0
  104. package/lib/typescript/commonjs/src/modules/ui/components/calendar.d.ts.map +1 -0
  105. package/lib/typescript/commonjs/src/modules/ui/components/period-calendar.d.ts +16 -0
  106. package/lib/typescript/commonjs/src/modules/ui/components/period-calendar.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +2 -0
  108. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/modules/ui/utils/calendar-date.d.ts +9 -0
  110. package/lib/typescript/commonjs/src/modules/ui/utils/calendar-date.d.ts.map +1 -0
  111. package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
  112. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  113. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  114. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  115. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  116. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
  117. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  118. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
  119. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  120. package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
  121. package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
  122. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
  123. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  124. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  125. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  126. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
  127. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  128. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  129. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
  130. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  131. package/lib/typescript/module/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  132. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  133. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
  134. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
  135. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts +1 -1
  136. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  137. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
  138. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
  139. package/lib/typescript/module/src/modules/ui/components/calendar-grid.d.ts +23 -0
  140. package/lib/typescript/module/src/modules/ui/components/calendar-grid.d.ts.map +1 -0
  141. package/lib/typescript/module/src/modules/ui/components/calendar.d.ts +32 -0
  142. package/lib/typescript/module/src/modules/ui/components/calendar.d.ts.map +1 -0
  143. package/lib/typescript/module/src/modules/ui/components/period-calendar.d.ts +16 -0
  144. package/lib/typescript/module/src/modules/ui/components/period-calendar.d.ts.map +1 -0
  145. package/lib/typescript/module/src/modules/ui/index.d.ts +2 -0
  146. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
  147. package/lib/typescript/module/src/modules/ui/utils/calendar-date.d.ts +9 -0
  148. package/lib/typescript/module/src/modules/ui/utils/calendar-date.d.ts.map +1 -0
  149. package/package.json +1 -1
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ import { Pressable, StyleSheet, View } from "react-native";
5
+ import { calendarDateKey, calendarGridDates, toCalendarDate } from "../utils/calendar-date.js";
6
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const CalendarGridComponent = ({
8
+ activeMonth,
9
+ selectedDate,
10
+ minDate,
11
+ maxDate,
12
+ isDateDisabled,
13
+ markers,
14
+ getMarkerForDate,
15
+ labelForDate,
16
+ locale,
17
+ weekStartsOn,
18
+ testID,
19
+ theme,
20
+ Text,
21
+ onSelectDate
22
+ }) => {
23
+ const dates = calendarGridDates(activeMonth, weekStartsOn);
24
+ const firstWeek = calendarGridDates(new Date(2024, 0, 1), weekStartsOn).slice(0, 7);
25
+ const weekdays = firstWeek.map(date => ({
26
+ short: new Intl.DateTimeFormat(locale, {
27
+ weekday: "short"
28
+ }).format(date),
29
+ full: new Intl.DateTimeFormat(locale, {
30
+ weekday: "long"
31
+ }).format(date)
32
+ }));
33
+ const dateFormatter = new Intl.DateTimeFormat(locale, {
34
+ dateStyle: "full"
35
+ });
36
+ const selectedKey = selectedDate ? calendarDateKey(selectedDate) : undefined;
37
+ const min = toCalendarDate(minDate);
38
+ const max = toCalendarDate(maxDate);
39
+ const minKey = min ? calendarDateKey(min) : undefined;
40
+ const maxKey = max ? calendarDateKey(max) : undefined;
41
+ const todayKey = calendarDateKey(new Date());
42
+ const markerByDate = new Map();
43
+ for (const marker of markers) {
44
+ const date = toCalendarDate(marker.date);
45
+ if (date) {
46
+ markerByDate.set(calendarDateKey(date), marker);
47
+ }
48
+ }
49
+ return /*#__PURE__*/_jsxs(_Fragment, {
50
+ children: [/*#__PURE__*/_jsx(View, {
51
+ accessibilityRole: "list",
52
+ style: styles.weekRow,
53
+ children: weekdays.map((weekday, index) => /*#__PURE__*/_jsx(View, {
54
+ accessibilityLabel: weekday.full,
55
+ style: styles.weekdayCell,
56
+ testID: `${testID}-weekday-${index}`,
57
+ children: /*#__PURE__*/_jsx(Text, {
58
+ theme: theme,
59
+ variant: "labelSmall",
60
+ style: {
61
+ color: theme.colors.onSurfaceVariant
62
+ },
63
+ children: weekday.short
64
+ })
65
+ }, `${weekday.full}-${index}`))
66
+ }), /*#__PURE__*/_jsx(View, {
67
+ style: styles.grid,
68
+ children: Array.from({
69
+ length: 6
70
+ }, (_, week) => /*#__PURE__*/_jsx(View, {
71
+ style: styles.weekRow,
72
+ children: dates.slice(week * 7, week * 7 + 7).map((date, weekdayIndex) => {
73
+ const key = calendarDateKey(date);
74
+ const marker = getMarkerForDate?.(date) ?? markerByDate.get(key);
75
+ const disabled = minKey !== undefined && key < minKey || maxKey !== undefined && key > maxKey || Boolean(isDateDisabled?.(date));
76
+ const selected = key === selectedKey;
77
+ const isCurrentMonth = date.getMonth() === activeMonth.getMonth();
78
+ const accessibleDate = labelForDate?.(date) ?? dateFormatter.format(date);
79
+ const markerStartsBand = marker && (marker.rangePosition === "single" || marker.rangePosition === "start" || weekdayIndex === 0);
80
+ const markerEndsBand = marker && (marker.rangePosition === "single" || marker.rangePosition === "end" || weekdayIndex === 6);
81
+ const markerStyle = marker?.rangePosition ? {
82
+ backgroundColor: marker.backgroundColor,
83
+ borderBottomLeftRadius: markerStartsBand ? 18 : 0,
84
+ borderBottomRightRadius: markerEndsBand ? 18 : 0,
85
+ borderTopLeftRadius: markerStartsBand ? 18 : 0,
86
+ borderTopRightRadius: markerEndsBand ? 18 : 0
87
+ } : {
88
+ backgroundColor: marker?.backgroundColor,
89
+ borderRadius: 18
90
+ };
91
+ return /*#__PURE__*/_jsx(Pressable, {
92
+ accessibilityRole: "button",
93
+ accessibilityLabel: marker?.label ? `${accessibleDate}, ${marker.label}` : accessibleDate,
94
+ accessibilityState: {
95
+ selected,
96
+ disabled
97
+ },
98
+ disabled: disabled,
99
+ onPress: () => onSelectDate(date),
100
+ style: ({
101
+ pressed
102
+ }) => [styles.dayCell, markerStyle, selected && {
103
+ borderColor: theme.colors.primary,
104
+ borderWidth: 2
105
+ }, !selected && key === todayKey && {
106
+ borderColor: theme.colors.outline,
107
+ borderWidth: 1
108
+ }, disabled && styles.disabledDay, pressed && !disabled && styles.pressedDay],
109
+ testID: `${testID}-day-${key}`,
110
+ children: /*#__PURE__*/_jsx(Text, {
111
+ theme: theme,
112
+ variant: selected ? "titleSmall" : "bodyMedium",
113
+ style: {
114
+ color: marker?.color ?? (selected ? theme.colors.primary : isCurrentMonth ? theme.colors.onSurface : theme.colors.onSurfaceVariant)
115
+ },
116
+ children: date.getDate()
117
+ })
118
+ }, key);
119
+ })
120
+ }, week))
121
+ })]
122
+ });
123
+ };
124
+ const CalendarGrid = /*#__PURE__*/React.memo(CalendarGridComponent);
125
+ const styles = StyleSheet.create({
126
+ weekRow: {
127
+ flexDirection: "row"
128
+ },
129
+ weekdayCell: {
130
+ alignItems: "center",
131
+ flex: 1,
132
+ justifyContent: "center",
133
+ minHeight: 28
134
+ },
135
+ grid: {
136
+ width: "100%"
137
+ },
138
+ dayCell: {
139
+ alignItems: "center",
140
+ flex: 1,
141
+ height: 40,
142
+ justifyContent: "center"
143
+ },
144
+ disabledDay: {
145
+ opacity: 0.35
146
+ },
147
+ pressedDay: {
148
+ opacity: 0.65
149
+ }
150
+ });
151
+ export { CalendarGrid };
152
+ //# sourceMappingURL=calendar-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","StyleSheet","View","calendarDateKey","calendarGridDates","toCalendarDate","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","CalendarGridComponent","activeMonth","selectedDate","minDate","maxDate","isDateDisabled","markers","getMarkerForDate","labelForDate","locale","weekStartsOn","testID","theme","Text","onSelectDate","dates","firstWeek","Date","slice","weekdays","map","date","short","Intl","DateTimeFormat","weekday","format","full","dateFormatter","dateStyle","selectedKey","undefined","min","max","minKey","maxKey","todayKey","markerByDate","Map","marker","set","children","accessibilityRole","style","styles","weekRow","index","accessibilityLabel","weekdayCell","variant","color","colors","onSurfaceVariant","grid","Array","from","length","_","week","weekdayIndex","key","get","disabled","Boolean","selected","isCurrentMonth","getMonth","accessibleDate","markerStartsBand","rangePosition","markerEndsBand","markerStyle","backgroundColor","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","borderRadius","label","accessibilityState","onPress","pressed","dayCell","borderColor","primary","borderWidth","outline","disabledDay","pressedDay","onSurface","getDate","CalendarGrid","memo","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,133 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ import { Pressable, StyleSheet, View } from "react-native";
5
+ import { Text as PaperText } from "react-native-paper";
6
+ import { useOvokUi } from "../use-ovok-ui.js";
7
+ import { firstOfMonth, monthBy, toCalendarDate } from "../utils/calendar-date.js";
8
+ import { CalendarGrid } from "./calendar-grid.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const CalendarComponent = ({
11
+ selectedDate,
12
+ defaultSelectedDate,
13
+ onDateSelect,
14
+ visibleMonth,
15
+ defaultVisibleMonth,
16
+ onVisibleMonthChange,
17
+ locale,
18
+ weekStartsOn = 1,
19
+ minDate,
20
+ maxDate,
21
+ isDateDisabled,
22
+ markers = [],
23
+ getMarkerForDate,
24
+ labelForDate,
25
+ previousMonthLabel = "Previous month",
26
+ nextMonthLabel = "Next month",
27
+ testID = "calendar",
28
+ ...uiProps
29
+ }) => {
30
+ const {
31
+ theme,
32
+ slots
33
+ } = useOvokUi(uiProps);
34
+ const Text = slots.Text ?? PaperText;
35
+ const [internalVisibleMonth, setInternalVisibleMonth] = React.useState(() => firstOfMonth(toCalendarDate(defaultVisibleMonth) ?? toCalendarDate(visibleMonth) ?? toCalendarDate(defaultSelectedDate) ?? toCalendarDate(selectedDate ?? undefined) ?? new Date()));
36
+ const [internalSelectedDate, setInternalSelectedDate] = React.useState(() => toCalendarDate(defaultSelectedDate));
37
+ const activeMonth = firstOfMonth(toCalendarDate(visibleMonth) ?? internalVisibleMonth);
38
+ const activeSelectedDate = selectedDate === undefined ? internalSelectedDate : toCalendarDate(selectedDate ?? undefined);
39
+ const monthLabel = new Intl.DateTimeFormat(locale, {
40
+ month: "long",
41
+ year: "numeric"
42
+ }).format(activeMonth);
43
+ const changeMonth = amount => {
44
+ const nextMonth = monthBy(activeMonth, amount);
45
+ if (visibleMonth === undefined) {
46
+ setInternalVisibleMonth(nextMonth);
47
+ }
48
+ onVisibleMonthChange?.(nextMonth);
49
+ };
50
+ const selectDate = date => {
51
+ if (selectedDate === undefined) {
52
+ setInternalSelectedDate(date);
53
+ }
54
+ if (date.getMonth() !== activeMonth.getMonth() || date.getFullYear() !== activeMonth.getFullYear()) {
55
+ if (visibleMonth === undefined) {
56
+ setInternalVisibleMonth(firstOfMonth(date));
57
+ }
58
+ onVisibleMonthChange?.(firstOfMonth(date));
59
+ }
60
+ onDateSelect?.(date);
61
+ };
62
+ return /*#__PURE__*/_jsxs(View, {
63
+ testID: testID,
64
+ style: [styles.container, {
65
+ gap: theme.spacing(1)
66
+ }],
67
+ children: [/*#__PURE__*/_jsxs(View, {
68
+ style: styles.monthHeader,
69
+ children: [/*#__PURE__*/_jsx(Pressable, {
70
+ accessibilityRole: "button",
71
+ accessibilityLabel: previousMonthLabel,
72
+ onPress: () => changeMonth(-1),
73
+ style: styles.navigationButton,
74
+ testID: `${testID}-previous-month`,
75
+ children: /*#__PURE__*/_jsx(Text, {
76
+ theme: theme,
77
+ variant: "titleLarge",
78
+ children: "\u2039"
79
+ })
80
+ }), /*#__PURE__*/_jsx(Text, {
81
+ accessibilityRole: "header",
82
+ theme: theme,
83
+ variant: "titleMedium",
84
+ children: monthLabel
85
+ }), /*#__PURE__*/_jsx(Pressable, {
86
+ accessibilityRole: "button",
87
+ accessibilityLabel: nextMonthLabel,
88
+ onPress: () => changeMonth(1),
89
+ style: styles.navigationButton,
90
+ testID: `${testID}-next-month`,
91
+ children: /*#__PURE__*/_jsx(Text, {
92
+ theme: theme,
93
+ variant: "titleLarge",
94
+ children: "\u203A"
95
+ })
96
+ })]
97
+ }), /*#__PURE__*/_jsx(CalendarGrid, {
98
+ activeMonth: activeMonth,
99
+ selectedDate: activeSelectedDate,
100
+ minDate: minDate,
101
+ maxDate: maxDate,
102
+ isDateDisabled: isDateDisabled,
103
+ markers: markers,
104
+ getMarkerForDate: getMarkerForDate,
105
+ labelForDate: labelForDate,
106
+ locale: locale,
107
+ weekStartsOn: weekStartsOn,
108
+ testID: testID,
109
+ theme: theme,
110
+ Text: Text,
111
+ onSelectDate: selectDate
112
+ })]
113
+ });
114
+ };
115
+ const Calendar = /*#__PURE__*/React.memo(CalendarComponent);
116
+ const styles = StyleSheet.create({
117
+ container: {
118
+ width: "100%"
119
+ },
120
+ monthHeader: {
121
+ alignItems: "center",
122
+ flexDirection: "row",
123
+ justifyContent: "space-between"
124
+ },
125
+ navigationButton: {
126
+ alignItems: "center",
127
+ height: 40,
128
+ justifyContent: "center",
129
+ width: 40
130
+ }
131
+ });
132
+ export { Calendar };
133
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","StyleSheet","View","Text","PaperText","useOvokUi","firstOfMonth","monthBy","toCalendarDate","CalendarGrid","jsx","_jsx","jsxs","_jsxs","CalendarComponent","selectedDate","defaultSelectedDate","onDateSelect","visibleMonth","defaultVisibleMonth","onVisibleMonthChange","locale","weekStartsOn","minDate","maxDate","isDateDisabled","markers","getMarkerForDate","labelForDate","previousMonthLabel","nextMonthLabel","testID","uiProps","theme","slots","internalVisibleMonth","setInternalVisibleMonth","useState","undefined","Date","internalSelectedDate","setInternalSelectedDate","activeMonth","activeSelectedDate","monthLabel","Intl","DateTimeFormat","month","year","format","changeMonth","amount","nextMonth","selectDate","date","getMonth","getFullYear","style","styles","container","gap","spacing","children","monthHeader","accessibilityRole","accessibilityLabel","onPress","navigationButton","variant","onSelectDate","Calendar","memo","create","width","alignItems","flexDirection","justifyContent","height"],"sourceRoot":"../../../../../src","sources":["modules/ui/components/calendar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ import { StyleSheet, View } from "react-native";
5
+ import { Text as PaperText } from "react-native-paper";
6
+ import { useOvokUi } from "../use-ovok-ui.js";
7
+ import { calendarDateKey, toCalendarDate } from "../utils/calendar-date.js";
8
+ import { Calendar } from "./calendar.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const normalizePeriods = periods => {
11
+ const valid = periods.flatMap(({
12
+ startDate,
13
+ endDate
14
+ }) => {
15
+ const start = toCalendarDate(startDate);
16
+ const end = toCalendarDate(endDate);
17
+ if (!start || !end || end < start) {
18
+ return [];
19
+ }
20
+ return [{
21
+ start,
22
+ end
23
+ }];
24
+ }).sort((left, right) => left.start.getTime() - right.start.getTime());
25
+ const merged = [];
26
+ for (const period of valid) {
27
+ const previous = merged[merged.length - 1];
28
+ const dayAfterPrevious = previous ? new Date(previous.end.getFullYear(), previous.end.getMonth(), previous.end.getDate() + 1) : undefined;
29
+ if (previous && dayAfterPrevious && period.start <= dayAfterPrevious) {
30
+ if (period.end > previous.end) {
31
+ previous.end = period.end;
32
+ }
33
+ } else {
34
+ merged.push({
35
+ ...period
36
+ });
37
+ }
38
+ }
39
+ return merged.map(({
40
+ start,
41
+ end
42
+ }) => ({
43
+ start,
44
+ end,
45
+ startKey: calendarDateKey(start),
46
+ endKey: calendarDateKey(end)
47
+ }));
48
+ };
49
+ const PeriodCalendar = ({
50
+ periods,
51
+ periodLabel = "Period",
52
+ labelForPeriodDate,
53
+ showLegend = true,
54
+ testID = "period-calendar",
55
+ ...calendarProps
56
+ }) => {
57
+ const {
58
+ theme,
59
+ slots
60
+ } = useOvokUi(calendarProps);
61
+ const Text = slots.Text ?? PaperText;
62
+ const normalizedPeriods = React.useMemo(() => normalizePeriods(periods), [periods]);
63
+ const getMarkerForDate = React.useCallback(date => {
64
+ const key = calendarDateKey(date);
65
+ const period = normalizedPeriods.find(({
66
+ startKey,
67
+ endKey
68
+ }) => key >= startKey && key <= endKey);
69
+ if (!period) {
70
+ return undefined;
71
+ }
72
+ const isStart = key === period.startKey;
73
+ const isEnd = key === period.endKey;
74
+ return {
75
+ date,
76
+ label: labelForPeriodDate?.(date) ?? periodLabel,
77
+ backgroundColor: theme.colors.tertiaryContainer,
78
+ color: theme.colors.onTertiaryContainer,
79
+ rangePosition: isStart && isEnd ? "single" : isStart ? "start" : isEnd ? "end" : "middle"
80
+ };
81
+ }, [labelForPeriodDate, normalizedPeriods, periodLabel, theme.colors.onTertiaryContainer, theme.colors.tertiaryContainer]);
82
+ return /*#__PURE__*/_jsxs(View, {
83
+ testID: testID,
84
+ style: styles.container,
85
+ children: [/*#__PURE__*/_jsx(Calendar, {
86
+ ...calendarProps,
87
+ getMarkerForDate: getMarkerForDate,
88
+ testID: testID
89
+ }), showLegend && /*#__PURE__*/_jsxs(View, {
90
+ accessibilityRole: "text",
91
+ style: styles.legend,
92
+ children: [/*#__PURE__*/_jsx(View, {
93
+ accessible: false,
94
+ style: [styles.legendMarker, {
95
+ backgroundColor: theme.colors.tertiaryContainer
96
+ }]
97
+ }), /*#__PURE__*/_jsxs(Text, {
98
+ theme: theme,
99
+ variant: "bodySmall",
100
+ children: [periodLabel, " days"]
101
+ })]
102
+ })]
103
+ });
104
+ };
105
+ const styles = StyleSheet.create({
106
+ container: {
107
+ gap: 12,
108
+ width: "100%"
109
+ },
110
+ legend: {
111
+ alignItems: "center",
112
+ flexDirection: "row",
113
+ gap: 8
114
+ },
115
+ legendMarker: {
116
+ borderRadius: 8,
117
+ height: 16,
118
+ width: 16
119
+ }
120
+ });
121
+ export { PeriodCalendar };
122
+ //# sourceMappingURL=period-calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","Text","PaperText","useOvokUi","calendarDateKey","toCalendarDate","Calendar","jsx","_jsx","jsxs","_jsxs","normalizePeriods","periods","valid","flatMap","startDate","endDate","start","end","sort","left","right","getTime","merged","period","previous","length","dayAfterPrevious","Date","getFullYear","getMonth","getDate","undefined","push","map","startKey","endKey","PeriodCalendar","periodLabel","labelForPeriodDate","showLegend","testID","calendarProps","theme","slots","normalizedPeriods","useMemo","getMarkerForDate","useCallback","date","key","find","isStart","isEnd","label","backgroundColor","colors","tertiaryContainer","color","onTertiaryContainer","rangePosition","style","styles","container","children","accessibilityRole","legend","accessible","legendMarker","variant","create","gap","width","alignItems","flexDirection","borderRadius","height"],"sourceRoot":"../../../../../src","sources":["modules/ui/components/period-calendar.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,4 +11,6 @@ export * from "./components/urine-test-result.js";
11
11
  export * from "./components/health-import-card.js";
12
12
  export * from "./components/background-sync-setting.js";
13
13
  export * from "./components/measurement-trend-chart.js";
14
+ export * from "./components/calendar.js";
15
+ export * from "./components/period-calendar.js";
14
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/ui/index.ts"],"mappings":";;AAAA,cAAc,YAAS;AACvB,cAAc,kBAAe;AAC7B,cAAc,kCAA+B;AAC7C,cAAc,mCAAgC;AAC9C,cAAc,gDAA6C;AAC3D,cAAc,wCAAqC;AACnD,cAAc,8BAA2B;AACzC,cAAc,mCAAgC;AAC9C,cAAc,oCAAiC;AAC/C,cAAc,yCAAsC;AACpD,cAAc,yCAAsC","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/ui/index.ts"],"mappings":";;AAAA,cAAc,YAAS;AACvB,cAAc,kBAAe;AAC7B,cAAc,kCAA+B;AAC7C,cAAc,mCAAgC;AAC9C,cAAc,gDAA6C;AAC3D,cAAc,wCAAqC;AACnD,cAAc,8BAA2B;AACzC,cAAc,mCAAgC;AAC9C,cAAc,oCAAiC;AAC/C,cAAc,yCAAsC;AACpD,cAAc,yCAAsC;AACpD,cAAc,0BAAuB;AACrC,cAAc,iCAA8B","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ const toCalendarDate = value => {
4
+ if (value === undefined) {
5
+ return undefined;
6
+ }
7
+ if (value instanceof Date) {
8
+ if (Number.isNaN(value.getTime())) {
9
+ return undefined;
10
+ }
11
+ return new Date(value.getFullYear(), value.getMonth(), value.getDate());
12
+ }
13
+ const dateOnly = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
14
+ if (dateOnly) {
15
+ const year = Number(dateOnly[1]);
16
+ const month = Number(dateOnly[2]) - 1;
17
+ const day = Number(dateOnly[3]);
18
+ const date = new Date(year, month, day);
19
+ return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day ? date : undefined;
20
+ }
21
+ const parsed = new Date(value);
22
+ return Number.isNaN(parsed.getTime()) ? undefined : new Date(parsed.getFullYear(), parsed.getMonth(), parsed.getDate());
23
+ };
24
+ const calendarDateKey = date => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
25
+ const firstOfMonth = date => new Date(date.getFullYear(), date.getMonth(), 1);
26
+ const calendarGridDates = (visibleMonth, weekStartsOn) => {
27
+ const first = firstOfMonth(visibleMonth);
28
+ const offset = (first.getDay() - weekStartsOn + 7) % 7;
29
+ const gridStart = new Date(first.getFullYear(), first.getMonth(), 1 - offset);
30
+ return Array.from({
31
+ length: 42
32
+ }, (_, index) => new Date(gridStart.getFullYear(), gridStart.getMonth(), gridStart.getDate() + index));
33
+ };
34
+ const monthBy = (date, amount) => new Date(date.getFullYear(), date.getMonth() + amount, 1);
35
+ export { calendarDateKey, calendarGridDates, firstOfMonth, monthBy, toCalendarDate };
36
+ //# 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","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":";;AAIA,MAAMA,cAAc,GAClBC,KAAoC,IACf;EACrB,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACvB,OAAOA,SAAS;EAClB;EAEA,IAAID,KAAK,YAAYE,IAAI,EAAE;IACzB,IAAIC,MAAM,CAACC,KAAK,CAACJ,KAAK,CAACK,OAAO,CAAC,CAAC,CAAC,EAAE;MACjC,OAAOJ,SAAS;IAClB;IAEA,OAAO,IAAIC,IAAI,CAACF,KAAK,CAACM,WAAW,CAAC,CAAC,EAAEN,KAAK,CAACO,QAAQ,CAAC,CAAC,EAAEP,KAAK,CAACQ,OAAO,CAAC,CAAC,CAAC;EACzE;EAEA,MAAMC,QAAQ,GAAG,2BAA2B,CAACC,IAAI,CAACV,KAAK,CAAC;EAExD,IAAIS,QAAQ,EAAE;IACZ,MAAME,IAAI,GAAGR,MAAM,CAACM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChC,MAAMG,KAAK,GAAGT,MAAM,CAACM,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,MAAMI,GAAG,GAAGV,MAAM,CAACM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAMK,IAAI,GAAG,IAAIZ,IAAI,CAACS,IAAI,EAAEC,KAAK,EAAEC,GAAG,CAAC;IAEvC,OAAOC,IAAI,CAACR,WAAW,CAAC,CAAC,KAAKK,IAAI,IAChCG,IAAI,CAACP,QAAQ,CAAC,CAAC,KAAKK,KAAK,IACzBE,IAAI,CAACN,OAAO,CAAC,CAAC,KAAKK,GAAG,GACpBC,IAAI,GACJb,SAAS;EACf;EAEA,MAAMc,MAAM,GAAG,IAAIb,IAAI,CAACF,KAAK,CAAC;EAE9B,OAAOG,MAAM,CAACC,KAAK,CAACW,MAAM,CAACV,OAAO,CAAC,CAAC,CAAC,GACjCJ,SAAS,GACT,IAAIC,IAAI,CAACa,MAAM,CAACT,WAAW,CAAC,CAAC,EAAES,MAAM,CAACR,QAAQ,CAAC,CAAC,EAAEQ,MAAM,CAACP,OAAO,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAMQ,eAAe,GAAIF,IAAU,IACjC,GAAGA,IAAI,CAACR,WAAW,CAAC,CAAC,IAAIW,MAAM,CAACH,IAAI,CAACP,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAACW,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,MAAM,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,CAAC,CAACU,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AAEpH,MAAMC,YAAY,GAAIL,IAAU,IAC9B,IAAIZ,IAAI,CAACY,IAAI,CAACR,WAAW,CAAC,CAAC,EAAEQ,IAAI,CAACP,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAElD,MAAMa,iBAAiB,GAAGA,CACxBC,YAAkB,EAClBC,YAA0B,KACf;EACX,MAAMC,KAAK,GAAGJ,YAAY,CAACE,YAAY,CAAC;EACxC,MAAMG,MAAM,GAAG,CAACD,KAAK,CAACE,MAAM,CAAC,CAAC,GAAGH,YAAY,GAAG,CAAC,IAAI,CAAC;EACtD,MAAMI,SAAS,GAAG,IAAIxB,IAAI,CAACqB,KAAK,CAACjB,WAAW,CAAC,CAAC,EAAEiB,KAAK,CAAChB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAGiB,MAAM,CAAC;EAE7E,OAAOG,KAAK,CAACC,IAAI,CACf;IAAEC,MAAM,EAAE;EAAG,CAAC,EACd,CAACC,CAAC,EAAEC,KAAK,KAAK,IAAI7B,IAAI,CAACwB,SAAS,CAACpB,WAAW,CAAC,CAAC,EAAEoB,SAAS,CAACnB,QAAQ,CAAC,CAAC,EAAEmB,SAAS,CAAClB,OAAO,CAAC,CAAC,GAAGuB,KAAK,CACnG,CAAC;AACH,CAAC;AAED,MAAMC,OAAO,GAAGA,CAAClB,IAAU,EAAEmB,MAAc,KACzC,IAAI/B,IAAI,CAACY,IAAI,CAACR,WAAW,CAAC,CAAC,EAAEQ,IAAI,CAACP,QAAQ,CAAC,CAAC,GAAG0B,MAAM,EAAE,CAAC,CAAC;AAE3D,SACEjB,eAAe,EACfI,iBAAiB,EACjBD,YAAY,EACZa,OAAO,EACPjC,cAAc","ignoreList":[]}
@@ -7,6 +7,7 @@ export * from "./types/health-authorization-status";
7
7
  export * from "./types/health-sync-keys";
8
8
  export * from "./types/health-sync-batch-error";
9
9
  export * from "./hooks/use-health-import";
10
+ export { HEALTH_DATA_CATALOG, getHealthDataCoding } from "./utils/health-data-catalog";
10
11
  export { HealthAuthorizationContext, useHealthAuthorization, } from "./contexts/health-authorization-context";
11
12
  export type { HealthAuthorizationValue } from "./contexts/health-authorization-context";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/data-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oDAAoD,CAAC;AACnE,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/data-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oDAAoD,CAAC;AACnE,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACT,sBAAsB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAC3E,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAyBpB,mBAAmB;YAqBnB,cAAc;IAsG5B,OAAO,CAAC,yBAAyB;CAGlC"}
1
+ {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACT,sBAAsB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAC3E,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YA0BpB,mBAAmB;YAqBnB,cAAc;IAoH5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -30,6 +30,7 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
30
30
  getObservationBodiesForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<{
31
31
  observationBodies: Observation[][];
32
32
  observationSyncIds: Array<string | undefined>;
33
+ deletedObservationSyncIds: string[];
33
34
  hasMore: boolean;
34
35
  anchors: Array<{
35
36
  typeIdentifier: string;
@@ -40,6 +41,6 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
40
41
  getLatestValidStartDate(latestObservationDates: Array<{
41
42
  code: string | undefined;
42
43
  date: string | undefined;
43
- }>, data: NonNullable<TDataToSync[HealthSyncKey]>, mode?: Parameters<typeof getLatestValidStartDate>[0]["mode"]): Date | undefined;
44
+ }>, data: NonNullable<TDataToSync[HealthSyncKey]>, measurementTypeKey: HealthSyncKey, mode?: Parameters<typeof getLatestValidStartDate>[0]["mode"]): Date | undefined;
44
45
  }
45
46
  //# sourceMappingURL=data-processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { saveBundleObservations } from "../../utils/save-bundle-observations";
5
5
  export declare class StorageManager {
6
6
  private client;
7
7
  private provider;
8
+ private static readonly SYNC_ID_SYSTEM;
8
9
  /**
9
10
  * Where an anchor goes when the host client has no storage.
10
11
  *
@@ -25,6 +26,7 @@ export declare class StorageManager {
25
26
  private readonly inMemoryAnchors;
26
27
  constructor(client: OvokClient, provider: HealthProvider);
27
28
  saveObservations(entries: Parameters<typeof saveBundleObservations>[0]["entries"]): Promise<Bundle<Observation>>;
29
+ deleteObservations(syncIds: string[], patientId: string): Promise<void>;
28
30
  saveAnchor(typeIdentifier: string, anchor: string): void;
29
31
  getAnchor(typeIdentifier: string): string | undefined;
30
32
  private anchorKey;
@@ -1 +1 @@
1
- {"version":3,"file":"storage-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/storage-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,qBAAa,cAAc;IAqBvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IArBlB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAGnD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,cAAc;IAG5B,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAO/B,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYxD,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQrD,OAAO,CAAC,SAAS;IAIjB,WAAW,CACT,OAAO,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,IAAI;CAKR"}
1
+ {"version":3,"file":"storage-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/storage-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,qBAAa,cAAc;IAwBvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAxBlB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CACgC;IAEtE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAGnD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,cAAc;IAG5B,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAOzB,kBAAkB,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAqBhB,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYxD,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQrD,OAAO,CAAC,SAAS;IAIjB,WAAW,CACT,OAAO,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,IAAI;CAKR"}
@@ -8,5 +8,7 @@ export type ConvertDataProps<TData> = {
8
8
  typeIdentifier?: string;
9
9
  mode?: HealthDataMode;
10
10
  typeIdentifierCodes?: Readonly<Record<string, string>>;
11
+ typeIdentifierCodeSystems?: Readonly<Record<string, string>>;
12
+ typeIdentifierCodeDisplays?: Readonly<Record<string, string>>;
11
13
  };
12
14
  //# sourceMappingURL=convert-data-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-data-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/convert-data-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,aAAa,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD,CAAC"}
1
+ {"version":3,"file":"convert-data-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/convert-data-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,aAAa,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,yBAAyB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,0BAA0B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/D,CAAC"}
@@ -1,5 +1,9 @@
1
1
  export type DataFromProviderResult<TData, TTypeIdentifier> = {
2
2
  data: TData[];
3
+ /** Source record IDs removed since the provider cursor was last saved. */
4
+ deletedRecordIds?: string[];
5
+ /** Whether the provider has another page, including deletion-only pages. */
6
+ hasMore?: boolean;
3
7
  anchor?: {
4
8
  typeIdentifier: TTypeIdentifier;
5
9
  anchor: string;
@@ -1 +1 @@
1
- {"version":3,"file":"data-from-provider-result.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/data-from-provider-result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,eAAe,IAAI;IAC3D,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,CAAC,EAAE;QACP,cAAc,EAAE,eAAe,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"data-from-provider-result.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/data-from-provider-result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,eAAe,IAAI;IAC3D,IAAI,EAAE,KAAK,EAAE,CAAC;IAEd,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,cAAc,EAAE,eAAe,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC"}
@@ -7,7 +7,12 @@ export type HealthSyncProps<T> = {
7
7
  [key in HealthSyncKey]?: {
8
8
  typeIdentifiers: {
9
9
  typeIdentifier: T;
10
- code: ObservationCode | string;
10
+ /** Defaults to the SDK's reviewed mapping, or the platform source code. */
11
+ code?: ObservationCode | string;
12
+ /** Coding system for `code`; numeric codes are not assumed to be LOINC. */
13
+ system?: string;
14
+ /** Optional human-readable display for the configured coding. */
15
+ display?: string;
11
16
  }[];
12
17
  minDate?: Date;
13
18
  /** Overrides the default aggregation mode for this data type. */