@chelone/core 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/assistant/assistant-session.d.ts +28 -0
  2. package/dist/assistant/assistant-session.js +208 -0
  3. package/dist/assistant/echo-transport.d.ts +7 -0
  4. package/dist/assistant/echo-transport.js +28 -0
  5. package/dist/assistant/http-transport.d.ts +10 -0
  6. package/dist/assistant/http-transport.js +98 -0
  7. package/dist/assistant/types.d.ts +54 -0
  8. package/dist/auth/access-control.d.ts +13 -5
  9. package/dist/auth/access-control.js +25 -21
  10. package/dist/auth/auth-options.d.ts +21 -17
  11. package/dist/auth/auth-options.js +80 -48
  12. package/dist/auth/permission-matrix.d.ts +12 -0
  13. package/dist/auth/permission-matrix.js +67 -0
  14. package/dist/auth/types.d.ts +14 -4
  15. package/dist/block-editor/block-document.d.ts +60 -0
  16. package/dist/block-editor/block-document.js +143 -0
  17. package/dist/block-editor/data-blocks.d.ts +63 -0
  18. package/dist/block-editor/data-blocks.js +117 -0
  19. package/dist/chart/chart-data.d.ts +25 -0
  20. package/dist/chart/chart-data.js +61 -0
  21. package/dist/command-menu/hotkey.js +58 -47
  22. package/dist/command-menu/recents.js +8 -11
  23. package/dist/command-menu/registry.d.ts +9 -5
  24. package/dist/command-menu/registry.js +36 -46
  25. package/dist/controller/calendar-dates.js +82 -113
  26. package/dist/controller/calendar-events.js +93 -88
  27. package/dist/controller/client-list-controller.d.ts +2 -2
  28. package/dist/controller/client-list-controller.js +251 -254
  29. package/dist/controller/data-table-columns.d.ts +2 -0
  30. package/dist/controller/data-table-columns.js +50 -56
  31. package/dist/controller/deep-equal.d.ts +1 -0
  32. package/dist/controller/deep-equal.js +14 -0
  33. package/dist/controller/filter-toggle.js +36 -44
  34. package/dist/controller/in-place-editor.d.ts +42 -0
  35. package/dist/controller/in-place-editor.js +42 -0
  36. package/dist/controller/infinite-list-controller.js +220 -190
  37. package/dist/controller/inspector.d.ts +49 -0
  38. package/dist/controller/inspector.js +64 -0
  39. package/dist/controller/job-monitor.d.ts +41 -0
  40. package/dist/controller/job-monitor.js +49 -0
  41. package/dist/controller/kanban-board.d.ts +2 -3
  42. package/dist/controller/kanban-board.js +43 -24
  43. package/dist/controller/list-controller.d.ts +5 -5
  44. package/dist/controller/list-controller.js +444 -400
  45. package/dist/controller/list-params.js +96 -87
  46. package/dist/controller/pivot-grid.d.ts +36 -0
  47. package/dist/controller/pivot-grid.js +99 -0
  48. package/dist/controller/prev-next.d.ts +2 -2
  49. package/dist/controller/prev-next.js +74 -54
  50. package/dist/controller/record-controllers.d.ts +14 -6
  51. package/dist/controller/record-controllers.js +288 -257
  52. package/dist/controller/record-diff.d.ts +21 -0
  53. package/dist/controller/record-diff.js +50 -0
  54. package/dist/controller/record-timeline.d.ts +35 -0
  55. package/dist/controller/record-timeline.js +48 -0
  56. package/dist/controller/record-tree.js +57 -47
  57. package/dist/controller/record-workflow.d.ts +38 -16
  58. package/dist/controller/record-workflow.js +85 -64
  59. package/dist/controller/reference-many-controller.js +198 -192
  60. package/dist/controller/reference-one-controller.d.ts +1 -1
  61. package/dist/controller/reference-one-controller.js +63 -56
  62. package/dist/controller/saved-queries.js +104 -91
  63. package/dist/controller/translate-fallback.js +10 -6
  64. package/dist/csv/export.d.ts +2 -1
  65. package/dist/csv/export.js +43 -40
  66. package/dist/csv/import-controller.js +185 -169
  67. package/dist/csv/match-headers.js +29 -22
  68. package/dist/csv/parse-with.js +60 -54
  69. package/dist/csv/run-import.js +69 -72
  70. package/dist/csv/validate-rows.d.ts +1 -1
  71. package/dist/csv/validate-rows.js +65 -52
  72. package/dist/data/cache-ops.d.ts +5 -4
  73. package/dist/data/cache-ops.js +208 -190
  74. package/dist/data/combine-data-providers.js +25 -23
  75. package/dist/data/data-provider-log.d.ts +45 -0
  76. package/dist/data/data-provider-log.js +93 -0
  77. package/dist/data/errors.js +14 -10
  78. package/dist/data/fake-provider.d.ts +6 -3
  79. package/dist/data/fake-provider.js +129 -114
  80. package/dist/data/fetch-utils.js +61 -44
  81. package/dist/data/filter-branch.d.ts +5 -0
  82. package/dist/data/filter-branch.js +10 -0
  83. package/dist/data/get-many-aggregate.js +84 -76
  84. package/dist/data/http-error.js +17 -12
  85. package/dist/data/keys.js +50 -36
  86. package/dist/data/mutation-options.d.ts +14 -9
  87. package/dist/data/mutation-options.js +93 -109
  88. package/dist/data/query-options.js +73 -68
  89. package/dist/data/remove-empty.d.ts +3 -0
  90. package/dist/data/remove-empty.js +11 -0
  91. package/dist/data/undoable.d.ts +2 -2
  92. package/dist/data/undoable.js +190 -174
  93. package/dist/data/with-lifecycle-callbacks.d.ts +45 -17
  94. package/dist/data/with-lifecycle-callbacks.js +66 -52
  95. package/dist/environment/application-update-store.js +58 -55
  96. package/dist/environment/offline-store.js +21 -21
  97. package/dist/form/array-binding.d.ts +30 -11
  98. package/dist/form/array-binding.js +184 -166
  99. package/dist/form/choice-ids.d.ts +7 -0
  100. package/dist/form/choice-ids.js +11 -0
  101. package/dist/form/choices-controller.d.ts +3 -2
  102. package/dist/form/choices-controller.js +302 -275
  103. package/dist/form/date-format.d.ts +38 -0
  104. package/dist/form/date-format.js +89 -0
  105. package/dist/form/dirty-values.d.ts +2 -2
  106. package/dist/form/dirty-values.js +22 -11
  107. package/dist/form/duration.d.ts +22 -0
  108. package/dist/form/duration.js +49 -0
  109. package/dist/form/edit-create-form.d.ts +12 -5
  110. package/dist/form/edit-create-form.js +243 -188
  111. package/dist/form/event-value.d.ts +6 -0
  112. package/dist/form/event-value.js +17 -0
  113. package/dist/form/field-error.d.ts +14 -0
  114. package/dist/form/field-error.js +28 -0
  115. package/dist/form/field-name.d.ts +20 -0
  116. package/dist/form/field-name.js +6 -0
  117. package/dist/form/filter-form-values.js +63 -49
  118. package/dist/form/form-controller.d.ts +9 -1
  119. package/dist/form/form-controller.js +165 -160
  120. package/dist/form/form-groups.d.ts +4 -3
  121. package/dist/form/form-groups.js +79 -79
  122. package/dist/form/form-handle.d.ts +175 -0
  123. package/dist/form/form-handle.js +68 -0
  124. package/dist/form/input-binding.d.ts +56 -31
  125. package/dist/form/input-binding.js +169 -118
  126. package/dist/form/input-values.d.ts +130 -0
  127. package/dist/form/input-values.js +177 -0
  128. package/dist/form/json-text.js +51 -37
  129. package/dist/form/save-pipeline.d.ts +6 -8
  130. package/dist/form/save-pipeline.js +91 -82
  131. package/dist/form/set-form-values.d.ts +6 -0
  132. package/dist/form/set-form-values.js +10 -0
  133. package/dist/form/source.js +97 -65
  134. package/dist/form/text-of.d.ts +2 -0
  135. package/dist/form/text-of.js +7 -0
  136. package/dist/form/validators.d.ts +58 -19
  137. package/dist/form/validators.js +97 -71
  138. package/dist/geo/bbox.d.ts +5 -4
  139. package/dist/geo/bbox.js +69 -48
  140. package/dist/geo/bounds.d.ts +14 -3
  141. package/dist/geo/bounds.js +98 -68
  142. package/dist/geo/constraints.js +88 -93
  143. package/dist/geo/coordinates.js +31 -23
  144. package/dist/geo/editor.d.ts +13 -13
  145. package/dist/geo/editor.js +176 -153
  146. package/dist/geo/geocoding.d.ts +4 -4
  147. package/dist/geo/geocoding.js +38 -41
  148. package/dist/geo/geojson.d.ts +12 -74
  149. package/dist/geo/geojson.js +52 -40
  150. package/dist/geo/geometry-math.d.ts +4 -4
  151. package/dist/geo/geometry-math.js +100 -93
  152. package/dist/geo/index.d.ts +7 -6
  153. package/dist/geo/map-layers.d.ts +42 -7
  154. package/dist/geo/map-layers.js +88 -62
  155. package/dist/geo/map-style.js +31 -32
  156. package/dist/geo/messages.js +48 -45
  157. package/dist/geo/nominatim.js +88 -80
  158. package/dist/geo/osm-presets.d.ts +4 -3
  159. package/dist/geo/osm-presets.js +108 -86
  160. package/dist/geo/osm-tags.js +14 -12
  161. package/dist/geo/overpass.d.ts +14 -2
  162. package/dist/geo/overpass.js +83 -90
  163. package/dist/geo/shape-value.d.ts +9 -5
  164. package/dist/geo/shape-value.js +169 -146
  165. package/dist/geo/snap-to-roads.d.ts +3 -3
  166. package/dist/geo/snap-to-roads.js +55 -50
  167. package/dist/geo/throttle.js +36 -39
  168. package/dist/guards.d.ts +37 -0
  169. package/dist/guards.js +62 -0
  170. package/dist/i18n/default-messages.js +34 -29
  171. package/dist/i18n/english-messages.js +187 -189
  172. package/dist/i18n/i18n.d.ts +8 -2
  173. package/dist/i18n/i18n.js +47 -48
  174. package/dist/i18n/inflection.d.ts +34 -0
  175. package/dist/i18n/inflection.js +82 -0
  176. package/dist/i18n/messages.d.ts +10 -2
  177. package/dist/i18n/messages.js +17 -4
  178. package/dist/i18n/missing-keys.d.ts +19 -0
  179. package/dist/i18n/missing-keys.js +68 -0
  180. package/dist/i18n/translatable.d.ts +16 -1
  181. package/dist/i18n/translatable.js +40 -47
  182. package/dist/index.d.ts +96 -22
  183. package/dist/index.js +52 -257
  184. package/dist/json/deep-equal.d.ts +8 -0
  185. package/dist/json/deep-equal.js +24 -0
  186. package/dist/json/strip-json-comments.js +38 -42
  187. package/dist/noop.d.ts +2 -0
  188. package/dist/noop.js +4 -0
  189. package/dist/notification/error-message.d.ts +2 -0
  190. package/dist/notification/error-message.js +10 -0
  191. package/dist/notification/notification-store.d.ts +3 -2
  192. package/dist/notification/notification-store.js +41 -45
  193. package/dist/onboarding-tour/placement.d.ts +34 -0
  194. package/dist/onboarding-tour/placement.js +67 -0
  195. package/dist/onboarding-tour/tour-controller.d.ts +25 -0
  196. package/dist/onboarding-tour/tour-controller.js +50 -0
  197. package/dist/realtime/add-events-for-mutations.js +75 -81
  198. package/dist/realtime/announce-lock.d.ts +7 -0
  199. package/dist/realtime/announce-lock.js +18 -0
  200. package/dist/realtime/broadcast-channel-transport.d.ts +14 -0
  201. package/dist/realtime/broadcast-channel-transport.js +69 -0
  202. package/dist/realtime/copy-members.js +22 -14
  203. package/dist/realtime/in-memory-lock-provider.js +41 -60
  204. package/dist/realtime/live.js +95 -101
  205. package/dist/realtime/lock-options.js +16 -16
  206. package/dist/realtime/lock-session.js +91 -78
  207. package/dist/realtime/memory-transport.js +26 -67
  208. package/dist/realtime/presence.js +120 -122
  209. package/dist/realtime/realtime-data-provider.d.ts +10 -0
  210. package/dist/realtime/realtime-data-provider.js +45 -42
  211. package/dist/realtime/reconnect-backoff.d.ts +15 -0
  212. package/dist/realtime/reconnect-backoff.js +17 -0
  213. package/dist/realtime/sse-transport.d.ts +31 -0
  214. package/dist/realtime/sse-transport.js +235 -0
  215. package/dist/realtime/status-store.js +23 -28
  216. package/dist/realtime/topic-hub.d.ts +24 -0
  217. package/dist/realtime/topic-hub.js +66 -0
  218. package/dist/realtime/topics.js +10 -12
  219. package/dist/realtime/types.js +10 -12
  220. package/dist/realtime/unread-count.js +21 -21
  221. package/dist/realtime/websocket-transport.d.ts +32 -0
  222. package/dist/realtime/websocket-transport.js +306 -0
  223. package/dist/resource/describe-resource.d.ts +2 -0
  224. package/dist/resource/describe-resource.js +232 -219
  225. package/dist/resource/get-at-path.js +29 -14
  226. package/dist/resource/identifier.d.ts +18 -0
  227. package/dist/resource/identifier.js +27 -0
  228. package/dist/resource/record.d.ts +4 -0
  229. package/dist/resource/record.js +10 -0
  230. package/dist/resource/register.d.ts +7 -0
  231. package/dist/resource/registry-store.d.ts +45 -15
  232. package/dist/resource/registry-store.js +67 -60
  233. package/dist/resource/registry.d.ts +10 -0
  234. package/dist/resource/registry.js +8 -4
  235. package/dist/resource/source-path.d.ts +16 -1
  236. package/dist/rich-text/rich-text-extras.d.ts +132 -0
  237. package/dist/rich-text/rich-text-extras.js +179 -0
  238. package/dist/rich-text/rich-text-image.d.ts +124 -0
  239. package/dist/rich-text/rich-text-image.js +163 -0
  240. package/dist/rich-text/rich-text.d.ts +62 -0
  241. package/dist/rich-text/rich-text.js +142 -0
  242. package/dist/router/location.d.ts +22 -4
  243. package/dist/router/location.js +41 -18
  244. package/dist/router/match.js +47 -39
  245. package/dist/router/paths.js +40 -34
  246. package/dist/router/record-from-location.d.ts +1 -1
  247. package/dist/router/record-from-location.js +25 -17
  248. package/dist/store/adapters.js +51 -55
  249. package/dist/store/micro-store.js +57 -59
  250. package/dist/store/shallow-equal.d.ts +12 -0
  251. package/dist/store/shallow-equal.js +20 -0
  252. package/dist/store/store.js +54 -57
  253. package/package.json +13 -11
@@ -1,106 +1,111 @@
1
1
  import { getAtPath } from "../resource/get-at-path.js";
2
2
  import { calendarDayKey, parseCalendarDate } from "./calendar-dates.js";
3
- const midnight = (date, dayOffset = 0) => new Date(date.getFullYear(), date.getMonth(), date.getDate() + dayOffset);
4
- const isMidnight = (date) => date.getTime() === midnight(date).getTime();
3
+ // src/controller/calendar-events.ts
4
+ var midnight = (date, dayOffset = 0) => new Date(date.getFullYear(), date.getMonth(), date.getDate() + dayOffset);
5
+ var isMidnight = (date) => date.getTime() === midnight(date).getTime();
6
+ /** Records with no usable start are skipped, and an end before the start is dropped. */
5
7
  function toCalendarEvents(records, options) {
6
- const events = [];
7
- for (const record of records) {
8
- const start = parseCalendarDate(getAtPath(record, options.startSource));
9
- if (!start) continue;
10
- const parsedEnd = options.endSource ? parseCalendarDate(getAtPath(record, options.endSource)) : void 0;
11
- const end = parsedEnd && parsedEnd.getTime() >= start.getTime() ? parsedEnd : void 0;
12
- const titleValue = options.titleSource ? getAtPath(record, options.titleSource) : void 0;
13
- const title = (typeof titleValue === "string" || typeof titleValue === "number") && titleValue !== "" ? String(titleValue) : options.getTitle(record);
14
- const colorValue = options.colorSource ? getAtPath(record, options.colorSource) : void 0;
15
- const color = colorValue == null ? void 0 : options.colorMap?.[String(colorValue)];
16
- const event = { record, start, title };
17
- if (end) event.end = end;
18
- if (color !== void 0) event.color = color;
19
- events.push(event);
20
- }
21
- return events;
8
+ const events = [];
9
+ for (const record of records) {
10
+ const start = parseCalendarDate(getAtPath(record, options.startSource));
11
+ if (!start) continue;
12
+ const parsedEnd = options.endSource ? parseCalendarDate(getAtPath(record, options.endSource)) : void 0;
13
+ const end = parsedEnd && parsedEnd.getTime() >= start.getTime() ? parsedEnd : void 0;
14
+ const titleValue = options.titleSource ? getAtPath(record, options.titleSource) : void 0;
15
+ const title = (typeof titleValue === "string" || typeof titleValue === "number") && titleValue !== "" ? String(titleValue) : options.getTitle(record);
16
+ const colorValue = options.colorSource ? getAtPath(record, options.colorSource) : void 0;
17
+ const color = colorValue == null ? void 0 : options.colorMap?.[String(colorValue)];
18
+ const event = {
19
+ record,
20
+ start,
21
+ title
22
+ };
23
+ if (end) event.end = end;
24
+ if (color !== void 0) event.color = color;
25
+ events.push(event);
26
+ }
27
+ return events;
22
28
  }
29
+ /** An event runs from its start day to its end day; an end at midnight leaves its own day out. */
23
30
  function calendarEventsOnDay(events, day) {
24
- const dayTime = midnight(day).getTime();
25
- return events.filter(({ start, end }) => {
26
- const firstDay = midnight(start).getTime();
27
- let lastDay = firstDay;
28
- if (end && end.getTime() > start.getTime()) {
29
- lastDay = midnight(end, isMidnight(end) ? -1 : 0).getTime();
30
- }
31
- return dayTime >= firstDay && dayTime <= lastDay;
32
- });
31
+ const dayTime = midnight(day).getTime();
32
+ return events.filter(({ start, end }) => {
33
+ const firstDay = midnight(start).getTime();
34
+ let lastDay = firstDay;
35
+ if (end && end.getTime() > start.getTime()) lastDay = midnight(end, isMidnight(end) ? -1 : 0).getTime();
36
+ return dayTime >= firstDay && dayTime <= lastDay;
37
+ });
33
38
  }
34
39
  function calendarEventsInHour(events, day, hour) {
35
- const key = calendarDayKey(day);
36
- return events.filter(
37
- ({ start }) => calendarDayKey(start) === key && start.getHours() === hour
38
- );
40
+ const key = calendarDayKey(day);
41
+ return events.filter(({ start }) => calendarDayKey(start) === key && start.getHours() === hour);
39
42
  }
43
+ /** Equal starts keep list order. */
40
44
  function groupCalendarAgenda(events, range) {
41
- const inRange = events.filter(
42
- ({ start }) => start.getTime() >= range.start.getTime() && start.getTime() <= range.end.getTime()
43
- ).sort((a, b) => a.start.getTime() - b.start.getTime());
44
- const groups = [];
45
- const byKey = /* @__PURE__ */ new Map();
46
- for (const event of inRange) {
47
- const key = calendarDayKey(event.start);
48
- let group = byKey.get(key);
49
- if (!group) {
50
- group = { day: midnight(event.start), key, events: [] };
51
- byKey.set(key, group);
52
- groups.push(group);
53
- }
54
- group.events.push(event);
55
- }
56
- return groups;
45
+ const inRange = events.filter(({ start }) => start.getTime() >= range.start.getTime() && start.getTime() <= range.end.getTime()).sort((a, b) => a.start.getTime() - b.start.getTime());
46
+ const groups = [];
47
+ const byKey = /* @__PURE__ */ new Map();
48
+ for (const event of inRange) {
49
+ const key = calendarDayKey(event.start);
50
+ let group = byKey.get(key);
51
+ if (!group) {
52
+ group = {
53
+ day: midnight(event.start),
54
+ key,
55
+ events: []
56
+ };
57
+ byKey.set(key, group);
58
+ groups.push(group);
59
+ }
60
+ group.events.push(event);
61
+ }
62
+ return groups;
57
63
  }
58
- const wholeDaysBetween = (from, to) => Math.round(
59
- (Date.UTC(to.getFullYear(), to.getMonth(), to.getDate()) - Date.UTC(from.getFullYear(), from.getMonth(), from.getDate())) / 864e5
60
- );
61
- const addDays = (date, days) => new Date(
62
- date.getFullYear(),
63
- date.getMonth(),
64
- date.getDate() + days,
65
- date.getHours(),
66
- date.getMinutes(),
67
- date.getSeconds(),
68
- date.getMilliseconds()
69
- );
64
+ var wholeDaysBetween = (from, to) => Math.round((Date.UTC(to.getFullYear(), to.getMonth(), to.getDate()) - Date.UTC(from.getFullYear(), from.getMonth(), from.getDate())) / 864e5);
65
+ var addDays = (date, days) => new Date(date.getFullYear(), date.getMonth(), date.getDate() + days, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
66
+ /**
67
+ * Shifts the start and the end by the whole days between the two days, each
68
+ * keeping its time of day. Adding the duration in milliseconds instead would
69
+ * move an all-day event's end off midnight when the move crosses a daylight
70
+ * saving change.
71
+ */
70
72
  function moveCalendarEvent(event, fromDay, toDay) {
71
- const days = wholeDaysBetween(fromDay, toDay);
72
- const start = addDays(event.start, days);
73
- return event.end ? { start, end: addDays(event.end, days) } : { start };
73
+ const days = wholeDaysBetween(fromDay, toDay);
74
+ const start = addDays(event.start, days);
75
+ return event.end ? {
76
+ start,
77
+ end: addDays(event.end, days)
78
+ } : { start };
74
79
  }
80
+ /**
81
+ * The list filter that asks for a range. With an `endSource`, an event is kept
82
+ * when it starts before the range ends and ends after it starts, so one that
83
+ * began earlier and runs into the range is fetched; a record with an empty end
84
+ * is then left out. Without one, only the start is bounded, on both sides.
85
+ */
75
86
  function calendarRangeFilter(startSource, range, endSource) {
76
- if (endSource) {
77
- return {
78
- [`${startSource}_lte`]: range.end.toISOString(),
79
- [`${endSource}_gte`]: range.start.toISOString()
80
- };
81
- }
82
- return {
83
- [`${startSource}_gte`]: range.start.toISOString(),
84
- [`${startSource}_lte`]: range.end.toISOString()
85
- };
87
+ if (endSource) return {
88
+ [`${startSource}_lte`]: range.end.toISOString(),
89
+ [`${endSource}_gte`]: range.start.toISOString()
90
+ };
91
+ return {
92
+ [`${startSource}_gte`]: range.start.toISOString(),
93
+ [`${startSource}_lte`]: range.end.toISOString()
94
+ };
86
95
  }
96
+ /**
97
+ * Keys an earlier default filter wrote that the current one no longer does: a
98
+ * list URL or store can still hold the start's lower bound, which would hide
99
+ * the event that starts before the range.
100
+ */
87
101
  function staleCalendarRangeKeys(startSource, endSource) {
88
- return endSource ? [`${startSource}_gte`] : [];
102
+ return endSource ? [`${startSource}_gte`] : [];
89
103
  }
90
104
  function omitCalendarRangeFilter(filter, startSource, endSource) {
91
- const rest = { ...filter };
92
- delete rest[`${startSource}_gte`];
93
- delete rest[`${startSource}_lte`];
94
- if (endSource) delete rest[`${endSource}_gte`];
95
- return rest;
105
+ const rest = { ...filter };
106
+ delete rest[`${startSource}_gte`];
107
+ delete rest[`${startSource}_lte`];
108
+ if (endSource) delete rest[`${endSource}_gte`];
109
+ return rest;
96
110
  }
97
- export {
98
- calendarEventsInHour,
99
- calendarEventsOnDay,
100
- calendarRangeFilter,
101
- groupCalendarAgenda,
102
- moveCalendarEvent,
103
- omitCalendarRangeFilter,
104
- staleCalendarRangeKeys,
105
- toCalendarEvents
106
- };
111
+ export { calendarEventsInHour, calendarEventsOnDay, calendarRangeFilter, groupCalendarAgenda, moveCalendarEvent, omitCalendarRangeFilter, staleCalendarRangeKeys, toCalendarEvents };
@@ -22,7 +22,7 @@ export interface ClientListControllerOptions<TRecord> {
22
22
  isPending?: boolean;
23
23
  isFetching?: boolean;
24
24
  /** Pass-through error. Default `null`. */
25
- error?: unknown;
25
+ error?: Error | null;
26
26
  /** Extra predicate applied AFTER the field filters (ra-core `filterCallback`). */
27
27
  filterCallback?: (record: TRecord) => boolean;
28
28
  }
@@ -39,7 +39,7 @@ export interface ClientListControllerOptions<TRecord> {
39
39
  export interface ClientListLoadingState {
40
40
  isPending?: boolean;
41
41
  isFetching?: boolean;
42
- error?: unknown;
42
+ error?: Error | null;
43
43
  }
44
44
  export interface ClientListController<TRecord> extends ListController<TRecord> {
45
45
  /** Replace the source records (external `data` prop change) and recompute. */