react-timelane 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/components/Timelane.d.ts +4 -2
  2. package/dist/components/TimelaneAside.d.ts +8 -8
  3. package/dist/components/TimelaneBodyInner.d.ts +8 -8
  4. package/dist/components/{core/CoreItem → TimelaneItem}/DragResizeComponent.d.ts +2 -2
  5. package/dist/components/TimelaneItem/TimelaneItem.d.ts +14 -0
  6. package/dist/components/{core/CoreSwimlane → TimelaneLane}/AvailableSpaceIndicator.d.ts +3 -3
  7. package/dist/components/{core/CoreSwimlane → TimelaneLane}/DropTarget.d.ts +1 -1
  8. package/dist/components/{core/CoreSwimlane → TimelaneLane}/OverlapIndicator.d.ts +1 -1
  9. package/dist/components/{core/CoreSwimlane/CoreSwimlane.d.ts → TimelaneLane/TimelaneLane.d.ts} +7 -7
  10. package/dist/components/TimelaneSettingsContext.d.ts +1 -1
  11. package/dist/components/TimelaneWrapper.d.ts +2 -2
  12. package/dist/components/utils.d.ts +27 -0
  13. package/dist/hooks/useScroll.d.ts +3 -3
  14. package/dist/index.d.ts +3 -4
  15. package/dist/react-timelane.js +338 -342
  16. package/dist/types/Item.d.ts +12 -0
  17. package/dist/types/Lane.d.ts +5 -0
  18. package/dist/types/LaneId.d.ts +1 -0
  19. package/dist/types/index.d.ts +3 -3
  20. package/package.json +1 -1
  21. package/dist/components/core/CoreItem/CoreItemComponent.d.ts +0 -14
  22. package/dist/components/core/CoreSwimlane/utils.d.ts +0 -13
  23. package/dist/components/core/utils.d.ts +0 -15
  24. package/dist/types/CoreItem.d.ts +0 -12
  25. package/dist/types/SwimlaneId.d.ts +0 -1
  26. package/dist/types/SwimlaneT.d.ts +0 -5
  27. /package/dist/components/{core/CoreSwimlane → TimelaneLane}/DropPreview.d.ts +0 -0
  28. /package/dist/components/{layout → TimelaneLayout}/TimelaneLayout.d.ts +0 -0
@@ -1,5 +1,7 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { CoreSwimlane, TimelaneBody, TimelaneLayout } from '..';
2
+ import { TimelaneLane } from './TimelaneLane/TimelaneLane';
3
+ import { TimelaneBody } from './TimelaneBody';
4
+ import { TimelaneLayout } from './TimelaneLayout/TimelaneLayout';
3
5
  import { TimelaneHeader } from './TimelaneHeader/TimelaneHeader';
4
6
  import { TimelaneBackground } from './TimelaneBackground';
5
7
  import { TimelaneAside } from './TimelaneAside';
@@ -10,6 +12,6 @@ export declare namespace Timelane {
10
12
  var Body: typeof TimelaneBody;
11
13
  var Background: typeof TimelaneBackground;
12
14
  var Aside: typeof TimelaneAside;
13
- var Lane: typeof CoreSwimlane;
15
+ var Lane: typeof TimelaneLane;
14
16
  var Layout: typeof TimelaneLayout;
15
17
  }
@@ -1,13 +1,13 @@
1
1
  import { MouseEvent, ReactElement } from 'react';
2
- import { SwimlaneT } from '../types';
2
+ import { Lane } from '../types';
3
3
  interface TimelaneAsideProps {
4
- lanes: SwimlaneT[];
5
- focusedLane?: SwimlaneT | null;
6
- setFocusedLane?: (lane: SwimlaneT | null) => void;
7
- onLaneHeaderClick?: (lane: SwimlaneT, e: MouseEvent) => void;
8
- onLaneHeaderDoubleClick?: (lane: SwimlaneT, e: MouseEvent) => void;
9
- onLaneHeaderContextMenu?: (lane: SwimlaneT, e: MouseEvent) => void;
10
- renderLaneHeader?: (lane: SwimlaneT) => ReactElement;
4
+ lanes: Lane[];
5
+ focusedLane?: Lane | null;
6
+ setFocusedLane?: (lane: Lane | null) => void;
7
+ onLaneHeaderClick?: (lane: Lane, e: MouseEvent) => void;
8
+ onLaneHeaderDoubleClick?: (lane: Lane, e: MouseEvent) => void;
9
+ onLaneHeaderContextMenu?: (lane: Lane, e: MouseEvent) => void;
10
+ renderLaneHeader?: (lane: Lane) => ReactElement;
11
11
  }
12
12
  export declare function TimelaneAside({ lanes, focusedLane, setFocusedLane, onLaneHeaderClick, onLaneHeaderDoubleClick, onLaneHeaderContextMenu, renderLaneHeader, }: TimelaneAsideProps): import("react/jsx-runtime").JSX.Element;
13
13
  export {};
@@ -1,13 +1,13 @@
1
1
  import { MouseEvent, ReactElement } from 'react';
2
- import { AvailableSpace, CoreItem, SwimlaneT } from '../types';
2
+ import { AvailableSpace, Item, Lane } from '../types';
3
3
  interface TimelaneBodyInnerProps<T> {
4
- lanes: SwimlaneT[];
5
- items: CoreItem<T>[];
6
- renderItem?: (item: CoreItem<T>, isDragged: boolean) => ReactElement;
7
- onItemUpdate?: (item: CoreItem<T>) => void;
8
- onLaneClick?: (lane: SwimlaneT, when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
9
- onLaneDoubleClick?: (lane: SwimlaneT, when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
10
- onLaneContextMenu?: (lane: SwimlaneT, when: Date, e: MouseEvent) => void;
4
+ lanes: Lane[];
5
+ items: Item<T>[];
6
+ renderItem?: (item: Item<T>, isDragged: boolean) => ReactElement;
7
+ onItemUpdate?: (item: Item<T>) => void;
8
+ onLaneClick?: (lane: Lane, when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
9
+ onLaneDoubleClick?: (lane: Lane, when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
10
+ onLaneContextMenu?: (lane: Lane, when: Date, e: MouseEvent) => void;
11
11
  }
12
12
  /**
13
13
  * @deprecated The component should not be used
@@ -1,7 +1,7 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { Position, Rectangle, Dimensions, CoreItem } from '../../../types';
2
+ import { Position, Rectangle, Dimensions, Item } from '../../types';
3
3
  interface DragResizeComponentProps<T> {
4
- item: CoreItem<T>;
4
+ item: Item<T>;
5
5
  rectangle: Rectangle;
6
6
  boundingRectangle: Dimensions;
7
7
  onDragStart: (grabPosition: Position, relativeGrabPosition: Position) => void;
@@ -0,0 +1,14 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { Item, Position, Lane, TimelaneSettings } from '../../types';
3
+ interface TimelaneItemProps<T> {
4
+ item: Item<T>;
5
+ lane: Lane;
6
+ settings: TimelaneSettings;
7
+ onDragStart: (grabPosition: Position, relativeGrabPosition: Position) => void;
8
+ onDrop: () => void;
9
+ onDrag: () => void;
10
+ onUpdate: (updatedItem: Item<T>) => void;
11
+ onResizeStart: () => void;
12
+ }
13
+ export default function TimelaneItem<T>({ lane, item, settings, children, onDragStart, onDrag, onDrop, onUpdate, onResizeStart, }: PropsWithChildren<TimelaneItemProps<T>>): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -1,11 +1,11 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { CoreItem, Pixels, SwimlaneT, TimeRange } from '../../../types';
2
+ import { Item, Pixels, Lane, TimeRange } from '../../types';
3
3
  interface AvailableSpaceIndicatorProps<T> {
4
4
  pixels: Pixels;
5
5
  range: TimeRange;
6
- swimlane: SwimlaneT;
6
+ swimlane: Lane;
7
7
  debug: boolean;
8
- items: CoreItem<T>[];
8
+ items: Item<T>[];
9
9
  }
10
10
  /**
11
11
  * A component that displays the available space at the mouse cursor position.
@@ -1,5 +1,5 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { GrabInfo, Position } from '../../../types';
2
+ import { GrabInfo, Position } from '../../types';
3
3
  interface DropTargetProps {
4
4
  onDragStart?: (mousePos: Position, grabInfo: GrabInfo, data: any) => void;
5
5
  onDrag?: (mousePos: Position, grabInfo: GrabInfo, data: any) => void;
@@ -1,4 +1,4 @@
1
- import { Rectangle } from '../../../types';
1
+ import { Rectangle } from '../../types';
2
2
  interface OverlapIndicatorProps {
3
3
  overlap: Rectangle;
4
4
  }
@@ -1,16 +1,16 @@
1
1
  import { MouseEvent, ReactElement } from 'react';
2
- import { AvailableSpace, CoreItem, SwimlaneT } from '../../../types';
3
- interface CoreSwimlaneProps<T> {
4
- swimlane: SwimlaneT;
5
- items: CoreItem<T>[];
2
+ import { AvailableSpace, Item, Lane } from '../../types';
3
+ interface TimelaneLaneProps<T> {
4
+ swimlane: Lane;
5
+ items: Item<T>[];
6
6
  focused?: boolean;
7
- onItemUpdate?: (item: CoreItem<T>) => void;
7
+ onItemUpdate?: (item: Item<T>) => void;
8
8
  onMouseUp?: (e: MouseEvent) => void;
9
9
  onClick?: (when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
10
10
  onDoubleClick?: (when: Date, availableSpace: AvailableSpace | null, e: MouseEvent) => void;
11
11
  onContextMenu?: (when: Date, e: MouseEvent) => void;
12
- renderItem?: (item: CoreItem<T>, isDragged: boolean) => ReactElement;
12
+ renderItem?: (item: Item<T>, isDragged: boolean) => ReactElement;
13
13
  onResizeStart?: (data: T) => void;
14
14
  }
15
- export declare function CoreSwimlane<T>({ swimlane, items, focused, onItemUpdate, onMouseUp, onClick, onDoubleClick, onContextMenu, renderItem, onResizeStart, }: CoreSwimlaneProps<T>): import("react/jsx-runtime").JSX.Element;
15
+ export declare function TimelaneLane<T>({ swimlane, items, focused, onItemUpdate, onMouseUp, onClick, onDoubleClick, onContextMenu, renderItem, onResizeStart, }: TimelaneLaneProps<T>): import("react/jsx-runtime").JSX.Element;
16
16
  export {};
@@ -1,5 +1,5 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
- import { TimelaneSettings } from '../types/TimelaneSettings';
2
+ import { TimelaneSettings } from '../types/';
3
3
  export interface TimelaneContextOuter {
4
4
  settings: TimelaneSettings;
5
5
  setSettings: Dispatch<SetStateAction<TimelaneSettings>>;
@@ -1,8 +1,8 @@
1
1
  import { PropsWithChildren } from 'react';
2
- import { SwimlaneT } from '../types';
2
+ import { Lane } from '../types';
3
3
  interface TimelaneWrapperProps {
4
4
  focusedDay?: Date | null;
5
- focusedSwimlane?: SwimlaneT | null;
5
+ focusedSwimlane?: Lane | null;
6
6
  start?: Date;
7
7
  end?: Date;
8
8
  pixelsPerDay?: number;
@@ -0,0 +1,27 @@
1
+ import { DragLocationHistory, ElementDragPayload } from '@atlaskit/pragmatic-drag-and-drop/dist/types/internal-types';
2
+ import { Item, Dimensions, Pixels, Position, Rectangle, Lane, TimeRange, AvailableSpace, GrabInfo, Grid } from '../types';
3
+ export declare function getDropTargetDimensions(lane: Lane, pixels: Pixels, range: TimeRange): Dimensions;
4
+ export declare function getDropTargetHeight(lane: Lane, pixels: Pixels): number;
5
+ export declare function getDropTargetWidth(lane: Lane, pixels: Pixels, range: TimeRange): number;
6
+ export declare function getItemRectangle<T>(item: Item<T>, lane: Lane, range: TimeRange, pixels: Pixels): Rectangle;
7
+ export declare function getItemDimensions<T>(item: Item<T>, lane: Lane, pixels: Pixels): Dimensions;
8
+ export declare function dateToPixel(date: Date, start: Date, pixels: Pixels): number;
9
+ export declare function offsetToPixel(offset: number, capacity: number, pixels: Pixels): number;
10
+ export declare function getItemPosition<T>(item: Item<T>, lane: Lane, start: Date, pixels: Pixels): Position;
11
+ export declare function getGrabPosition(source: ElementDragPayload, location: DragLocationHistory): {
12
+ absolute: Position;
13
+ relative: Position;
14
+ };
15
+ export declare function getUpdatedItem<T>(oldItem: Item<T>, swimlane: Lane, dropPreviewRect: Rectangle, pixels: Pixels, range: TimeRange): Item<T>;
16
+ export declare function getDropPreviewRectangle<S, T>(swimlane: Lane, items: Item<T>[], item: Item<S>, mousePosition: Position | null, grabInfo: GrabInfo, pixels: Pixels, grid: Grid, range: TimeRange, allowOverlaps: boolean): Rectangle | null;
17
+ /**
18
+ * Returns true if two rectangles (l1, r1) and (l2, r2) overlap
19
+ * @param a
20
+ * @param b
21
+ * @returns
22
+ */
23
+ export declare function doOverlap(a: Rectangle, b: Rectangle): boolean;
24
+ export declare function getOverlap(a: Rectangle, b: Rectangle): Rectangle | null;
25
+ export declare function itemsDoOverlap<T>(a: Item<T>, b: Item<T>): boolean;
26
+ export declare function isWithinTargetDimensions(item: Rectangle, targetDimensions: Dimensions): boolean;
27
+ export declare function getAvailableSpace<T>(clickedDate: Date, clickedOffset: number, swimlane: Lane, items: Item<T>[], range: TimeRange): AvailableSpace | null;
@@ -1,10 +1,10 @@
1
- import { ItemId, SwimlaneId } from '../types';
1
+ import { ItemId, LaneId } from '../types';
2
2
  export declare const useScroll: () => {
3
3
  scrollTo: (destination: {
4
4
  horz?: Date;
5
- vert?: SwimlaneId;
5
+ vert?: LaneId;
6
6
  } | ItemId) => void;
7
7
  scrollToDate: (date: Date) => void;
8
8
  scrollToItem: (itemId: ItemId) => void;
9
- scrollToLane: (laneId: SwimlaneId) => void;
9
+ scrollToLane: (laneId: LaneId) => void;
10
10
  };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,12 @@
1
- export { TimelaneLayout } from './components/layout/TimelaneLayout';
1
+ export { TimelaneLayout } from './components/TimelaneLayout/TimelaneLayout';
2
2
  export { TimelaneAside } from './components/TimelaneAside';
3
3
  export { TimelaneBackground } from './components/TimelaneBackground';
4
- export { CoreSwimlane } from './components/core/CoreSwimlane/CoreSwimlane';
4
+ export { TimelaneLane } from './components/TimelaneLane/TimelaneLane';
5
5
  export { TimelaneBody } from './components/TimelaneBody';
6
6
  export { Timelane } from './components/Timelane';
7
7
  export { TimelaneSettingsProvider } from './components/TimelaneSettingsProvider';
8
8
  export * from './components/TimelaneHeader';
9
9
  export * from './types';
10
- export * from './components/core/utils';
11
- export * from './components/core/CoreSwimlane/utils';
10
+ export * from './components/utils';
12
11
  export { useScroll } from './hooks/useScroll';
13
12
  export { useTimelaneContext } from './hooks/useTimelaneContext';