react-native-roster 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +29 -0
- package/README.md +378 -2
- package/dist/src/adapters/rrule/cache.d.ts +15 -0
- package/dist/src/adapters/rrule/cache.d.ts.map +1 -0
- package/dist/src/adapters/rrule/cache.js +53 -0
- package/dist/src/adapters/rrule/cache.js.map +1 -0
- package/dist/src/adapters/rrule/envelope.d.ts +3 -0
- package/dist/src/adapters/rrule/envelope.d.ts.map +1 -0
- package/dist/src/adapters/rrule/envelope.js +9 -0
- package/dist/src/adapters/rrule/envelope.js.map +1 -0
- package/dist/src/adapters/rrule/expand.d.ts +4 -0
- package/dist/src/adapters/rrule/expand.d.ts.map +1 -0
- package/dist/src/adapters/rrule/expand.js +92 -0
- package/dist/src/adapters/rrule/expand.js.map +1 -0
- package/dist/src/adapters/rrule/hash.d.ts +3 -0
- package/dist/src/adapters/rrule/hash.d.ts.map +1 -0
- package/dist/src/adapters/rrule/hash.js +15 -0
- package/dist/src/adapters/rrule/hash.js.map +1 -0
- package/dist/src/adapters/rrule/index.d.ts +5 -0
- package/dist/src/adapters/rrule/index.d.ts.map +1 -0
- package/dist/src/adapters/rrule/index.js +12 -0
- package/dist/src/adapters/rrule/index.js.map +1 -0
- package/dist/src/adapters/rrule/net.d.ts +6 -0
- package/dist/src/adapters/rrule/net.d.ts.map +1 -0
- package/dist/src/adapters/rrule/net.js +31 -0
- package/dist/src/adapters/rrule/net.js.map +1 -0
- package/dist/src/adapters/rrule/occurrences.d.ts +6 -0
- package/dist/src/adapters/rrule/occurrences.d.ts.map +1 -0
- package/dist/src/adapters/rrule/occurrences.js +252 -0
- package/dist/src/adapters/rrule/occurrences.js.map +1 -0
- package/dist/src/adapters/rrule/types.d.ts +62 -0
- package/dist/src/adapters/rrule/types.d.ts.map +1 -0
- package/dist/src/adapters/rrule/types.js +3 -0
- package/dist/src/adapters/rrule/types.js.map +1 -0
- package/dist/src/adapters/rrule/validate.d.ts +6 -0
- package/dist/src/adapters/rrule/validate.d.ts.map +1 -0
- package/dist/src/adapters/rrule/validate.js +64 -0
- package/dist/src/adapters/rrule/validate.js.map +1 -0
- package/dist/src/components/layers/layers.types.d.ts +15 -0
- package/dist/src/components/layers/layers.types.d.ts.map +1 -0
- package/dist/src/components/layers/layers.types.js +3 -0
- package/dist/src/components/layers/layers.types.js.map +1 -0
- package/dist/src/components/layers/parts/gap.d.ts +3 -0
- package/dist/src/components/layers/parts/gap.d.ts.map +1 -0
- package/dist/src/components/layers/parts/gap.js +7 -0
- package/dist/src/components/layers/parts/gap.js.map +1 -0
- package/dist/src/components/layers/parts/interval.d.ts +3 -0
- package/dist/src/components/layers/parts/interval.d.ts.map +1 -0
- package/dist/src/components/layers/parts/interval.js +22 -0
- package/dist/src/components/layers/parts/interval.js.map +1 -0
- package/dist/src/components/layers/utils/styles.d.ts +7 -0
- package/dist/src/components/layers/utils/styles.d.ts.map +1 -0
- package/dist/src/components/layers/utils/styles.js +24 -0
- package/dist/src/components/layers/utils/styles.js.map +1 -0
- package/dist/src/components/primitives/press-point.d.ts +3 -0
- package/dist/src/components/primitives/press-point.d.ts.map +1 -0
- package/dist/src/components/primitives/press-point.js +7 -0
- package/dist/src/components/primitives/press-point.js.map +1 -0
- package/dist/src/components/primitives/press-point.types.d.ts +14 -0
- package/dist/src/components/primitives/press-point.types.d.ts.map +1 -0
- package/dist/src/components/primitives/press-point.types.js +3 -0
- package/dist/src/components/primitives/press-point.types.js.map +1 -0
- package/dist/src/components/primitives/press-point.web.d.ts +3 -0
- package/dist/src/components/primitives/press-point.web.d.ts.map +1 -0
- package/dist/src/components/primitives/press-point.web.js +17 -0
- package/dist/src/components/primitives/press-point.web.js.map +1 -0
- package/dist/src/components/primitives/region-style.d.ts +9 -0
- package/dist/src/components/primitives/region-style.d.ts.map +1 -0
- package/dist/src/components/primitives/region-style.js +20 -0
- package/dist/src/components/primitives/region-style.js.map +1 -0
- package/dist/src/components/roster/index.d.ts +3 -0
- package/dist/src/components/roster/index.d.ts.map +1 -0
- package/dist/src/components/roster/index.js +56 -0
- package/dist/src/components/roster/index.js.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.d.ts +3 -0
- package/dist/src/components/roster/lanes/interval-hover.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.js +7 -0
- package/dist/src/components/roster/lanes/interval-hover.js.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.types.d.ts +15 -0
- package/dist/src/components/roster/lanes/interval-hover.types.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.types.js +3 -0
- package/dist/src/components/roster/lanes/interval-hover.types.js.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.web.d.ts +3 -0
- package/dist/src/components/roster/lanes/interval-hover.web.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/interval-hover.web.js +20 -0
- package/dist/src/components/roster/lanes/interval-hover.web.js.map +1 -0
- package/dist/src/components/roster/lanes/lane.d.ts +10 -0
- package/dist/src/components/roster/lanes/lane.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/lane.js +37 -0
- package/dist/src/components/roster/lanes/lane.js.map +1 -0
- package/dist/src/components/roster/lanes/parts/incomplete.d.ts +8 -0
- package/dist/src/components/roster/lanes/parts/incomplete.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/parts/incomplete.js +30 -0
- package/dist/src/components/roster/lanes/parts/incomplete.js.map +1 -0
- package/dist/src/components/roster/lanes/parts/lane-label.d.ts +3 -0
- package/dist/src/components/roster/lanes/parts/lane-label.d.ts.map +1 -0
- package/dist/src/components/roster/lanes/parts/lane-label.js +18 -0
- package/dist/src/components/roster/lanes/parts/lane-label.js.map +1 -0
- package/dist/src/components/roster/layout.d.ts +17 -0
- package/dist/src/components/roster/layout.d.ts.map +1 -0
- package/dist/src/components/roster/layout.js +24 -0
- package/dist/src/components/roster/layout.js.map +1 -0
- package/dist/src/components/roster/parts/body.d.ts +7 -0
- package/dist/src/components/roster/parts/body.d.ts.map +1 -0
- package/dist/src/components/roster/parts/body.js +29 -0
- package/dist/src/components/roster/parts/body.js.map +1 -0
- package/dist/src/components/roster/parts/corner.d.ts +2 -0
- package/dist/src/components/roster/parts/corner.d.ts.map +1 -0
- package/dist/src/components/roster/parts/corner.js +7 -0
- package/dist/src/components/roster/parts/corner.js.map +1 -0
- package/dist/src/components/roster/parts/empty.d.ts +2 -0
- package/dist/src/components/roster/parts/empty.d.ts.map +1 -0
- package/dist/src/components/roster/parts/empty.js +9 -0
- package/dist/src/components/roster/parts/empty.js.map +1 -0
- package/dist/src/components/roster/parts/grid.d.ts +3 -0
- package/dist/src/components/roster/parts/grid.d.ts.map +1 -0
- package/dist/src/components/roster/parts/grid.js +16 -0
- package/dist/src/components/roster/parts/grid.js.map +1 -0
- package/dist/src/components/roster/parts/header-cell.d.ts +5 -0
- package/dist/src/components/roster/parts/header-cell.d.ts.map +1 -0
- package/dist/src/components/roster/parts/header-cell.js +9 -0
- package/dist/src/components/roster/parts/header-cell.js.map +1 -0
- package/dist/src/components/roster/parts/header.d.ts +3 -0
- package/dist/src/components/roster/parts/header.d.ts.map +1 -0
- package/dist/src/components/roster/parts/header.js +13 -0
- package/dist/src/components/roster/parts/header.js.map +1 -0
- package/dist/src/components/roster/parts/lane-label-column.d.ts +3 -0
- package/dist/src/components/roster/parts/lane-label-column.d.ts.map +1 -0
- package/dist/src/components/roster/parts/lane-label-column.js +18 -0
- package/dist/src/components/roster/parts/lane-label-column.js.map +1 -0
- package/dist/src/components/roster/roster.types.d.ts +146 -0
- package/dist/src/components/roster/roster.types.d.ts.map +1 -0
- package/dist/src/components/roster/roster.types.js +3 -0
- package/dist/src/components/roster/roster.types.js.map +1 -0
- package/dist/src/components/roster/use-roster.d.ts +3 -0
- package/dist/src/components/roster/use-roster.d.ts.map +1 -0
- package/dist/src/components/roster/use-roster.js +106 -0
- package/dist/src/components/roster/use-roster.js.map +1 -0
- package/dist/src/components/roster/utils/body-content-key.d.ts +3 -0
- package/dist/src/components/roster/utils/body-content-key.d.ts.map +1 -0
- package/dist/src/components/roster/utils/body-content-key.js +29 -0
- package/dist/src/components/roster/utils/body-content-key.js.map +1 -0
- package/dist/src/components/roster/utils/ticks.d.ts +4 -0
- package/dist/src/components/roster/utils/ticks.d.ts.map +1 -0
- package/dist/src/components/roster/utils/ticks.js +60 -0
- package/dist/src/components/roster/utils/ticks.js.map +1 -0
- package/dist/src/components/schedule/days/day.d.ts +20 -0
- package/dist/src/components/schedule/days/day.d.ts.map +1 -0
- package/dist/src/components/schedule/days/day.js +26 -0
- package/dist/src/components/schedule/days/day.js.map +1 -0
- package/dist/src/components/schedule/days/header-layout.d.ts +9 -0
- package/dist/src/components/schedule/days/header-layout.d.ts.map +1 -0
- package/dist/src/components/schedule/days/header-layout.js +9 -0
- package/dist/src/components/schedule/days/header-layout.js.map +1 -0
- package/dist/src/components/schedule/days/layout.d.ts +18 -0
- package/dist/src/components/schedule/days/layout.d.ts.map +1 -0
- package/dist/src/components/schedule/days/layout.js +9 -0
- package/dist/src/components/schedule/days/layout.js.map +1 -0
- package/dist/src/components/schedule/days/parts/column.d.ts +3 -0
- package/dist/src/components/schedule/days/parts/column.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/column.js +33 -0
- package/dist/src/components/schedule/days/parts/column.js.map +1 -0
- package/dist/src/components/schedule/days/parts/day-header.d.ts +5 -0
- package/dist/src/components/schedule/days/parts/day-header.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/day-header.js +10 -0
- package/dist/src/components/schedule/days/parts/day-header.js.map +1 -0
- package/dist/src/components/schedule/days/parts/grid.d.ts +3 -0
- package/dist/src/components/schedule/days/parts/grid.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/grid.js +14 -0
- package/dist/src/components/schedule/days/parts/grid.js.map +1 -0
- package/dist/src/components/schedule/days/parts/now-line.d.ts +5 -0
- package/dist/src/components/schedule/days/parts/now-line.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/now-line.js +9 -0
- package/dist/src/components/schedule/days/parts/now-line.js.map +1 -0
- package/dist/src/components/schedule/days/parts/skipped-date.d.ts +4 -0
- package/dist/src/components/schedule/days/parts/skipped-date.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/skipped-date.js +17 -0
- package/dist/src/components/schedule/days/parts/skipped-date.js.map +1 -0
- package/dist/src/components/schedule/days/parts/transition.d.ts +3 -0
- package/dist/src/components/schedule/days/parts/transition.d.ts.map +1 -0
- package/dist/src/components/schedule/days/parts/transition.js +42 -0
- package/dist/src/components/schedule/days/parts/transition.js.map +1 -0
- package/dist/src/components/schedule/index.d.ts +3 -0
- package/dist/src/components/schedule/index.d.ts.map +1 -0
- package/dist/src/components/schedule/index.js +45 -0
- package/dist/src/components/schedule/index.js.map +1 -0
- package/dist/src/components/schedule/layout.d.ts +15 -0
- package/dist/src/components/schedule/layout.d.ts.map +1 -0
- package/dist/src/components/schedule/layout.js +10 -0
- package/dist/src/components/schedule/layout.js.map +1 -0
- package/dist/src/components/schedule/parts/gutter.d.ts +3 -0
- package/dist/src/components/schedule/parts/gutter.d.ts.map +1 -0
- package/dist/src/components/schedule/parts/gutter.js +9 -0
- package/dist/src/components/schedule/parts/gutter.js.map +1 -0
- package/dist/src/components/schedule/parts/incomplete.d.ts +6 -0
- package/dist/src/components/schedule/parts/incomplete.d.ts.map +1 -0
- package/dist/src/components/schedule/parts/incomplete.js +9 -0
- package/dist/src/components/schedule/parts/incomplete.js.map +1 -0
- package/dist/src/components/schedule/schedule.types.d.ts +109 -0
- package/dist/src/components/schedule/schedule.types.d.ts.map +1 -0
- package/dist/src/components/schedule/schedule.types.js +3 -0
- package/dist/src/components/schedule/schedule.types.js.map +1 -0
- package/dist/src/components/schedule/use-schedule-viewport.d.ts +7 -0
- package/dist/src/components/schedule/use-schedule-viewport.d.ts.map +1 -0
- package/dist/src/components/schedule/use-schedule-viewport.js +15 -0
- package/dist/src/components/schedule/use-schedule-viewport.js.map +1 -0
- package/dist/src/components/schedule/use-schedule.d.ts +3 -0
- package/dist/src/components/schedule/use-schedule.d.ts.map +1 -0
- package/dist/src/components/schedule/use-schedule.js +71 -0
- package/dist/src/components/schedule/use-schedule.js.map +1 -0
- package/dist/src/components/schedule/utils/days.d.ts +17 -0
- package/dist/src/components/schedule/utils/days.d.ts.map +1 -0
- package/dist/src/components/schedule/utils/days.js +49 -0
- package/dist/src/components/schedule/utils/days.js.map +1 -0
- package/dist/src/core/axis.d.ts +18 -0
- package/dist/src/core/axis.d.ts.map +1 -0
- package/dist/src/core/axis.js +58 -0
- package/dist/src/core/axis.js.map +1 -0
- package/dist/src/core/cache.d.ts +29 -0
- package/dist/src/core/cache.d.ts.map +1 -0
- package/dist/src/core/cache.js +33 -0
- package/dist/src/core/cache.js.map +1 -0
- package/dist/src/core/columns.d.ts +3 -0
- package/dist/src/core/columns.d.ts.map +1 -0
- package/dist/src/core/columns.js +45 -0
- package/dist/src/core/columns.js.map +1 -0
- package/dist/src/core/coverage.d.ts +3 -0
- package/dist/src/core/coverage.d.ts.map +1 -0
- package/dist/src/core/coverage.js +60 -0
- package/dist/src/core/coverage.js.map +1 -0
- package/dist/src/core/flag.d.ts +3 -0
- package/dist/src/core/flag.d.ts.map +1 -0
- package/dist/src/core/flag.js +17 -0
- package/dist/src/core/flag.js.map +1 -0
- package/dist/src/core/hash.d.ts +5 -0
- package/dist/src/core/hash.d.ts.map +1 -0
- package/dist/src/core/hash.js +29 -0
- package/dist/src/core/hash.js.map +1 -0
- package/dist/src/core/hit-test.d.ts +6 -0
- package/dist/src/core/hit-test.d.ts.map +1 -0
- package/dist/src/core/hit-test.js +23 -0
- package/dist/src/core/hit-test.js.map +1 -0
- package/dist/src/core/index.d.ts +12 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +30 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/layout.d.ts +3 -0
- package/dist/src/core/layout.d.ts.map +1 -0
- package/dist/src/core/layout.js +96 -0
- package/dist/src/core/layout.js.map +1 -0
- package/dist/src/core/order.d.ts +7 -0
- package/dist/src/core/order.d.ts.map +1 -0
- package/dist/src/core/order.js +12 -0
- package/dist/src/core/order.js.map +1 -0
- package/dist/src/core/scale.d.ts +9 -0
- package/dist/src/core/scale.d.ts.map +1 -0
- package/dist/src/core/scale.js +41 -0
- package/dist/src/core/scale.js.map +1 -0
- package/dist/src/core/snap.d.ts +10 -0
- package/dist/src/core/snap.d.ts.map +1 -0
- package/dist/src/core/snap.js +43 -0
- package/dist/src/core/snap.js.map +1 -0
- package/dist/src/core/spans.d.ts +3 -0
- package/dist/src/core/spans.d.ts.map +1 -0
- package/dist/src/core/spans.js +60 -0
- package/dist/src/core/spans.js.map +1 -0
- package/dist/src/core/types.d.ts +104 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +3 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/core/zone.d.ts +10 -0
- package/dist/src/core/zone.d.ts.map +1 -0
- package/dist/src/core/zone.js +103 -0
- package/dist/src/core/zone.js.map +1 -0
- package/dist/src/index.d.ts +27 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +63 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/nativewind/index.d.ts +61 -0
- package/dist/src/nativewind/index.d.ts.map +1 -0
- package/dist/src/nativewind/index.js +24 -0
- package/dist/src/nativewind/index.js.map +1 -0
- package/llms.txt +481 -0
- package/package.json +154 -8
- package/src/adapters/rrule/README.md +41 -0
- package/src/adapters/rrule/cache.ts +50 -0
- package/src/adapters/rrule/envelope.ts +7 -0
- package/src/adapters/rrule/expand.ts +105 -0
- package/src/adapters/rrule/hash.ts +13 -0
- package/src/adapters/rrule/index.ts +11 -0
- package/src/adapters/rrule/net.ts +30 -0
- package/src/adapters/rrule/occurrences.ts +288 -0
- package/src/adapters/rrule/types.ts +52 -0
- package/src/adapters/rrule/validate.ts +78 -0
- package/src/components/layers/README.md +11 -0
- package/src/components/layers/layers.types.ts +6 -0
- package/src/components/layers/parts/gap.tsx +5 -0
- package/src/components/layers/parts/interval.tsx +24 -0
- package/src/components/layers/utils/styles.ts +24 -0
- package/src/components/primitives/README.md +12 -0
- package/src/components/primitives/press-point.tsx +5 -0
- package/src/components/primitives/press-point.types.ts +5 -0
- package/src/components/primitives/press-point.web.tsx +19 -0
- package/src/components/primitives/region-style.ts +21 -0
- package/src/components/roster/README.md +18 -0
- package/src/components/roster/index.tsx +90 -0
- package/src/components/roster/lanes/interval-hover.tsx +5 -0
- package/src/components/roster/lanes/interval-hover.types.ts +11 -0
- package/src/components/roster/lanes/interval-hover.web.tsx +19 -0
- package/src/components/roster/lanes/lane.tsx +88 -0
- package/src/components/roster/lanes/parts/incomplete.tsx +44 -0
- package/src/components/roster/lanes/parts/lane-label.tsx +41 -0
- package/src/components/roster/layout.tsx +68 -0
- package/src/components/roster/parts/body.tsx +91 -0
- package/src/components/roster/parts/corner.tsx +3 -0
- package/src/components/roster/parts/empty.tsx +5 -0
- package/src/components/roster/parts/grid.tsx +26 -0
- package/src/components/roster/parts/header-cell.tsx +10 -0
- package/src/components/roster/parts/header.tsx +18 -0
- package/src/components/roster/parts/lane-label-column.tsx +31 -0
- package/src/components/roster/roster.types.ts +155 -0
- package/src/components/roster/use-roster.ts +133 -0
- package/src/components/roster/utils/body-content-key.ts +46 -0
- package/src/components/roster/utils/ticks.ts +62 -0
- package/src/components/schedule/README.md +18 -0
- package/src/components/schedule/days/day.tsx +76 -0
- package/src/components/schedule/days/header-layout.tsx +12 -0
- package/src/components/schedule/days/layout.tsx +38 -0
- package/src/components/schedule/days/parts/column.tsx +59 -0
- package/src/components/schedule/days/parts/day-header.tsx +18 -0
- package/src/components/schedule/days/parts/grid.tsx +21 -0
- package/src/components/schedule/days/parts/now-line.tsx +11 -0
- package/src/components/schedule/days/parts/skipped-date.tsx +22 -0
- package/src/components/schedule/days/parts/transition.tsx +70 -0
- package/src/components/schedule/index.tsx +109 -0
- package/src/components/schedule/layout.tsx +42 -0
- package/src/components/schedule/parts/gutter.tsx +16 -0
- package/src/components/schedule/parts/incomplete.tsx +13 -0
- package/src/components/schedule/schedule.types.ts +103 -0
- package/src/components/schedule/use-schedule-viewport.ts +13 -0
- package/src/components/schedule/use-schedule.ts +75 -0
- package/src/components/schedule/utils/days.ts +54 -0
- package/src/core/README.md +25 -0
- package/src/core/axis.ts +58 -0
- package/src/core/cache.ts +38 -0
- package/src/core/columns.ts +49 -0
- package/src/core/coverage.ts +56 -0
- package/src/core/flag.ts +14 -0
- package/src/core/hash.ts +28 -0
- package/src/core/hit-test.ts +27 -0
- package/src/core/index.ts +34 -0
- package/src/core/layout.ts +101 -0
- package/src/core/order.ts +18 -0
- package/src/core/scale.ts +45 -0
- package/src/core/snap.ts +52 -0
- package/src/core/spans.ts +58 -0
- package/src/core/types.ts +92 -0
- package/src/core/zone.ts +100 -0
- package/src/index.ts +49 -0
- package/src/nativewind/README.md +14 -0
- package/src/nativewind/index.ts +30 -0
- package/index.js +0 -4
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stylesFor = stylesFor;
|
|
4
|
+
const hash_1 = require("../../../core/hash");
|
|
5
|
+
const styles = new Map();
|
|
6
|
+
function stylesFor(layer) {
|
|
7
|
+
const key = (0, hash_1.structuralKey)([layer.id, layer.style]);
|
|
8
|
+
let result = styles.get(key);
|
|
9
|
+
if (!result) {
|
|
10
|
+
const normal = {
|
|
11
|
+
backgroundColor: layer.style.color,
|
|
12
|
+
opacity: layer.style.opacity ?? 1,
|
|
13
|
+
width: '100%',
|
|
14
|
+
height: '100%',
|
|
15
|
+
};
|
|
16
|
+
result = {
|
|
17
|
+
normal,
|
|
18
|
+
highlighted: { ...normal, backgroundColor: layer.style.highlightColor ?? layer.style.color },
|
|
19
|
+
};
|
|
20
|
+
styles.set(key, result);
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/components/layers/utils/styles.ts"],"names":[],"mappings":";;;AAEA,6CAAmD;AAEnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyD,CAAC;AAEhF,mBAA0B,KAAY;IACpC,MAAM,GAAG,GAAG,IAAA,oBAAa,EAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,GAAc;YACxB,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;YAClC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;YACjC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf,CAAC;QACF,MAAM,GAAG;YACP,MAAM;YACN,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;SAC7F,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-point.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/press-point.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEvE,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,eAAe,GAAG,UAAU,CAEvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-point.js","sourceRoot":"","sources":["../../../../src/components/primitives/press-point.tsx"],"names":[],"mappings":";;;AAEA,oBAA2B,EAAE,WAAW,EAAmB;IACzD,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,SAAmB,EAAE,CAAC,EAAE,WAAW,CAAC,SAAmB,EAAE,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type PressPointInput = {
|
|
2
|
+
nativeEvent: {
|
|
3
|
+
locationX?: number;
|
|
4
|
+
locationY?: number;
|
|
5
|
+
clientX?: number;
|
|
6
|
+
clientY?: number;
|
|
7
|
+
};
|
|
8
|
+
currentTarget?: unknown;
|
|
9
|
+
};
|
|
10
|
+
export type PressPoint = {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=press-point.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-point.types.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/press-point.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-point.types.js","sourceRoot":"","sources":["../../../../src/components/primitives/press-point.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-point.web.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/press-point.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEvE,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,eAAe,GAAG,UAAU,CAgBtF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pressPoint = pressPoint;
|
|
4
|
+
function pressPoint({ nativeEvent, currentTarget }) {
|
|
5
|
+
// React Native Web passes a DOM click, not a native responder event, to onPress.
|
|
6
|
+
const target = currentTarget;
|
|
7
|
+
const bounds = target.getBoundingClientRect();
|
|
8
|
+
return {
|
|
9
|
+
x: typeof nativeEvent.clientX === 'number'
|
|
10
|
+
? nativeEvent.clientX - bounds.left
|
|
11
|
+
: bounds.width / 2,
|
|
12
|
+
y: typeof nativeEvent.clientY === 'number'
|
|
13
|
+
? nativeEvent.clientY - bounds.top
|
|
14
|
+
: bounds.height / 2,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=press-point.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"press-point.web.js","sourceRoot":"","sources":["../../../../src/components/primitives/press-point.web.tsx"],"names":[],"mappings":";;;AAEA,oBAA2B,EAAE,WAAW,EAAE,aAAa,EAAmB;IACxE,iFAAiF;IACjF,MAAM,MAAM,GAAG,aAEd,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC9C,OAAO;QACL,CAAC,EACC,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;YACrC,CAAC,CAAC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI;YACnC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;QACtB,CAAC,EACC,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;YACrC,CAAC,CAAC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;YAClC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
/**
|
|
3
|
+
* Compose a chrome region's style. React Native Web renders object styles
|
|
4
|
+
* inline, and inline paint beats any class, so a class entry in the override
|
|
5
|
+
* (NativeWind's `$$css` marker) replaces the region's default paint entirely.
|
|
6
|
+
* Structure always applies; native style overrides simply merge last.
|
|
7
|
+
*/
|
|
8
|
+
export declare function regionStyle(structure: ViewStyle, paint: ViewStyle, override: StyleProp<ViewStyle>): StyleProp<ViewStyle>;
|
|
9
|
+
//# sourceMappingURL=region-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-style.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/region-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,GAC7B,SAAS,CAAC,SAAS,CAAC,CAEtB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.regionStyle = regionStyle;
|
|
4
|
+
/**
|
|
5
|
+
* Compose a chrome region's style. React Native Web renders object styles
|
|
6
|
+
* inline, and inline paint beats any class, so a class entry in the override
|
|
7
|
+
* (NativeWind's `$$css` marker) replaces the region's default paint entirely.
|
|
8
|
+
* Structure always applies; native style overrides simply merge last.
|
|
9
|
+
*/
|
|
10
|
+
function regionStyle(structure, paint, override) {
|
|
11
|
+
return [structure, hasClassEntry(override) ? null : paint, override];
|
|
12
|
+
}
|
|
13
|
+
function hasClassEntry(style) {
|
|
14
|
+
if (!style || typeof style !== 'object')
|
|
15
|
+
return false;
|
|
16
|
+
if (Array.isArray(style))
|
|
17
|
+
return style.some((entry) => hasClassEntry(entry));
|
|
18
|
+
return '$$css' in style;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=region-style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-style.js","sourceRoot":"","sources":["../../../../src/components/primitives/region-style.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,qBACE,SAAoB,EACpB,KAAgB,EAChB,QAA8B;IAE9B,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,OAAO,OAAO,IAAI,KAAK,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RosterProps } from './roster.types';
|
|
2
|
+
export declare function Roster(props: RosterProps): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,2WA2ExC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Roster = Roster;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const gap_1 = require("../layers/parts/gap");
|
|
6
|
+
const interval_1 = require("../layers/parts/interval");
|
|
7
|
+
const lane_label_1 = require("./lanes/parts/lane-label");
|
|
8
|
+
const layout_1 = require("./layout");
|
|
9
|
+
const body_1 = require("./parts/body");
|
|
10
|
+
const corner_1 = require("./parts/corner");
|
|
11
|
+
const empty_1 = require("./parts/empty");
|
|
12
|
+
const grid_1 = require("./parts/grid");
|
|
13
|
+
const header_1 = require("./parts/header");
|
|
14
|
+
const header_cell_1 = require("./parts/header-cell");
|
|
15
|
+
const lane_label_column_1 = require("./parts/lane-label-column");
|
|
16
|
+
const use_roster_1 = require("./use-roster");
|
|
17
|
+
function Roster(props) {
|
|
18
|
+
const { status, orderedLanes, laneState, window, geometryFor, projection, scroll, press, ticks, contentWidth, viewport, onLayout, } = (0, use_roster_1.useRoster)(props);
|
|
19
|
+
const { emptyZone = empty_1.RosterEmpty, cornerZone = corner_1.RosterCorner, headerZone = header_1.RosterHeader, laneLabelColumnZone = lane_label_column_1.RosterLaneLabelColumn, bodyZone = body_1.RosterBody, headerCellZone = header_cell_1.RosterHeaderCell, laneLabelZone = lane_label_1.RosterLaneLabel, intervalZone = interval_1.RosterInterval, gapZone = gap_1.RosterGap, gridZone = grid_1.RosterGrid, incompleteLabel = 'Availability may be incomplete', neverSetLabel = 'No availability set', } = props;
|
|
20
|
+
if (status === 'empty')
|
|
21
|
+
return emptyZone();
|
|
22
|
+
if (window.start === window.end)
|
|
23
|
+
return null;
|
|
24
|
+
return ((0, jsx_runtime_1.jsx)(layout_1.RosterLayout, { style: props.style, headerStyle: props.headerStyle, laneLabelColumnStyle: props.laneLabelColumnStyle, bodyStyle: props.bodyStyle, laneLabelWidth: props.laneLabelWidth, onLayout: onLayout, cornerZone: cornerZone(), headerZone: headerZone({ ticks, projection, scroll, contentWidth, headerCellZone }), laneLabelColumnZone: laneLabelColumnZone({
|
|
25
|
+
labels: orderedLanes.map((lane) => {
|
|
26
|
+
const state = laneState.get(lane.id) ?? { flag: 'none', complete: true };
|
|
27
|
+
return {
|
|
28
|
+
lane,
|
|
29
|
+
...state,
|
|
30
|
+
viewTimezone: projection.viewTimezone,
|
|
31
|
+
incompleteLabel,
|
|
32
|
+
neverSetLabel,
|
|
33
|
+
};
|
|
34
|
+
}),
|
|
35
|
+
projection,
|
|
36
|
+
scroll,
|
|
37
|
+
laneLabelZone,
|
|
38
|
+
}), bodyZone: bodyZone({
|
|
39
|
+
lanes: orderedLanes,
|
|
40
|
+
window,
|
|
41
|
+
geometryFor,
|
|
42
|
+
projection,
|
|
43
|
+
scroll,
|
|
44
|
+
press,
|
|
45
|
+
ticks,
|
|
46
|
+
contentWidth,
|
|
47
|
+
viewport,
|
|
48
|
+
intervalZone,
|
|
49
|
+
gapZone,
|
|
50
|
+
gridZone,
|
|
51
|
+
highlightSource: props.highlightSource,
|
|
52
|
+
onIntervalHover: props.onIntervalHover,
|
|
53
|
+
incompleteLabel,
|
|
54
|
+
}) }));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/roster/index.tsx"],"names":[],"mappings":";;;;AAAA,6CAAgD;AAChD,uDAA0D;AAC1D,yDAA2D;AAC3D,qCAAwC;AACxC,uCAA0C;AAC1C,2CAA8C;AAC9C,yCAA4C;AAC5C,uCAA0C;AAC1C,2CAA8C;AAC9C,qDAAuD;AACvD,iEAAkE;AAElE,6CAAyC;AAEzC,gBAAuB,KAAkB;IACvC,MAAM,EACJ,MAAM,EACN,YAAY,EACZ,SAAS,EACT,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,GAAG,IAAA,sBAAS,EAAC,KAAK,CAAC,CAAC;IACrB,MAAM,EACJ,SAAS,GAAG,mBAAW,EACvB,UAAU,GAAG,qBAAY,EACzB,UAAU,GAAG,qBAAY,EACzB,mBAAmB,GAAG,yCAAqB,EAC3C,QAAQ,GAAG,iBAAU,EACrB,cAAc,GAAG,8BAAgB,EACjC,aAAa,GAAG,4BAAe,EAC/B,YAAY,GAAG,yBAAc,EAC7B,OAAO,GAAG,eAAS,EACnB,QAAQ,GAAG,iBAAU,EACrB,eAAe,GAAG,gCAAgC,EAClD,aAAa,GAAG,qBAAqB,GACtC,GAAG,KAAK,CAAC;IACV,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,SAAS,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,CACL,uBAAC,qBAAY,IACX,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAChD,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EAAE,EACxB,UAAU,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,EACnF,mBAAmB,EAAE,mBAAmB,CAAC;YACvC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzE,OAAO;oBACL,IAAI;oBACJ,GAAG,KAAK;oBACR,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,eAAe;oBACf,aAAa;iBACd,CAAC;YACJ,CAAC,CAAC;YACF,UAAU;YACV,MAAM;YACN,aAAa;SACd,CAAC,EACF,QAAQ,EAAE,QAAQ,CAAC;YACjB,KAAK,EAAE,YAAY;YACnB,MAAM;YACN,WAAW;YACX,UAAU;YACV,MAAM;YACN,KAAK;YACL,KAAK;YACL,YAAY;YACZ,QAAQ;YACR,YAAY;YACZ,OAAO;YACP,QAAQ;YACR,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,eAAe;SAChB,CAAC,GACF,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-hover.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/interval-hover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAErF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAEjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-hover.js","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/interval-hover.tsx"],"names":[],"mappings":";;;AAEA,4BAAmC,MAA0B;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Lane, LaneGeometry, Rect } from '../../../core';
|
|
2
|
+
import type { PressPointInput } from '../../primitives/press-point.types';
|
|
3
|
+
export type IntervalHoverInput = {
|
|
4
|
+
lane: Lane;
|
|
5
|
+
geometry: LaneGeometry;
|
|
6
|
+
onIntervalHover?: (rect: Rect, lane: Lane) => void;
|
|
7
|
+
};
|
|
8
|
+
export type IntervalHoverProps = {
|
|
9
|
+
onPointerMove?: (input: PressPointInput & {
|
|
10
|
+
nativeEvent: {
|
|
11
|
+
pointerType?: string;
|
|
12
|
+
};
|
|
13
|
+
}) => void;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=interval-hover.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-hover.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/interval-hover.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACpD,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,WAAW,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-hover.types.js","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/interval-hover.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-hover.web.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/interval-hover.web.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAErF,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,eAAe,GAChB,EAAE,kBAAkB,GAAG,kBAAkB,CAUzC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.intervalHoverProps = intervalHoverProps;
|
|
4
|
+
const hit_test_1 = require("../../../core/hit-test");
|
|
5
|
+
const press_point_web_1 = require("../../primitives/press-point.web");
|
|
6
|
+
function intervalHoverProps({ lane, geometry, onIntervalHover, }) {
|
|
7
|
+
if (!onIntervalHover)
|
|
8
|
+
return {};
|
|
9
|
+
return {
|
|
10
|
+
onPointerMove(input) {
|
|
11
|
+
if (input.nativeEvent.pointerType === 'touch')
|
|
12
|
+
return;
|
|
13
|
+
const { x, y } = (0, press_point_web_1.pressPoint)(input);
|
|
14
|
+
const hit = (0, hit_test_1.hitTest)(lane, geometry, x, y);
|
|
15
|
+
if (hit?.kind === 'interval')
|
|
16
|
+
onIntervalHover(hit.rect, lane);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=interval-hover.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interval-hover.web.js","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/interval-hover.web.tsx"],"names":[],"mappings":";;;AAAA,qDAAiD;AACjD,sEAA8D;AAG9D,4BAAmC,EACjC,IAAI,EACJ,QAAQ,EACR,eAAe,GACI;IACnB,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO;QACL,aAAa,CAAC,KAAK;YACjB,IAAI,KAAK,CAAC,WAAW,CAAC,WAAW,KAAK,OAAO;gBAAE,OAAO;YACtD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAA,4BAAU,EAAC,KAAK,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,IAAA,kBAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,GAAG,EAAE,IAAI,KAAK,UAAU;gBAAE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Lane, LaneGeometry } from '../../../core';
|
|
2
|
+
import type { BodyInput } from '../roster.types';
|
|
3
|
+
export type LaneRowProps = Pick<BodyInput, 'press' | 'intervalZone' | 'gapZone' | 'highlightSource' | 'onIntervalHover' | 'incompleteLabel'> & {
|
|
4
|
+
lane: Lane;
|
|
5
|
+
geometry: LaneGeometry;
|
|
6
|
+
width: number;
|
|
7
|
+
rowHeight: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function LaneRow({ lane, geometry, width, rowHeight, press, intervalZone, gapZone, highlightSource, onIntervalHover, incompleteLabel, }: LaneRowProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=lane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/lane.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,SAAS,EACT,OAAO,GAAG,cAAc,GAAG,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,CACjG,GAAG;IACF,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,YAAY,EACZ,OAAO,EACP,eAAe,EACf,eAAe,EACf,eAAkD,GACnD,EAAE,YAAY,2CA0Dd"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LaneRow = LaneRow;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_1 = require("react-native");
|
|
7
|
+
const press_point_1 = require("../../primitives/press-point");
|
|
8
|
+
const interval_hover_1 = require("./interval-hover");
|
|
9
|
+
const incomplete_1 = require("./parts/incomplete");
|
|
10
|
+
function LaneRow({ lane, geometry, width, rowHeight, press, intervalZone, gapZone, highlightSource, onIntervalHover, incompleteLabel = 'Availability may be incomplete', }) {
|
|
11
|
+
const layers = [...lane.layers].sort((a, b) => a.z - b.z);
|
|
12
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.Pressable, { ...(0, interval_hover_1.intervalHoverProps)({ lane, geometry, onIntervalHover }), testID: `roster-lane-${lane.id}`, accessibilityLabel: lane.label, onPress: (input) => {
|
|
13
|
+
const point = (0, press_point_1.pressPoint)(input);
|
|
14
|
+
press(lane, point.x, point.y);
|
|
15
|
+
}, style: { width, height: rowHeight }, children: [(0, jsx_runtime_1.jsx)(incomplete_1.RosterIncomplete, { lane: lane, geometry: geometry, width: width, label: incompleteLabel }), layers.map((layer) => ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [geometry.rects
|
|
16
|
+
.filter((rect) => rect.layerId === layer.id)
|
|
17
|
+
.map((rect) => ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: intervalZone({
|
|
18
|
+
rect,
|
|
19
|
+
layer,
|
|
20
|
+
lane,
|
|
21
|
+
highlighted: rect.sources.some((source) => source.kind === highlightSource?.kind && source.id === highlightSource.id),
|
|
22
|
+
}) }, `interval-${rect.x}:${rect.width}`))), geometry.gapRects
|
|
23
|
+
.filter((rect) => rect.layerId === layer.id)
|
|
24
|
+
.map((rect) => ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityLabel: `${lane.label}: removed time`, onPress: (input) => {
|
|
25
|
+
input.stopPropagation();
|
|
26
|
+
const point = (0, press_point_1.pressPoint)(input);
|
|
27
|
+
press(lane, rect.x + point.x, rect.y + point.y);
|
|
28
|
+
}, style: {
|
|
29
|
+
position: 'absolute',
|
|
30
|
+
left: rect.x,
|
|
31
|
+
top: rect.y,
|
|
32
|
+
width: rect.width,
|
|
33
|
+
height: rect.height,
|
|
34
|
+
zIndex: rect.z,
|
|
35
|
+
}, children: gapZone({ rect, layer, lane }) }, `gap-${rect.x}:${rect.width}`)))] }, layer.id)))] }));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=lane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane.js","sourceRoot":"","sources":["../../../../../src/components/roster/lanes/lane.tsx"],"names":[],"mappings":";;;;AAAA,iCAAiC;AACjC,+CAAyC;AAEzC,8DAA0D;AAE1D,qDAAsD;AACtD,mDAAsD;AAYtD,iBAAwB,EACtB,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,YAAY,EACZ,OAAO,EACP,eAAe,EACf,eAAe,EACf,eAAe,GAAG,gCAAgC,GACrC;IACb,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,CACL,wBAAC,wBAAS,OACJ,IAAA,mCAAkB,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAC3D,MAAM,EAAE,eAAe,IAAI,CAAC,EAAE,EAAE,EAChC,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAEnC,uBAAC,6BAAgB,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,GAAI,EACzF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,wBAAC,gBAAQ,eACN,QAAQ,CAAC,KAAK;yBACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;yBAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACb,uBAAC,gBAAQ,cACN,YAAY,CAAC;4BACZ,IAAI;4BACJ,KAAK;4BACL,IAAI;4BACJ,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAC5B,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAC5E;yBACF,CAAC,IATW,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAUtC,CACZ,CAAC,EACH,QAAQ,CAAC,QAAQ;yBACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;yBAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACb,uBAAC,wBAAS,IAER,kBAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,gBAAgB,EACjD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4BACjB,KAAK,CAAC,eAAe,EAAE,CAAC;4BACxB,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,CAAC;4BAChC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAClD,CAAC,EACD,KAAK,EAAE;4BACL,QAAQ,EAAE,UAAU;4BACpB,IAAI,EAAE,IAAI,CAAC,CAAC;4BACZ,GAAG,EAAE,IAAI,CAAC,CAAC;4BACX,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,MAAM,EAAE,IAAI,CAAC,CAAC;yBACf,YAEA,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAhB1B,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAiBxB,CACb,CAAC,KAtCS,KAAK,CAAC,EAAE,CAuCZ,CACZ,CAAC,IACQ,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Lane, LaneGeometry } from '../../../../core';
|
|
2
|
+
export declare function RosterIncomplete({ lane, geometry, width, label, }: {
|
|
3
|
+
lane: Lane;
|
|
4
|
+
geometry: LaneGeometry;
|
|
5
|
+
width: number;
|
|
6
|
+
label: string;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=incomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incomplete.d.ts","sourceRoot":"","sources":["../../../../../../src/components/roster/lanes/parts/incomplete.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,GACN,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,kDA8BA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RosterIncomplete = RosterIncomplete;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_native_1 = require("react-native");
|
|
6
|
+
function RosterIncomplete({ lane, geometry, width, label, }) {
|
|
7
|
+
if (lane.complete !== false)
|
|
8
|
+
return null;
|
|
9
|
+
// Choose the first empty span; the notice never covers an interval.
|
|
10
|
+
let left = 0;
|
|
11
|
+
let right = width;
|
|
12
|
+
for (const rect of [...geometry.rects].sort((a, b) => a.x - b.x)) {
|
|
13
|
+
if (rect.x > left) {
|
|
14
|
+
right = rect.x;
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
left = Math.max(left, rect.x + rect.width);
|
|
18
|
+
}
|
|
19
|
+
if (left >= right)
|
|
20
|
+
return null;
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.Text, { testID: `roster-incomplete-${lane.id}`, pointerEvents: "none", numberOfLines: 1, style: {
|
|
22
|
+
position: 'absolute',
|
|
23
|
+
left,
|
|
24
|
+
width: right - left,
|
|
25
|
+
top: 4,
|
|
26
|
+
color: '#64748b',
|
|
27
|
+
fontSize: 12,
|
|
28
|
+
}, children: label }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=incomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incomplete.js","sourceRoot":"","sources":["../../../../../../src/components/roster/lanes/parts/incomplete.tsx"],"names":[],"mappings":";;;;AAAA,+CAAoC;AAGpC,0BAAiC,EAC/B,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,GAMN;IACC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACzC,oEAAoE;IACpE,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAClB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;YACf,MAAM;QACR,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,CACL,uBAAC,mBAAI,IACH,MAAM,EAAE,qBAAqB,IAAI,CAAC,EAAE,EAAE,EACtC,aAAa,EAAC,MAAM,EACpB,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,IAAI;YACJ,KAAK,EAAE,KAAK,GAAG,IAAI;YACnB,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,EAAE;SACb,YAEA,KAAK,GACD,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-label.d.ts","sourceRoot":"","sources":["../../../../../../src/components/roster/lanes/parts/lane-label.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,aAAa,GACd,EAAE,cAAc,2CA8BhB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RosterLaneLabel = RosterLaneLabel;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_native_1 = require("react-native");
|
|
6
|
+
function RosterLaneLabel({ lane, flag, complete, viewTimezone, incompleteLabel, neverSetLabel, }) {
|
|
7
|
+
const zone = lane.timezone && lane.timezone !== viewTimezone ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { fontSize: 10, color: '#64748b' }, children: lane.timezone })) : null;
|
|
8
|
+
const flagText = flag === 'never-set' ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { fontSize: 10, color: '#9a3412' }, children: neverSetLabel })) : null;
|
|
9
|
+
const completeness = complete ? null : ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { fontSize: 10, color: '#9a3412' }, children: incompleteLabel }));
|
|
10
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: {
|
|
11
|
+
flex: 1,
|
|
12
|
+
justifyContent: 'center',
|
|
13
|
+
paddingHorizontal: 8,
|
|
14
|
+
borderBottomWidth: 1,
|
|
15
|
+
borderBottomColor: '#e2e8f0',
|
|
16
|
+
}, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { numberOfLines: 1, style: { color: '#0f172a', fontSize: 12 }, children: lane.label }), zone, flagText, completeness] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=lane-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-label.js","sourceRoot":"","sources":["../../../../../../src/components/roster/lanes/parts/lane-label.tsx"],"names":[],"mappings":";;;;AAAA,+CAA0C;AAG1C,yBAAgC,EAC9B,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,aAAa,GACE;IACf,MAAM,IAAI,GACR,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAChD,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,IAAI,CAAC,QAAQ,GAAQ,CACxE,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,QAAQ,GACZ,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CACrB,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,aAAa,GAAQ,CACxE,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrC,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAG,eAAe,GAAQ,CAC1E,CAAC;IACF,OAAO,CACL,wBAAC,mBAAI,IACH,KAAK,EAAE;YACL,IAAI,EAAE,CAAC;YACP,cAAc,EAAE,QAAQ;YACxB,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,SAAS;SAC7B,aAED,uBAAC,mBAAI,IAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAC9D,IAAI,CAAC,KAAK,GACN,EACN,IAAI,EACJ,QAAQ,EACR,YAAY,IACR,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { LayoutChangeEvent } from 'react-native';
|
|
3
|
+
import type { RosterStyleProps } from './roster.types';
|
|
4
|
+
type RosterLayoutProps = Omit<RosterStyleProps, `${string}ClassName` | 'className'> & {
|
|
5
|
+
/** Cell above the lane labels, beside the header. */
|
|
6
|
+
cornerZone: ReactNode;
|
|
7
|
+
/** Frozen tick row; the layout clips translated header content. */
|
|
8
|
+
headerZone: ReactNode;
|
|
9
|
+
/** Frozen lane labels; the layout supplies the label column and clips vertical translation. */
|
|
10
|
+
laneLabelColumnZone: ReactNode;
|
|
11
|
+
/** Virtualized body with its horizontal scroller; fills the measured viewport. */
|
|
12
|
+
bodyZone: ReactNode;
|
|
13
|
+
onLayout: (input: LayoutChangeEvent) => void;
|
|
14
|
+
};
|
|
15
|
+
export declare function RosterLayout({ cornerZone, headerZone, laneLabelColumnZone, bodyZone, onLayout, style, headerStyle, laneLabelColumnStyle, bodyStyle, laneLabelWidth, }: RosterLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/components/roster/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,KAAK,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG;IACpF,qDAAqD;IACrD,UAAU,EAAE,SAAS,CAAC;IACtB,mEAAmE;IACnE,UAAU,EAAE,SAAS,CAAC;IACtB,+FAA+F;IAC/F,mBAAmB,EAAE,SAAS,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,cAAoB,GACrB,EAAE,iBAAiB,2CAuBnB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RosterLayout = RosterLayout;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_native_1 = require("react-native");
|
|
6
|
+
const region_style_1 = require("../primitives/region-style");
|
|
7
|
+
function RosterLayout({ cornerZone, headerZone, laneLabelColumnZone, bodyZone, onLayout, style, headerStyle, laneLabelColumnStyle, bodyStyle, laneLabelWidth = 180, }) {
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: (0, region_style_1.regionStyle)(structure.root, paint.root, style), children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: (0, region_style_1.regionStyle)(structure.header, paint.header, headerStyle), children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: { width: laneLabelWidth }, children: cornerZone }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: structure.headerStrip, children: headerZone })] }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: structure.content, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: (0, region_style_1.regionStyle)({ ...structure.labels, width: laneLabelWidth }, paint.labels, laneLabelColumnStyle), children: laneLabelColumnZone }), (0, jsx_runtime_1.jsx)(react_native_1.View, { onLayout: onLayout, style: (0, region_style_1.regionStyle)(structure.body, {}, bodyStyle), children: bodyZone })] })] }));
|
|
9
|
+
}
|
|
10
|
+
const structure = {
|
|
11
|
+
root: { flex: 1, minHeight: 0, overflow: 'hidden' },
|
|
12
|
+
header: { flexDirection: 'row', height: 40, overflow: 'hidden' },
|
|
13
|
+
headerStrip: { flex: 1, minWidth: 0, overflow: 'hidden' },
|
|
14
|
+
content: { flex: 1, minHeight: 0, flexDirection: 'row' },
|
|
15
|
+
labels: { overflow: 'hidden' },
|
|
16
|
+
body: { flex: 1, minWidth: 0, overflow: 'hidden' },
|
|
17
|
+
};
|
|
18
|
+
// Paint is what a class replaces; see regionStyle.
|
|
19
|
+
const paint = {
|
|
20
|
+
root: { backgroundColor: '#fff' },
|
|
21
|
+
header: { borderBottomWidth: 1, borderBottomColor: '#cbd5e1' },
|
|
22
|
+
labels: { borderRightWidth: 1, borderRightColor: '#cbd5e1' },
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/components/roster/layout.tsx"],"names":[],"mappings":";;;;AAEA,+CAAoC;AACpC,6DAAyD;AAezD,sBAA6B,EAC3B,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,cAAc,GAAG,GAAG,GACF;IAClB,OAAO,CACL,wBAAC,mBAAI,IAAC,KAAK,EAAE,IAAA,0BAAW,EAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,aACzD,wBAAC,mBAAI,IAAC,KAAK,EAAE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,aACnE,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,YAAG,UAAU,GAAQ,EAC3D,uBAAC,mBAAI,IAAC,KAAK,EAAE,SAAS,CAAC,WAAW,YAAG,UAAU,GAAQ,IAClD,EACP,wBAAC,mBAAI,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,aAC5B,uBAAC,mBAAI,IACH,KAAK,EAAE,IAAA,0BAAW,EAChB,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAC9C,KAAK,CAAC,MAAM,EACZ,oBAAoB,CACrB,YAEA,mBAAmB,GACf,EACP,uBAAC,mBAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAA,0BAAW,EAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,YACxE,QAAQ,GACJ,IACF,IACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACnD,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAChE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACzD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;IACxD,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;CAC1C,CAAC;AACX,mDAAmD;AACnD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE;IACjC,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE;IAC9D,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE;CACpD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ProfilerOnRenderCallback } from 'react';
|
|
2
|
+
import type { BodyInput } from '../roster.types';
|
|
3
|
+
export declare function RosterBody({ lanes, geometryFor, projection, scroll, press, ticks, contentWidth, viewport, window, intervalZone, gapZone, gridZone, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }: BodyInput & {
|
|
4
|
+
/** Optional per-lane commit observer; used by the development gallery's Profiler gate. */
|
|
5
|
+
onRowRender?: ProfilerOnRenderCallback;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
//# sourceMappingURL=body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GACZ,EAAE,SAAS,GAAG;IACb,0FAA0F;IAC1F,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,kDA+DA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RosterBody = RosterBody;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const list_1 = require("@legendapp/list");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const react_native_1 = require("react-native");
|
|
8
|
+
const lane_1 = require("../lanes/lane");
|
|
9
|
+
const body_content_key_1 = require("../utils/body-content-key");
|
|
10
|
+
function RosterBody({ lanes, geometryFor, projection, scroll, press, ticks, contentWidth, viewport, window, intervalZone, gapZone, gridZone, highlightSource, onIntervalHover, incompleteLabel, onRowRender, }) {
|
|
11
|
+
// LegendList requires a measured viewport and does not support static rendering.
|
|
12
|
+
if (viewport.width <= 0 || viewport.height <= 0)
|
|
13
|
+
return null;
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { testID: "roster-horizontal-scroll", ref: scroll.bodyRef, 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({ ticks, contentWidth }), (0, jsx_runtime_1.jsx)(list_1.LegendList, { testID: "roster-vertical-scroll", data: lanes, extraData: (0, body_content_key_1.bodyContentKey)({
|
|
15
|
+
window,
|
|
16
|
+
projection,
|
|
17
|
+
highlightSource,
|
|
18
|
+
intervalZone,
|
|
19
|
+
gapZone,
|
|
20
|
+
onIntervalHover,
|
|
21
|
+
incompleteLabel,
|
|
22
|
+
}), keyExtractor: (lane) => lane.id, estimatedListSize: { width: contentWidth, height: viewport.height }, estimatedItemSize: projection.rowHeight, getFixedItemSize: () => projection.rowHeight, drawDistance: 0, recycleItems: false, maintainVisibleContentPosition: false, onScroll: scroll.onVerticalScroll, scrollEventThrottle: 16, style: { flex: 1 }, renderItem: ({ item }) => {
|
|
23
|
+
const row = ((0, jsx_runtime_1.jsx)(lane_1.LaneRow, { lane: item, geometry: geometryFor(item), width: contentWidth, rowHeight: projection.rowHeight, press: press, intervalZone: intervalZone, gapZone: gapZone, highlightSource: highlightSource, onIntervalHover: onIntervalHover, incompleteLabel: incompleteLabel }));
|
|
24
|
+
if (onRowRender)
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Profiler, { id: item.id, onRender: onRowRender, children: row }));
|
|
26
|
+
return row;
|
|
27
|
+
} })] }) }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/body.tsx"],"names":[],"mappings":";;;;AAAA,0CAA6C;AAC7C,iCAAgE;AAChE,+CAAgD;AAChD,wCAAwC;AAExC,gEAA2D;AAE3D,oBAA2B,EACzB,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,EACf,WAAW,GAIZ;IACC,iFAAiF;IACjF,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,CACL,uBAAC,yBAAU,IACT,MAAM,EAAC,0BAA0B,EACjC,GAAG,EAAE,MAAM,CAAC,OAAO,EACnB,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,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAClC,uBAAC,iBAAU,IACT,MAAM,EAAC,wBAAwB,EAC/B,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,IAAA,iCAAc,EAAC;wBACxB,MAAM;wBACN,UAAU;wBACV,eAAe;wBACf,YAAY;wBACZ,OAAO;wBACP,eAAe;wBACf,eAAe;qBAChB,CAAC,EACF,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAC/B,iBAAiB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EACnE,iBAAiB,EAAE,UAAU,CAAC,SAAS,EACvC,gBAAgB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAC5C,YAAY,EAAE,CAAC,EACf,YAAY,EAAE,KAAK,EACnB,8BAA8B,EAAE,KAAK,EACrC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EACjC,mBAAmB,EAAE,EAAE,EACvB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAClB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;wBACvB,MAAM,GAAG,GAAG,CACV,uBAAC,cAAO,IACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,EAC3B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,GAChC,CACH,CAAC;wBACF,IAAI,WAAW;4BACb,OAAO,CACL,uBAAC,gBAAQ,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,YACzC,GAAG,GACK,CACZ,CAAC;wBACJ,OAAO,GAAG,CAAC;oBACb,CAAC,GACD,IACG,GACI,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corner.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/corner.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,SAE3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corner.js","sourceRoot":"","sources":["../../../../../src/components/roster/parts/corner.tsx"],"names":[],"mappings":";;;AAAA;IACE,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../../../../src/components/roster/parts/empty.tsx"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,4CAE1B"}
|