react-native-roster 0.2.0 → 0.4.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 (59) hide show
  1. package/README.md +73 -3
  2. package/dist/src/components/roster/body-layout.d.ts +3 -1
  3. package/dist/src/components/roster/body-layout.d.ts.map +1 -1
  4. package/dist/src/components/roster/body-layout.js +6 -2
  5. package/dist/src/components/roster/body-layout.js.map +1 -1
  6. package/dist/src/components/roster/index.d.ts.map +1 -1
  7. package/dist/src/components/roster/index.js +4 -3
  8. package/dist/src/components/roster/index.js.map +1 -1
  9. package/dist/src/components/roster/parts/body.d.ts.map +1 -1
  10. package/dist/src/components/roster/parts/body.js +2 -2
  11. package/dist/src/components/roster/parts/body.js.map +1 -1
  12. package/dist/src/components/roster/parts/lane-list.d.ts +2 -2
  13. package/dist/src/components/roster/parts/lane-list.d.ts.map +1 -1
  14. package/dist/src/components/roster/parts/now-line.d.ts +3 -0
  15. package/dist/src/components/roster/parts/now-line.d.ts.map +1 -0
  16. package/dist/src/components/roster/parts/now-line.js +16 -0
  17. package/dist/src/components/roster/parts/now-line.js.map +1 -0
  18. package/dist/src/components/roster/roster.types.d.ts +17 -1
  19. package/dist/src/components/roster/roster.types.d.ts.map +1 -1
  20. package/dist/src/components/roster/use-roster.d.ts.map +1 -1
  21. package/dist/src/components/roster/use-roster.js +6 -1
  22. package/dist/src/components/roster/use-roster.js.map +1 -1
  23. package/dist/src/core/index.d.ts +2 -1
  24. package/dist/src/core/index.d.ts.map +1 -1
  25. package/dist/src/core/index.js +6 -1
  26. package/dist/src/core/index.js.map +1 -1
  27. package/dist/src/core/layout.d.ts.map +1 -1
  28. package/dist/src/core/layout.js +2 -1
  29. package/dist/src/core/layout.js.map +1 -1
  30. package/dist/src/core/snap.d.ts +4 -0
  31. package/dist/src/core/snap.d.ts.map +1 -1
  32. package/dist/src/core/snap.js +5 -0
  33. package/dist/src/core/snap.js.map +1 -1
  34. package/dist/src/core/spans.d.ts +19 -0
  35. package/dist/src/core/spans.d.ts.map +1 -1
  36. package/dist/src/core/spans.js +64 -0
  37. package/dist/src/core/spans.js.map +1 -1
  38. package/dist/src/index.d.ts +2 -1
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +5 -3
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/nativewind/index.d.ts +1 -0
  43. package/dist/src/nativewind/index.d.ts.map +1 -1
  44. package/llms.txt +51 -7
  45. package/package.json +2 -2
  46. package/src/components/roster/README.md +16 -5
  47. package/src/components/roster/body-layout.tsx +15 -0
  48. package/src/components/roster/index.tsx +5 -0
  49. package/src/components/roster/parts/body.tsx +39 -2
  50. package/src/components/roster/parts/lane-list.tsx +2 -2
  51. package/src/components/roster/parts/now-line.tsx +19 -0
  52. package/src/components/roster/roster.types.ts +15 -9
  53. package/src/components/roster/use-roster.ts +8 -1
  54. package/src/core/README.md +15 -2
  55. package/src/core/index.ts +2 -1
  56. package/src/core/layout.ts +2 -1
  57. package/src/core/snap.ts +9 -0
  58. package/src/core/spans.ts +66 -2
  59. package/src/index.ts +3 -0
package/README.md CHANGED
@@ -168,7 +168,7 @@ and "Availability may be incomplete"; both are localizable props.
168
168
  | Import | Shipped surface |
169
169
  | --- | --- |
170
170
  | `react-native-roster` | `Roster`, `Schedule`, hooks, slot components, `RosterSelectionPopover`, `PortalHost`, `Portal`, and all core exports. |
171
- | `react-native-roster/core` | Types, `layoutLane`, `coverageFor`, `flagFor`, axis helpers, comparators, and counters. Standard JavaScript and `Intl` only. |
171
+ | `react-native-roster/core` | Types, `layoutLane`, `coverageFor`, `flagFor`, `extentOf`, `intersectionOf`, `unionOf`, axis helpers, comparators, and counters. Standard JavaScript and `Intl` only. |
172
172
  | `react-native-roster/rrule` | `expandRuleSet`, `envelopeFor`, types, and expansion counters and caches. Uses pinned `rrule-temporal` and `@js-temporal/polyfill`. |
173
173
  | `react-native-roster/nativewind` | Registers `Roster` and `Schedule` with NativeWind so their `className` props resolve; re-exports the registered components. |
174
174
 
@@ -180,6 +180,51 @@ importing one function from the root costs the whole root bundle; import from
180
180
  `/core` for a core-only bundle. Cache keys, counters, and clearing are in
181
181
  [caches](./docs/caches.md).
182
182
 
183
+ ## Core
184
+
185
+ ### Interval helpers
186
+
187
+ `unionOf(spans: readonly Window[]): Window[]` merges overlapping or touching
188
+ windows and returns them sorted by start, keeping disjoint windows separate.
189
+ Empty input returns `[]`. Every returned window is a new object; the input array
190
+ and its windows remain untouched. Like `extentOf` and `intersectionOf`, it uses
191
+ end-exclusive epoch milliseconds and throws `RangeError` for non-finite bounds
192
+ or `end <= start`.
193
+
194
+ Collapse each person's segments with `extentOf`, then use `intersectionOf` to
195
+ find the shared time across those windows. Each extent bridges gaps between
196
+ segments, so the result describes the collapsed windows.
197
+
198
+ ```ts
199
+ import type { Window } from 'react-native-roster/core';
200
+ import { extentOf, intersectionOf } from 'react-native-roster/core';
201
+
202
+ const people: { name: string; segments: Window[] }[] = [
203
+ {
204
+ name: 'Alex',
205
+ segments: [
206
+ { start: 1_000, end: 3_000 },
207
+ { start: 4_000, end: 8_000 },
208
+ ],
209
+ },
210
+ {
211
+ name: 'Sam',
212
+ segments: [
213
+ { start: 2_000, end: 5_000 },
214
+ { start: 6_000, end: 9_000 },
215
+ ],
216
+ },
217
+ ];
218
+
219
+ const windows = people.map((person): Window => {
220
+ const extent = extentOf(person.segments);
221
+ if (extent === null) throw new Error(`${person.name} has no segments`);
222
+ return extent;
223
+ });
224
+ const sharedTime = intersectionOf(windows); // { start: 2_000, end: 8_000 }
225
+ // A null result from intersectionOf means there is no shared time.
226
+ ```
227
+
183
228
  ## Navigation and interaction
184
229
 
185
230
  A `WindowSpec` is `{ span: 'day' | 'week' | 'month', anchorDate, timezone, wkst? }`
@@ -202,6 +247,19 @@ Roster's web-only pointer callback. `highlightSource={{ kind, id }}` applies
202
247
  `highlightColor` to every matching rect without new geometry. Sorting defaults
203
248
  to `byLabel`; `byCoverage({ measure })` sorts by coverage descending.
204
249
 
250
+ ## Now line
251
+
252
+ The optional `now` prop accepts epoch milliseconds or `null` (the default, which
253
+ draws nothing). Pass `now={timestamp}` to draw a vertical 2 px red line across the
254
+ body at the projected instant. Only `window.start <= now < window.end` is visible.
255
+ The caller owns clock updates; Roster starts no timer. `useRoster` exposes `now` and `nowLine`.
256
+ `now` retains the raw instant. `nowLine` (`{ x, now }`) uses the fitted
257
+ `pxPerMinute` scale and is null when `now` is null or outside the window.
258
+ Replace `nowLineComponent` to customize the line using `RosterNowLineInput`
259
+ (`{ x, now }`). The line follows horizontal scrolling; changing `now` does not
260
+ invalidate mounted lanes. The every-zone gallery fixture can toggle a fixed
261
+ instant at the window midpoint.
262
+
205
263
  ## Roster zones
206
264
 
207
265
  Props ending in `Component` accept `ComponentType<Input>` and are mounted by React.
@@ -220,12 +278,13 @@ or press behavior. Pass `null` to a node slot to suppress its default.
220
278
  | `intervalDetailComponent` | `rect`, `layer`, `lane`, `highlighted`, absolute `start` and `end`, `viewTimezone` | Absent by default; enables selection and fills its details. |
221
279
  | `selectionLayout` | `SelectionLayoutProps`: nodes, targetBounds, open, dismissal, host, and shared scroll | `RosterSelectionPopover`: native portal or Radix web popover; replace at runtime. |
222
280
  | `gapComponent` | `rect`, `layer`, `lane` | `RosterGap`: no visible content; the row supplies pressable bounds. |
281
+ | `nowLineComponent` | `RosterNowLineInput` (`x`, `now`) | `RosterNowLine`: noninteractive vertical red line across the body. |
223
282
  | `gridComponent` | `ticks`, `contentWidth` | `RosterGrid`: one hairline per tick behind every lane. |
224
283
  | `headerComponent` | `ticks`, `projection`, `scroll`, `contentWidth`, `headerCellComponent` | `RosterHeader`: frozen header following horizontal offset. |
225
284
  | `laneLabelColumnComponent` | `labels`, `projection`, `scroll`, `laneLabelComponent` | `RosterLaneLabelColumn`: frozen labels following vertical offset. |
226
- | `bodyComponent` | Ordered `lanes`, `window`, `geometryFor`, `projection`, `scroll`, `press`, `ticks`, `viewport`, `contentWidth`, highlight and hover, incomplete label, and rect components | `RosterBody`: virtualized lanes. |
285
+ | `bodyComponent` | Ordered `lanes`, `window`, `geometryFor`, `projection`, `scroll`, `press`, `ticks`, `viewport`, `contentWidth`, `nowLine`, `nowLineComponent`, highlight and hover, incomplete label, and rect components | `RosterBody`: virtualized lanes. |
227
286
 
228
- `RosterBody` composes `RosterBodyLayout`, which arranges `gridZone` and `listZone`
287
+ `RosterBody` composes `RosterBodyLayout`, which arranges `gridZone`, `listZone`, and optional `overlayZone`
229
288
  nodes with scroll wiring, and `RosterLaneList`, which owns LegendList and its
230
289
  per-lane callback. The body waits for viewport measurement before mounting the list.
231
290
 
@@ -500,6 +559,17 @@ network). The home page lists every fixture route:
500
559
  NativeWind class props and slot components, with a sun and moon theme toggle.
501
560
  Names, titles, and the organization come from `@faker-js/faker` with a fixed
502
561
  seed; any resemblance to real people is coincidental.
562
+ Each event compares scheduled time with seeded attendee arrivals and departures.
563
+ A fixed seeded now separates past, live, and future events; attendees are expected,
564
+ pending, present, attended, or absent. Present spans extend through now without
565
+ exposing future departures, including after scheduled end until actual departure.
566
+ A bottom strip draws the union of attendances over the lighter scheduled block,
567
+ preserving gaps and overhang. The event detail popover shares a shaded scheduled
568
+ band across attendance rows. Its footer status line defaults to the attendance
569
+ legend and scheduled-band explanation; web hover or visible keyboard focus shows
570
+ row detail, and native taps toggle detail or switch rows. The inspector retains
571
+ member selection. This feature lives in
572
+ [demo/components/team-roster](./demo/components/team-roster/README.md).
503
573
 
504
574
  | Platform | Support and evidence |
505
575
  | --- | --- |
@@ -1,9 +1,11 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { BodyInput } from './roster.types';
3
- export declare function RosterBodyLayout({ scroll, contentWidth, viewport, gridZone, listZone, }: Pick<BodyInput, 'scroll' | 'contentWidth' | 'viewport'> & {
3
+ export declare function RosterBodyLayout({ scroll, contentWidth, viewport, gridZone, listZone, overlayZone, }: Pick<BodyInput, 'scroll' | 'contentWidth' | 'viewport'> & {
4
4
  /** Noninteractive grid behind the lane list. */
5
5
  gridZone: ReactNode;
6
6
  /** Virtualized lane collection within the measured viewport. */
7
7
  listZone: ReactNode;
8
+ /** Noninteractive content above the grid and lane list, following horizontal scroll. */
9
+ overlayZone?: ReactNode;
8
10
  }): import("react/jsx-runtime").JSX.Element;
9
11
  //# sourceMappingURL=body-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"body-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/body-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IAC3D,gDAAgD;IAChD,QAAQ,EAAE,SAAS,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAsBA"}
1
+ {"version":3,"file":"body-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/body-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IAC3D,gDAAgD;IAChD,QAAQ,EAAE,SAAS,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,SAAS,CAAC;IACpB,wFAAwF;IACxF,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB,2CAkCA"}
@@ -4,12 +4,16 @@ exports.RosterBodyLayout = RosterBodyLayout;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const react_native_1 = require("react-native");
7
- function RosterBodyLayout({ scroll, contentWidth, viewport, gridZone, listZone, }) {
7
+ function RosterBodyLayout({ scroll, contentWidth, viewport, gridZone, listZone, overlayZone, }) {
8
+ let overlay = null;
9
+ if (overlayZone != null) {
10
+ overlay = ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: { position: 'absolute', top: 0, bottom: 0, left: 0, right: 0, zIndex: 1 }, children: overlayZone }));
11
+ }
8
12
  const [contentOffset] = (0, react_1.useState)(() => ({ x: scroll.x.get(), y: 0 }));
9
13
  const bodyRef = scroll.bodyRef;
10
14
  (0, react_1.useEffect)(() => {
11
15
  bodyRef.current?.scrollTo({ x: contentOffset.x, animated: false });
12
16
  }, [bodyRef, contentOffset]);
13
- return ((0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { testID: "roster-horizontal-scroll", ref: scroll.bodyRef, contentOffset: contentOffset, horizontal: true, onScroll: scroll.onBodyScroll, scrollEventThrottle: 16, style: { flex: 1 }, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: { width: contentWidth, height: viewport.height }, children: [gridZone, listZone] }) }));
17
+ return ((0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { testID: "roster-horizontal-scroll", ref: scroll.bodyRef, contentOffset: contentOffset, horizontal: true, onScroll: scroll.onBodyScroll, scrollEventThrottle: 16, style: { flex: 1 }, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: { width: contentWidth, height: viewport.height }, children: [gridZone, listZone, overlay] }) }));
14
18
  }
15
19
  //# sourceMappingURL=body-layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"body-layout.js","sourceRoot":"","sources":["../../../../src/components/roster/body-layout.tsx"],"names":[],"mappings":";;;;AAAA,iCAA4D;AAC5D,+CAAgD;AAGhD,0BAAiC,EAC/B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GAMT;IACC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7B,OAAO,CACL,uBAAC,yBAAU,IACT,MAAM,EAAC,0BAA0B,EACjC,GAAG,EAAE,MAAM,CAAC,OAAO,EACnB,aAAa,EAAE,aAAa,EAC5B,UAAU,QACV,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,mBAAmB,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAElB,wBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,aAC1D,QAAQ,EACR,QAAQ,IACJ,GACI,CACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"body-layout.js","sourceRoot":"","sources":["../../../../src/components/roster/body-layout.tsx"],"names":[],"mappings":";;;;AAAA,iCAA4D;AAC5D,+CAAgD;AAGhD,0BAAiC,EAC/B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GAQZ;IACC,IAAI,OAAO,GAAc,IAAI,CAAC;IAC9B,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,CACR,uBAAC,mBAAI,IACH,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAE/E,WAAW,GACP,CACR,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7B,OAAO,CACL,uBAAC,yBAAU,IACT,MAAM,EAAC,0BAA0B,EACjC,GAAG,EAAE,MAAM,CAAC,OAAO,EACnB,aAAa,EAAE,aAAa,EAC5B,UAAU,QACV,QAAQ,EAAE,MAAM,CAAC,YAAY,EAC7B,mBAAmB,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAElB,wBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,aAC1D,QAAQ,EACR,QAAQ,EACR,OAAO,IACH,GACI,CACd,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAa9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQlD,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+TAmIxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAc9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQlD,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+TAuIxC"}
@@ -15,13 +15,14 @@ const grid_1 = require("./parts/grid");
15
15
  const header_1 = require("./parts/header");
16
16
  const header_cell_1 = require("./parts/header-cell");
17
17
  const lane_label_column_1 = require("./parts/lane-label-column");
18
+ const now_line_1 = require("./parts/now-line");
18
19
  const selection_layout_1 = require("./selection/selection-layout");
19
20
  const use_roster_1 = require("./use-roster");
20
21
  const defaultEmptyZone = (0, jsx_runtime_1.jsx)(empty_1.RosterEmpty, {});
21
22
  const defaultCornerZone = (0, jsx_runtime_1.jsx)(corner_1.RosterCorner, {});
22
23
  function Roster(props) {
23
- const { selection, dismissSelection, status, orderedLanes, laneState, window, geometryFor, projection, scroll, press, ticks, contentWidth, viewport, onLayout, } = (0, use_roster_1.useRoster)({ ...props, selectable: Boolean(props.intervalDetailComponent) });
24
- const { intervalDetailComponent: IntervalDetailComponent, selectionLayout: SelectionLayout = selection_layout_1.RosterSelectionPopover, emptyZone = defaultEmptyZone, cornerZone = defaultCornerZone, headerComponent: HeaderComponent = header_1.RosterHeader, laneLabelColumnComponent: LaneLabelColumnComponent = lane_label_column_1.RosterLaneLabelColumn, bodyComponent: BodyComponent = body_1.RosterBody, headerCellComponent = header_cell_1.RosterHeaderCell, laneLabelComponent = lane_label_1.RosterLaneLabel, intervalComponent = interval_1.RosterInterval, gapComponent = gap_1.RosterGap, gridComponent = grid_1.RosterGrid, incompleteLabel = 'Availability may be incomplete', neverSetLabel = 'No availability set', } = props;
24
+ const { nowLine, selection, dismissSelection, status, orderedLanes, laneState, window, geometryFor, projection, scroll, press, ticks, contentWidth, viewport, onLayout, } = (0, use_roster_1.useRoster)({ ...props, selectable: Boolean(props.intervalDetailComponent) });
25
+ const { intervalDetailComponent: IntervalDetailComponent, selectionLayout: SelectionLayout = selection_layout_1.RosterSelectionPopover, emptyZone = defaultEmptyZone, cornerZone = defaultCornerZone, headerComponent: HeaderComponent = header_1.RosterHeader, laneLabelColumnComponent: LaneLabelColumnComponent = lane_label_column_1.RosterLaneLabelColumn, bodyComponent: BodyComponent = body_1.RosterBody, headerCellComponent = header_cell_1.RosterHeaderCell, laneLabelComponent = lane_label_1.RosterLaneLabel, intervalComponent = interval_1.RosterInterval, gapComponent = gap_1.RosterGap, gridComponent = grid_1.RosterGrid, nowLineComponent = now_line_1.RosterNowLine, incompleteLabel = 'Availability may be incomplete', neverSetLabel = 'No availability set', } = props;
25
26
  const hostId = (0, react_1.useId)();
26
27
  if (status === 'empty')
27
28
  return emptyZone;
@@ -58,6 +59,6 @@ function Roster(props) {
58
59
  y: scroll.y,
59
60
  headerStyle: scroll.headerStyle,
60
61
  labelStyle: scroll.labelStyle,
61
- }, targetBounds: targetBounds, contentZone: contentZone, anchorZone: (0, jsx_runtime_1.jsx)(BodyComponent, { lanes: orderedLanes, window: window, geometryFor: geometryFor, projection: projection, scroll: scroll, press: press, ticks: ticks, contentWidth: contentWidth, viewport: viewport, intervalComponent: intervalComponent, gapComponent: gapComponent, gridComponent: gridComponent, highlightSource: props.highlightSource, onIntervalHover: props.onIntervalHover, incompleteLabel: incompleteLabel }) }) }));
62
+ }, targetBounds: targetBounds, contentZone: contentZone, anchorZone: (0, jsx_runtime_1.jsx)(BodyComponent, { nowLine: nowLine, nowLineComponent: nowLineComponent, lanes: orderedLanes, window: window, geometryFor: geometryFor, projection: projection, scroll: scroll, press: press, ticks: ticks, contentWidth: contentWidth, viewport: viewport, intervalComponent: intervalComponent, gapComponent: gapComponent, gridComponent: gridComponent, highlightSource: props.highlightSource, onIntervalHover: props.onIntervalHover, incompleteLabel: incompleteLabel }) }) }));
62
63
  }
63
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/roster/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/roster/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,GAAG;IACjB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,kDAcF"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,GAAG;IACjB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,kDAmDF"}
@@ -5,10 +5,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const body_layout_1 = require("../body-layout");
6
6
  const lane_list_1 = require("./lane-list");
7
7
  function RosterBody(props) {
8
- const { viewport, scroll, contentWidth, ticks, gridComponent: GridComponent } = props;
8
+ const { nowLine, nowLineComponent: NowLineComponent, ticks, gridComponent: GridComponent, lanes, geometryFor, projection, scroll, press, contentWidth, viewport, window, intervalComponent, gapComponent, highlightSource, onIntervalHover, incompleteLabel, onRowRender, } = props;
9
9
  // LegendList requires a measured viewport and does not support static rendering.
10
10
  if (viewport.width <= 0 || viewport.height <= 0)
11
11
  return null;
12
- return ((0, jsx_runtime_1.jsx)(body_layout_1.RosterBodyLayout, { scroll: scroll, contentWidth: contentWidth, viewport: viewport, gridZone: (0, jsx_runtime_1.jsx)(GridComponent, { ticks: ticks, contentWidth: contentWidth }), listZone: (0, jsx_runtime_1.jsx)(lane_list_1.RosterLaneList, { ...props }) }));
12
+ return ((0, jsx_runtime_1.jsx)(body_layout_1.RosterBodyLayout, { scroll: scroll, contentWidth: contentWidth, viewport: viewport, gridZone: (0, jsx_runtime_1.jsx)(GridComponent, { ticks: ticks, contentWidth: contentWidth }), listZone: (0, jsx_runtime_1.jsx)(lane_list_1.RosterLaneList, { lanes: lanes, geometryFor: geometryFor, projection: projection, scroll: scroll, press: press, contentWidth: contentWidth, viewport: viewport, window: window, intervalComponent: intervalComponent, gapComponent: gapComponent, highlightSource: highlightSource, onIntervalHover: onIntervalHover, incompleteLabel: incompleteLabel, onRowRender: onRowRender }), overlayZone: nowLine ? (0, jsx_runtime_1.jsx)(NowLineComponent, { ...nowLine }) : null }));
13
13
  }
14
14
  //# sourceMappingURL=body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":";;;;AACA,gDAAkD;AAElD,2CAA6C;AAE7C,oBACE,KAGC;IAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IACtF,iFAAiF;IACjF,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,CACL,uBAAC,8BAAgB,IACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,uBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,EACrE,QAAQ,EAAE,uBAAC,0BAAc,OAAK,KAAK,GAAI,GACvC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":";;;;AACA,gDAAkD;AAElD,2CAA6C;AAE7C,oBACE,KAGC;IAED,MAAM,EACJ,OAAO,EACP,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EACL,aAAa,EAAE,aAAa,EAC5B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GACZ,GAAG,KAAK,CAAC;IACV,iFAAiF;IACjF,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,CACL,uBAAC,8BAAgB,IACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,uBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,EACrE,QAAQ,EACN,uBAAC,0BAAc,IACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,GACxB,EAEJ,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,uBAAC,gBAAgB,OAAK,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,GAC/D,CACH,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type ProfilerOnRenderCallback } from 'react';
2
- import type { BodyInput } from '../roster.types';
3
- export declare function RosterLaneList({ lanes, geometryFor, projection, scroll, press, contentWidth, viewport, window, intervalComponent, gapComponent, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }: Omit<BodyInput, 'ticks' | 'gridComponent'> & {
2
+ import type { LaneListInput } from '../roster.types';
3
+ export declare function RosterLaneList({ lanes, geometryFor, projection, scroll, press, contentWidth, viewport, window, intervalComponent, gapComponent, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }: LaneListInput & {
4
4
  /** Development-only Profiler hook used by the gallery; not a supported customization point. */
5
5
  onRowRender?: ProfilerOnRenderCallback;
6
6
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"lane-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,wBAAwB,EAAY,MAAM,OAAO,CAAC;AAE1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GACZ,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,eAAe,CAAC,GAAG;IAC9C,+FAA+F;IAC/F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,2CAmDA"}
1
+ {"version":3,"file":"lane-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/lane-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,wBAAwB,EAAY,MAAM,OAAO,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GACZ,EAAE,aAAa,GAAG;IACjB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,2CAmDA"}
@@ -0,0 +1,3 @@
1
+ import type { RosterNowLineInput } from '../roster.types';
2
+ export declare function RosterNowLine({ x }: RosterNowLineInput): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=now-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"now-line.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/now-line.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,2CAetD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RosterNowLine = RosterNowLine;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ function RosterNowLine({ x }) {
7
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { testID: "roster-now-line", pointerEvents: "none", style: {
8
+ position: 'absolute',
9
+ left: x,
10
+ top: 0,
11
+ bottom: 0,
12
+ width: 2,
13
+ backgroundColor: '#dc2626',
14
+ } }));
15
+ }
16
+ //# sourceMappingURL=now-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"now-line.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/now-line.tsx"],"names":[],"mappings":";;;;AAAA,+CAAoC;AAGpC,uBAA8B,EAAE,CAAC,EAAsB;IACrD,OAAO,CACL,uBAAC,mBAAI,IACH,MAAM,EAAC,iBAAiB,EACxB,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,CAAC;YACP,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,eAAe,EAAE,SAAS;SAC3B,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -35,6 +35,8 @@ export type RosterInput = {
35
35
  lanes: Lane[];
36
36
  windowSpec: WindowSpec;
37
37
  minuteStep?: number;
38
+ /** Current instant in epoch milliseconds; default null draws no now line. */
39
+ now?: number | null;
38
40
  sortLanes?: LaneComparator;
39
41
  highlightSource?: Source;
40
42
  onNavigate?: (next: WindowSpec) => void;
@@ -66,6 +68,8 @@ export type RosterModel = {
66
68
  press: (lane: Lane, x: number, y: number) => void;
67
69
  status: 'empty' | 'ready';
68
70
  ticks: RosterTick[];
71
+ now: number | null;
72
+ nowLine: RosterNowLineInput | null;
69
73
  contentWidth: number;
70
74
  viewport: {
71
75
  width: number;
@@ -82,6 +86,10 @@ export type LaneLabelInput = {
82
86
  incompleteLabel: string;
83
87
  neverSetLabel: string;
84
88
  };
89
+ export type RosterNowLineInput = {
90
+ x: number;
91
+ now: number;
92
+ };
85
93
  export type HeaderCellInput = {
86
94
  tick: RosterTick;
87
95
  };
@@ -98,7 +106,7 @@ export type LabelColumnInput = Pick<RosterModel, 'projection' | 'scroll'> & {
98
106
  /** Lane label filler, positioned at the fixed row height. */
99
107
  laneLabelComponent: ComponentType<LaneLabelInput>;
100
108
  };
101
- export type BodyInput = Pick<RosterModel, 'geometryFor' | 'projection' | 'scroll' | 'press' | 'ticks' | 'contentWidth' | 'viewport' | 'window'> & {
109
+ export type LaneListInput = Pick<RosterModel, 'geometryFor' | 'projection' | 'scroll' | 'press' | 'contentWidth' | 'viewport' | 'window'> & {
102
110
  lanes: Lane[];
103
111
  highlightSource?: Source;
104
112
  onIntervalHover?: (rect: Rect, lane: Lane) => void;
@@ -107,6 +115,12 @@ export type BodyInput = Pick<RosterModel, 'geometryFor' | 'projection' | 'scroll
107
115
  intervalComponent: ComponentType<IntervalInput>;
108
116
  /** Removed rect filler, placed inside a pressable by LaneRow. */
109
117
  gapComponent: ComponentType<GapInput>;
118
+ };
119
+ export type BodyInput = LaneListInput & {
120
+ ticks: RosterTick[];
121
+ nowLine: RosterNowLineInput | null;
122
+ /** Noninteractive current-time line positioned in body content pixels. */
123
+ nowLineComponent: ComponentType<RosterNowLineInput>;
110
124
  /** Noninteractive tick lines behind every lane, sized to the content width. */
111
125
  gridComponent: ComponentType<GridInput>;
112
126
  };
@@ -132,6 +146,8 @@ export type RosterStyleProps = {
132
146
  laneLabelWidth?: number;
133
147
  };
134
148
  export type RosterProps = Omit<RosterInput, 'selectable'> & RosterStyleProps & {
149
+ /** Noninteractive current-time line; RosterNowLine spans the body height at x. */
150
+ nowLineComponent?: ComponentType<RosterNowLineInput>;
135
151
  /**
136
152
  * Selected interval content; absent means interval presses retain no selection.
137
153
  * Lives on RosterProps because the chassis mounts content and enables useRoster selection.
@@ -1 +1 @@
1
- {"version":3,"file":"roster.types.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/roster.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roster.types.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/roster.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-roster.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/use-roster.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAIjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAkGzD"}
1
+ {"version":3,"file":"use-roster.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/use-roster.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AAIjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAyGzD"}
@@ -7,7 +7,7 @@ const core_1 = require("../../core");
7
7
  const use_roster_press_1 = require("./use-roster-press");
8
8
  const ticks_1 = require("./utils/ticks");
9
9
  function useRoster(input) {
10
- const { lanes, windowSpec, minuteStep = 60, sortLanes = core_1.byLabel, rowHeight = 48, pxPerMinute = 0.5, onNavigate, } = input;
10
+ const { lanes, windowSpec, now = null, minuteStep = 60, sortLanes = core_1.byLabel, rowHeight = 48, pxPerMinute = 0.5, onNavigate, } = input;
11
11
  const [selected, setSelected] = (0, react_1.useState)(null);
12
12
  function dismissSelection() {
13
13
  setSelected(null);
@@ -33,6 +33,9 @@ function useRoster(input) {
33
33
  rowHeight,
34
34
  pxPerMinute: Math.max(pxPerMinute, duration === 0 ? 0 : viewport.width / duration),
35
35
  };
36
+ const nowLine = now !== null && now >= window.start && now < window.end
37
+ ? { x: (0, core_1.xAtTime)(projection, window, now), now }
38
+ : null;
36
39
  const contentWidth = duration * projection.pxPerMinute;
37
40
  const coverage = new Map(lanes.map((lane) => [lane.id, (0, core_1.coverageFor)(lane, window)]));
38
41
  const orderedLanes = [...lanes].sort((a, b) => sortLanes(a, b, coverage));
@@ -60,6 +63,8 @@ function useRoster(input) {
60
63
  press,
61
64
  status: lanes.length === 0 ? 'empty' : 'ready',
62
65
  ticks: (0, ticks_1.ticksFor)(window, windowSpec, projection, minuteStep),
66
+ now,
67
+ nowLine,
63
68
  contentWidth,
64
69
  viewport,
65
70
  navigate: (next) => onNavigate?.(next),
@@ -1 +1 @@
1
- {"version":3,"file":"use-roster.js","sourceRoot":"","sources":["../../../../src/components/roster/use-roster.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAEzC,qEAAwE;AAExE,qCAA2F;AAE3F,yDAA2E;AAC3E,yCAAyC;AAEzC,mBAA0B,KAAkB;IAC1C,MAAM,EACJ,KAAK,EACL,UAAU,EACV,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,cAAO,EACnB,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,GAAG,EACjB,UAAU,GACX,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACxE,SAAS,gBAAgB;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,CAAC,CAAC,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAA,qCAAW,EAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,CAAC,CAAC,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAA,qCAAW,EAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAA,cAAM,EAAa,IAAI,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,IAAA,0CAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,IAAA,0CAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC;IACrC,IACE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAChB,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3B,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAE7B,MAAM,IAAI,UAAU,CAAC,2DAA2D,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACtD,MAAM,UAAU,GAAqB;QACnC,WAAW,EAAE,YAAY;QACzB,YAAY,EAAE,UAAU,CAAC,QAAQ;QACjC,SAAS;QACT,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;KACnF,CAAC;IACF,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAA,kBAAW,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE;QACP,EAAE,IAAI,EAAE,IAAA,cAAO,EAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;KACjE,CAAC,CACH,CAAC;IACF,SAAS,WAAW,CAAC,IAAU;QAC7B,OAAO,IAAA,iBAAU,EAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,CAClC,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,CAAC,UAAU,IAAI,KAAK,CAC1B,CAAC;IACF,sFAAsF;IACtF,IAAI,QAAQ,IAAI,CAAC,SAAS;QAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAA,iCAAc,EAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9F,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,MAAM;QACN,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QAC9C,KAAK,EAAE,IAAA,gBAAQ,EAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;QAC3D,YAAY;QACZ,QAAQ;QACR,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;QACtC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CACxC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvB,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAClE,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CACnD;QACH,MAAM,EAAE;YACN,CAAC;YACD,CAAC;YACD,OAAO;YACP,WAAW;YACX,UAAU;YACV,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBAChC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBAClC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBACpC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,SAAS,kBAAkB,CACzB,QAAiC,EACjC,KAAa,EACb,MAAc,EACd,UAA4B,EAC5B,OAAgB;IAEhB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAChF,CAAC;YACF,IAAI,IAAsB,CAAC;YAC3B,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,IAAA,iBAAU,EAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;gBACnE,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;oBAAE,SAAS;gBAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAC5E,CAAC;gBACF,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACrF,SAAS;gBACX,MAAM,UAAU,GACd,IAAI,CAAC,GAAG,CAAC,IAAA,cAAO,EAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;oBACnE,IAAI,CAAC,GAAG,CAAC,IAAA,cAAO,EAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACtF,IAAI,UAAU,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;oBAC7D,OAAO,GAAG,UAAU,CAAC;oBACrB,IAAI,GAAG,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,IAAI,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"use-roster.js","sourceRoot":"","sources":["../../../../src/components/roster/use-roster.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,8 @@ export { flagFor } from './flag';
7
7
  export { layoutLane } from './layout';
8
8
  export type { LaneComparator } from './order';
9
9
  export { byCoverage, byLabel } from './order';
10
- export { snapToStep, timeAtX, timeAtY } from './snap';
10
+ export { snapToStep, timeAtX, timeAtY, xAtTime } from './snap';
11
11
  export { hasSource } from './source';
12
+ export { extentOf, intersectionOf, unionOf } from './spans';
12
13
  export type { Coverage, DayColumn, Gap, Interval, Lane, LaneFlag, LaneGeometry, Layer, LayerRole, LayerStyle, Projection, Rect, Source, Transition, Weekday, Window, } from './types';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EACV,QAAQ,EACR,SAAS,EACT,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,IAAI,EACJ,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC5D,YAAY,EACV,QAAQ,EACR,SAAS,EACT,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,IAAI,EACJ,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasSource = exports.timeAtY = exports.timeAtX = exports.snapToStep = exports.byLabel = exports.byCoverage = exports.layoutLane = exports.flagFor = exports.coverageFor = exports.dayColumnsFor = exports.resetStats = exports.layoutStats = exports.coverageStats = exports.clearLayoutCache = exports.clearCoverageCache = exports.windowFor = exports.today = exports.prev = exports.next = void 0;
3
+ exports.unionOf = exports.intersectionOf = exports.extentOf = exports.hasSource = exports.xAtTime = exports.timeAtY = exports.timeAtX = exports.snapToStep = exports.byLabel = exports.byCoverage = exports.layoutLane = exports.flagFor = exports.coverageFor = exports.dayColumnsFor = exports.resetStats = exports.layoutStats = exports.coverageStats = exports.clearLayoutCache = exports.clearCoverageCache = exports.windowFor = exports.today = exports.prev = exports.next = void 0;
4
4
  var axis_1 = require("./axis");
5
5
  Object.defineProperty(exports, "next", { enumerable: true, get: function () { return axis_1.next; } });
6
6
  Object.defineProperty(exports, "prev", { enumerable: true, get: function () { return axis_1.prev; } });
@@ -27,6 +27,11 @@ var snap_1 = require("./snap");
27
27
  Object.defineProperty(exports, "snapToStep", { enumerable: true, get: function () { return snap_1.snapToStep; } });
28
28
  Object.defineProperty(exports, "timeAtX", { enumerable: true, get: function () { return snap_1.timeAtX; } });
29
29
  Object.defineProperty(exports, "timeAtY", { enumerable: true, get: function () { return snap_1.timeAtY; } });
30
+ Object.defineProperty(exports, "xAtTime", { enumerable: true, get: function () { return snap_1.xAtTime; } });
30
31
  var source_1 = require("./source");
31
32
  Object.defineProperty(exports, "hasSource", { enumerable: true, get: function () { return source_1.hasSource; } });
33
+ var spans_1 = require("./spans");
34
+ Object.defineProperty(exports, "extentOf", { enumerable: true, get: function () { return spans_1.extentOf; } });
35
+ Object.defineProperty(exports, "intersectionOf", { enumerable: true, get: function () { return spans_1.intersectionOf; } });
36
+ Object.defineProperty(exports, "unionOf", { enumerable: true, get: function () { return spans_1.unionOf; } });
32
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;AACA,+BAAsD;AAA7C,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA;AAAE,6FAAA,KAAK,OAAA;AAAE,iGAAA,SAAS,OAAA;AACrC,iCAMiB;AALf,2GAAA,kBAAkB,OAAA;AAClB,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA;AAEZ,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AACpB,+BAAiC;AAAxB,+FAAA,OAAO,OAAA;AAChB,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AAEnB,iCAA8C;AAArC,mGAAA,UAAU,OAAA;AAAE,gGAAA,OAAO,OAAA;AAC5B,+BAAsD;AAA7C,kGAAA,UAAU,OAAA;AAAE,+FAAA,OAAO,OAAA;AAAE,+FAAA,OAAO,OAAA;AACrC,mCAAqC;AAA5B,mGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;AACA,+BAAsD;AAA7C,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA;AAAE,6FAAA,KAAK,OAAA;AAAE,iGAAA,SAAS,OAAA;AACrC,iCAMiB;AALf,2GAAA,kBAAkB,OAAA;AAClB,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA;AAEZ,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AACpB,+BAAiC;AAAxB,+FAAA,OAAO,OAAA;AAChB,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AAEnB,iCAA8C;AAArC,mGAAA,UAAU,OAAA;AAAE,gGAAA,OAAO,OAAA;AAC5B,+BAA+D;AAAtD,kGAAA,UAAU,OAAA;AAAE,+FAAA,OAAO,OAAA;AAAE,+FAAA,OAAO,OAAA;AAAE,+FAAA,OAAO,OAAA;AAC9C,mCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAClB,iCAA4D;AAAnD,iGAAA,QAAQ,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,gGAAA,OAAO,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/core/layout.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAY,IAAI,EAAE,YAAY,EAAS,UAAU,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7F,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY,CAwC3F"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/core/layout.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAY,IAAI,EAAE,YAAY,EAAS,UAAU,EAAQ,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7F,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,YAAY,CAwC3F"}
@@ -6,6 +6,7 @@ const coverage_1 = require("./coverage");
6
6
  const flag_1 = require("./flag");
7
7
  const hash_1 = require("./hash");
8
8
  const scale_1 = require("./scale");
9
+ const snap_1 = require("./snap");
9
10
  const spans_1 = require("./spans");
10
11
  function layoutLane(lane, window, projection) {
11
12
  const key = `${(0, hash_1.laneKey)(lane, window)}|${(0, hash_1.projectionKey)(projection)}`;
@@ -54,7 +55,7 @@ function project(spans, layer, window, projection, columns, rects) {
54
55
  if (projection.orientation === 'horizontal') {
55
56
  for (const span of spans) {
56
57
  rects.push({
57
- x: ((span.start - window.start) / 60_000) * projection.pxPerMinute,
58
+ x: (0, snap_1.xAtTime)(projection, window, span.start),
58
59
  y: inset,
59
60
  width: ((span.end - span.start) / 60_000) * projection.pxPerMinute,
60
61
  height: Math.max(0, projection.rowHeight - 2 * inset),
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/core/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/core/layout.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,8 @@ export declare function timeAtY(projection: Extract<Projection, {
7
7
  export declare function timeAtX(projection: Extract<Projection, {
8
8
  orientation: 'horizontal';
9
9
  }>, window: Window, x: number): number;
10
+ /** Horizontal position at true elapsed length; the window supplies the projection's origin. */
11
+ export declare function xAtTime(projection: Extract<Projection, {
12
+ orientation: 'horizontal';
13
+ }>, window: Window, time: number): number;
10
14
  //# sourceMappingURL=snap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../../src/core/snap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcrF;AAED,wBAAgB,OAAO,CACrB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,WAAW,EAAE,SAAS,CAAA;CAAE,CAAC,EAC3D,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,GACR,MAAM,GAAG,IAAI,CAiBf;AAED,yFAAyF;AACzF,wBAAgB,OAAO,CACrB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,WAAW,EAAE,YAAY,CAAA;CAAE,CAAC,EAC9D,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,GACR,MAAM,CAER"}
1
+ {"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../../src/core/snap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcrF;AAED,wBAAgB,OAAO,CACrB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,WAAW,EAAE,SAAS,CAAA;CAAE,CAAC,EAC3D,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,GACR,MAAM,GAAG,IAAI,CAiBf;AAED,yFAAyF;AACzF,wBAAgB,OAAO,CACrB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,WAAW,EAAE,YAAY,CAAA;CAAE,CAAC,EAC9D,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,GACR,MAAM,CAER;AAED,+FAA+F;AAC/F,wBAAgB,OAAO,CACrB,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,WAAW,EAAE,YAAY,CAAA;CAAE,CAAC,EAC9D,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,MAAM,CAER"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.snapToStep = snapToStep;
4
4
  exports.timeAtY = timeAtY;
5
5
  exports.timeAtX = timeAtX;
6
+ exports.xAtTime = xAtTime;
6
7
  const columns_1 = require("./columns");
7
8
  const scale_1 = require("./scale");
8
9
  const zone_1 = require("./zone");
@@ -40,4 +41,8 @@ function timeAtY(projection, columnIndex, y) {
40
41
  function timeAtX(projection, window, x) {
41
42
  return window.start + (x * 60_000) / projection.pxPerMinute;
42
43
  }
44
+ /** Horizontal position at true elapsed length; the window supplies the projection's origin. */
45
+ function xAtTime(projection, window, time) {
46
+ return ((time - window.start) / 60_000) * projection.pxPerMinute;
47
+ }
43
48
  //# sourceMappingURL=snap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snap.js","sourceRoot":"","sources":["../../../src/core/snap.ts"],"names":[],"mappings":";;;;;AAAA,uCAA0C;AAC1C,mCAAsC;AAEtC,iCAAkC;AAElC,oBAA2B,IAAY,EAAE,UAAkB,EAAE,QAAgB;IAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAA,uBAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,EAAE,IAAI,IAAI;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iBACE,UAA2D,EAC3D,WAAmB,EACnB,CAAS;IAET,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,IAAA,mBAAW,EAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9D,IACE,MAAM,IAAI,KAAK,CAAC,MAAM;YACtB,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,EAC1E,CAAC;YACD,0EAA0E;YAC1E,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,CAAC,GAAG,GAAG,CAAC,EACb,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yFAAyF;AACzF,iBACE,UAA8D,EAC9D,MAAc,EACd,CAAS;IAET,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"snap.js","sourceRoot":"","sources":["../../../src/core/snap.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA0C;AAC1C,mCAAsC;AAEtC,iCAAkC;AAElC,oBAA2B,IAAY,EAAE,UAAkB,EAAE,QAAgB;IAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;IACjC,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAA,uBAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,EAAE,IAAI,IAAI;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iBACE,UAA2D,EAC3D,WAAmB,EACnB,CAAS;IAET,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,IAAA,mBAAW,EAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9D,IACE,MAAM,IAAI,KAAK,CAAC,MAAM;YACtB,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,EAC1E,CAAC;YACD,0EAA0E;YAC1E,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,CAAC,GAAG,GAAG,CAAC,EACb,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yFAAyF;AACzF,iBACE,UAA8D,EAC9D,MAAc,EACd,CAAS;IAET,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;AAC9D,CAAC;AAED,+FAA+F;AAC/F,iBACE,UAA8D,EAC9D,MAAc,EACd,IAAY;IAEZ,OAAO,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;AACnE,CAAC"}