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.
- package/README.md +73 -3
- package/dist/src/components/roster/body-layout.d.ts +3 -1
- package/dist/src/components/roster/body-layout.d.ts.map +1 -1
- package/dist/src/components/roster/body-layout.js +6 -2
- package/dist/src/components/roster/body-layout.js.map +1 -1
- package/dist/src/components/roster/index.d.ts.map +1 -1
- package/dist/src/components/roster/index.js +4 -3
- package/dist/src/components/roster/index.js.map +1 -1
- package/dist/src/components/roster/parts/body.d.ts.map +1 -1
- package/dist/src/components/roster/parts/body.js +2 -2
- package/dist/src/components/roster/parts/body.js.map +1 -1
- package/dist/src/components/roster/parts/lane-list.d.ts +2 -2
- package/dist/src/components/roster/parts/lane-list.d.ts.map +1 -1
- package/dist/src/components/roster/parts/now-line.d.ts +3 -0
- package/dist/src/components/roster/parts/now-line.d.ts.map +1 -0
- package/dist/src/components/roster/parts/now-line.js +16 -0
- package/dist/src/components/roster/parts/now-line.js.map +1 -0
- package/dist/src/components/roster/roster.types.d.ts +17 -1
- package/dist/src/components/roster/roster.types.d.ts.map +1 -1
- package/dist/src/components/roster/use-roster.d.ts.map +1 -1
- package/dist/src/components/roster/use-roster.js +6 -1
- package/dist/src/components/roster/use-roster.js.map +1 -1
- package/dist/src/core/index.d.ts +2 -1
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +6 -1
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/layout.d.ts.map +1 -1
- package/dist/src/core/layout.js +2 -1
- package/dist/src/core/layout.js.map +1 -1
- package/dist/src/core/snap.d.ts +4 -0
- package/dist/src/core/snap.d.ts.map +1 -1
- package/dist/src/core/snap.js +5 -0
- package/dist/src/core/snap.js.map +1 -1
- package/dist/src/core/spans.d.ts +19 -0
- package/dist/src/core/spans.d.ts.map +1 -1
- package/dist/src/core/spans.js +64 -0
- package/dist/src/core/spans.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/nativewind/index.d.ts +1 -0
- package/dist/src/nativewind/index.d.ts.map +1 -1
- package/llms.txt +51 -7
- package/package.json +2 -2
- package/src/components/roster/README.md +16 -5
- package/src/components/roster/body-layout.tsx +15 -0
- package/src/components/roster/index.tsx +5 -0
- package/src/components/roster/parts/body.tsx +39 -2
- package/src/components/roster/parts/lane-list.tsx +2 -2
- package/src/components/roster/parts/now-line.tsx +19 -0
- package/src/components/roster/roster.types.ts +15 -9
- package/src/components/roster/use-roster.ts +8 -1
- package/src/core/README.md +15 -2
- package/src/core/index.ts +2 -1
- package/src/core/layout.ts +2 -1
- package/src/core/snap.ts +9 -0
- package/src/core/spans.ts +66 -2
- 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 `
|
|
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,
|
|
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,
|
|
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;
|
|
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":";;;;AAAA,iCAA8C;AAC9C,qCAAuC;AACvC,6CAAgD;AAChD,uDAA0D;AAC1D,yDAA2D;AAC3D,qCAAwC;AACxC,uCAA0C;AAC1C,2CAA8C;AAC9C,yCAA4C;AAC5C,uCAA0C;AAC1C,2CAA8C;AAC9C,qDAAuD;AACvD,iEAAkE;
|
|
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,
|
|
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 {
|
|
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, { ...
|
|
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,
|
|
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 {
|
|
3
|
-
export declare function RosterLaneList({ lanes, geometryFor, projection, scroll, press, contentWidth, viewport, window, intervalComponent, gapComponent, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }:
|
|
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,
|
|
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 @@
|
|
|
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
|
|
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,
|
|
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,
|
|
1
|
+
{"version":3,"file":"use-roster.js","sourceRoot":"","sources":["../../../../src/components/roster/use-roster.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/src/core/index.js
CHANGED
|
@@ -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,+
|
|
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":"
|
|
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"}
|
package/dist/src/core/layout.js
CHANGED
|
@@ -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: ((
|
|
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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"}
|
package/dist/src/core/snap.d.ts
CHANGED
|
@@ -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"}
|
package/dist/src/core/snap.js
CHANGED
|
@@ -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":"
|
|
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"}
|