react-timelane 1.2.3 → 1.2.4

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 CHANGED
@@ -40,7 +40,7 @@ import type Allocation from "../models/Allocation";
40
40
  import type Resource from "../models/Resource";
41
41
  import AllocationComponent from "./AllocationComponent";
42
42
 
43
- import { Timelane as TL } from "react-timelane";
43
+ import { Timelane } from "react-timelane";
44
44
 
45
45
  interface MyTimelaneProps {
46
46
  resources: Resource[];
@@ -86,8 +86,8 @@ function MyTimelane({
86
86
  }
87
87
 
88
88
  return (
89
- <TL.Container>
90
- <TL.Header
89
+ <Timelane>
90
+ <Timelane.Header
91
91
  onDayClick={({ day }) => {
92
92
  console.log("day clicked", day);
93
93
  }}
@@ -98,16 +98,17 @@ function MyTimelane({
98
98
  console.log("week clicked", firstDay);
99
99
  }}
100
100
  />
101
- <TL.Body
101
+ <Timelane.Body
102
102
  onSelect={(selection) => {
103
103
  setSelection(selection);
104
104
  }}
105
105
  >
106
- {lanes.map((lane) => (
107
- <TL.Lane
108
- key={lane.id}
109
- lane={lane}
110
- items={items.filter((item) => item.laneId === lane.id)}
106
+ {lanes.map(({id, capacity}) => (
107
+ <Timelane.Lane
108
+ key={id}
109
+ id={id}
110
+ capacity={capacity}
111
+ items={items.filter((item) => item.laneId === id)}
111
112
  onItemUpdate={handleItemUpdate}
112
113
  renderItem={(item, isDragged) => (
113
114
  <AllocationComponent
@@ -118,14 +119,14 @@ function MyTimelane({
118
119
  )}
119
120
  />
120
121
  ))}
121
- </TL.Body>
122
- <TL.Background />
123
- <TL.Aside
122
+ </Timelane.Body>
123
+ <Timelane.Background />
124
+ <Timelane.Aside
124
125
  lanes={lanes}
125
126
  renderLaneHeader={(lane) => <div>{lane.id}</div>}
126
127
  />
127
- <TL.Layout.Corner />
128
- </TL.Container>
128
+ <Timelane.Layout.Corner />
129
+ </Timelane.Container>
129
130
  );
130
131
  }
131
132
  ```
@@ -1,7 +1,7 @@
1
1
  import { MouseEvent, ReactElement } from 'react';
2
2
  import { Lane } from '../../types';
3
- export interface TimelaneAsideProps {
4
- lanes: Lane[];
3
+ export interface TimelaneAsideProps<T = unknown> {
4
+ lanes: Lane<T>[];
5
5
  /**
6
6
  * the width in px
7
7
  */
@@ -10,15 +10,15 @@ export interface TimelaneAsideProps {
10
10
  /**
11
11
  * deprecated
12
12
  */
13
- focusedLane?: Lane | null;
13
+ focusedLane?: Lane<T> | null;
14
14
  /**
15
15
  * deprecated
16
16
  */
17
- setFocusedLane?: (lane: Lane | null) => void;
18
- onLaneHeaderClick?: (lane: Lane, e: MouseEvent) => void;
19
- onLaneHeaderDoubleClick?: (lane: Lane, e: MouseEvent) => void;
20
- onLaneHeaderContextMenu?: (lane: Lane, e: MouseEvent) => void;
21
- renderLaneHeader?: (lane: Lane) => ReactElement;
17
+ setFocusedLane?: (lane: Lane<T> | null) => void;
18
+ onLaneHeaderClick?: (lane: Lane<T>, e: MouseEvent) => void;
19
+ onLaneHeaderDoubleClick?: (lane: Lane<T>, e: MouseEvent) => void;
20
+ onLaneHeaderContextMenu?: (lane: Lane<T>, e: MouseEvent) => void;
21
+ renderLaneHeader?: (lane: Lane<T>) => ReactElement;
22
22
  }
23
23
  /**
24
24
  * `<TimelaneAside>` renders lane headers. The lane header height is determined
@@ -27,4 +27,4 @@ export interface TimelaneAsideProps {
27
27
  *
28
28
  * It must be a child component of `<Timelane>`.
29
29
  */
30
- export declare function TimelaneAside({ lanes, width, side, focusedLane, setFocusedLane, onLaneHeaderClick, onLaneHeaderDoubleClick, onLaneHeaderContextMenu, renderLaneHeader, }: TimelaneAsideProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function TimelaneAside<T = unknown>({ lanes, width, side, focusedLane, setFocusedLane, onLaneHeaderClick, onLaneHeaderDoubleClick, onLaneHeaderContextMenu, renderLaneHeader, }: TimelaneAsideProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { Item, Position, Lane, TimelaneSettings } from '../../types';
3
- interface TimelaneItemProps<T> {
3
+ interface TimelaneItemProps<T = unknown> {
4
4
  item: Item<T>;
5
5
  lane: Lane;
6
6
  settings: TimelaneSettings;
@@ -1,6 +1,6 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { Item, Pixels, Lane, TimeRange } from '../../types';
3
- interface AvailableSpaceIndicatorProps<T> {
3
+ interface AvailableSpaceIndicatorProps<T = unknown> {
4
4
  pixels: Pixels;
5
5
  range: TimeRange;
6
6
  lane: Lane;
@@ -1,6 +1,6 @@
1
1
  import { MouseEvent, ReactElement } from 'react';
2
2
  import { AvailableSpace, Item, LaneId } from '../../types';
3
- export interface TimelaneLaneProps<T> {
3
+ export interface TimelaneLaneProps<T = unknown> {
4
4
  id: LaneId;
5
5
  capacity?: number;
6
6
  items?: Item<T>[];
@@ -11,7 +11,7 @@ export interface TimelaneLaneProps<T> {
11
11
  onDoubleClick?: (when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
12
12
  onContextMenu?: (when: Date, e: MouseEvent) => void;
13
13
  renderItem?: (item: Item<T>, isDragged: boolean) => ReactElement;
14
- onResizeStart?: (data: T) => void;
14
+ onResizeStart?: (data?: T) => void;
15
15
  }
16
16
  /**
17
17
  * `<TimelaneLane>` (or `<Timelane.Lane>`) is a container for items. It takes care of
@@ -1,6 +1,6 @@
1
1
  import { ItemId } from './ItemId';
2
2
  import { LaneId } from './LaneId';
3
- export type Item<T = void> = {
3
+ export type Item<T = unknown> = {
4
4
  id: ItemId;
5
5
  laneId: LaneId;
6
6
  start: Date;
@@ -1,5 +1,6 @@
1
1
  import { LaneId } from './LaneId';
2
- export interface Lane {
2
+ export interface Lane<T = unknown> {
3
3
  id: LaneId;
4
4
  capacity: number;
5
+ payload?: T;
5
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-timelane",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite",