@elserlabs/timeline 0.0.2

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 (72) hide show
  1. package/LICENSE +46 -0
  2. package/README.md +7 -0
  3. package/dist/constants/constants.d.ts +25 -0
  4. package/dist/constants/fabric.d.ts +6 -0
  5. package/dist/constants/index.d.ts +1 -0
  6. package/dist/constants/objects.d.ts +5 -0
  7. package/dist/controls/controls.d.ts +22 -0
  8. package/dist/controls/draw.d.ts +3 -0
  9. package/dist/controls/index.d.ts +5 -0
  10. package/dist/events/canvas/before-transform.d.ts +4 -0
  11. package/dist/events/canvas/drag.d.ts +4 -0
  12. package/dist/events/canvas/events.d.ts +4 -0
  13. package/dist/events/canvas/guidelines.d.ts +6 -0
  14. package/dist/events/canvas/hover-control.d.ts +4 -0
  15. package/dist/events/canvas/internal.d.ts +36 -0
  16. package/dist/events/canvas/modified.d.ts +4 -0
  17. package/dist/events/canvas/moving.d.ts +4 -0
  18. package/dist/events/canvas/placeholder.d.ts +4 -0
  19. package/dist/events/canvas/resized.d.ts +4 -0
  20. package/dist/events/canvas/resizing.d.ts +8 -0
  21. package/dist/events/canvas/scrolling.d.ts +7 -0
  22. package/dist/events/canvas/selection.d.ts +4 -0
  23. package/dist/events/canvas/timeline.d.ts +4 -0
  24. package/dist/events/store/connect.d.ts +4 -0
  25. package/dist/global/events.d.ts +6 -0
  26. package/dist/global/index.d.ts +1 -0
  27. package/dist/index.d.ts +10 -0
  28. package/dist/index.es.js +11692 -0
  29. package/dist/index.umd.js +498 -0
  30. package/dist/interfaces/canvas.d.ts +21 -0
  31. package/dist/mixins/canvas.d.ts +17 -0
  32. package/dist/mixins/track-items.d.ts +20 -0
  33. package/dist/mixins/tracks.d.ts +15 -0
  34. package/dist/mixins/transitions.d.ts +10 -0
  35. package/dist/objects/drag-track-item.d.ts +33 -0
  36. package/dist/objects/helper.d.ts +29 -0
  37. package/dist/objects/index.d.ts +7 -0
  38. package/dist/objects/placeholder.d.ts +36 -0
  39. package/dist/objects/resizable.d.ts +36 -0
  40. package/dist/objects/track.d.ts +28 -0
  41. package/dist/objects/transition-guide.d.ts +38 -0
  42. package/dist/objects/transition.d.ts +44 -0
  43. package/dist/objects/trimmable.d.ts +46 -0
  44. package/dist/resize/audio.d.ts +13 -0
  45. package/dist/resize/common.d.ts +13 -0
  46. package/dist/resize/index.d.ts +1 -0
  47. package/dist/resize/media.d.ts +13 -0
  48. package/dist/resize/resize.d.ts +6 -0
  49. package/dist/resize/template.d.ts +13 -0
  50. package/dist/resize/transition.d.ts +4 -0
  51. package/dist/scrollbar/index.d.ts +57 -0
  52. package/dist/scrollbar/types.d.ts +26 -0
  53. package/dist/scrollbar/util.d.ts +15 -0
  54. package/dist/timeline.d.ts +115 -0
  55. package/dist/utils/apply-mixins.d.ts +7 -0
  56. package/dist/utils/array.d.ts +6 -0
  57. package/dist/utils/canvas.d.ts +8 -0
  58. package/dist/utils/clone-deep.d.ts +1 -0
  59. package/dist/utils/fabric.d.ts +15 -0
  60. package/dist/utils/group-by-transition.d.ts +18 -0
  61. package/dist/utils/group-items.d.ts +11 -0
  62. package/dist/utils/guideline.d.ts +57 -0
  63. package/dist/utils/id.d.ts +1 -0
  64. package/dist/utils/index.d.ts +6 -0
  65. package/dist/utils/item.d.ts +3 -0
  66. package/dist/utils/load-object.d.ts +6 -0
  67. package/dist/utils/over-element.d.ts +6 -0
  68. package/dist/utils/resolve-origin.d.ts +9 -0
  69. package/dist/utils/sizes.d.ts +1 -0
  70. package/dist/utils/timeline.d.ts +6 -0
  71. package/package.json +41 -0
  72. package/src/index.ts +18 -0
@@ -0,0 +1,21 @@
1
+ import { FabricObject } from 'fabric';
2
+
3
+ export interface IDropInfo {
4
+ isSecondaryOverlapped: boolean;
5
+ primaryPositions: {
6
+ trackIndex?: number;
7
+ trackId: string;
8
+ positions: Record<string, {
9
+ top: number;
10
+ left: number;
11
+ }>;
12
+ };
13
+ secondaryTracks: Record<string, {
14
+ objects: FabricObject[];
15
+ index: number;
16
+ }>;
17
+ primaryTracks: Record<string, {
18
+ objects: FabricObject[];
19
+ index: number;
20
+ }>;
21
+ }
@@ -0,0 +1,17 @@
1
+ import { FabricObject } from 'fabric';
2
+ import { default as Timeline } from '../timeline';
3
+
4
+ declare class CanvasMixin {
5
+ private ___eventListeners;
6
+ ___activeObjects: FabricObject[];
7
+ resize(this: Timeline, payload: {
8
+ width?: number;
9
+ height?: number;
10
+ }, { force }?: {
11
+ force?: boolean;
12
+ }): void;
13
+ pauseEventListeners(this: Timeline): void;
14
+ resumeEventListeners(this: Timeline): false | undefined;
15
+ updateCachingActiveObjects(this: Timeline, newObjects: FabricObject[]): void;
16
+ }
17
+ export default CanvasMixin;
@@ -0,0 +1,20 @@
1
+ import { FabricObject } from 'fabric';
2
+ import { default as Timeline } from '../timeline';
3
+ import { ITrackItemAndDetails } from '@designcombo/types';
4
+
5
+ declare class TrackItemsMixin {
6
+ addTrackItem(this: Timeline, trackItem: ITrackItemAndDetails): void;
7
+ alignItemsToTrack(this: Timeline): void;
8
+ updateTrackItemsToHistory(this: Timeline): void;
9
+ deleteTrackItemToHistory(this: Timeline, ids: string[]): void;
10
+ uodateTrackItemIdsOrdering(this: Timeline): void;
11
+ selectTrackItemByIds(this: Timeline, trackItemIds: string[]): void;
12
+ synchronizeTrackItemsState(this: Timeline): void;
13
+ deleteTrackItemById(this: Timeline, ids: string[]): void;
14
+ deleteActiveTrackItem(this: Timeline): false | undefined;
15
+ updateTrackItemCoords(this: Timeline, updateActiveObject?: boolean): void;
16
+ getTrackItems(this: Timeline): FabricObject<Partial<import('fabric').FabricObjectProps>, import('fabric').SerializedObjectProps, import('fabric').ObjectEvents>[];
17
+ setTrackItemCoords(this: Timeline): void;
18
+ setActiveTrackItemCoords(this: Timeline): void;
19
+ }
20
+ export default TrackItemsMixin;
@@ -0,0 +1,15 @@
1
+ import { default as Timeline } from '../timeline';
2
+ import { ITrackItem } from '@designcombo/types';
3
+
4
+ declare class TracksMixin {
5
+ findOrCreateTrack(this: Timeline, trackItemData: ITrackItem, { trackId, trackIndex }: {
6
+ trackId?: string;
7
+ trackIndex?: number;
8
+ }): string;
9
+ removeTracks(this: Timeline): void;
10
+ renderTracks(this: Timeline): void;
11
+ filterEmptyTracks(this: Timeline): void;
12
+ refreshTrackLayout(this: Timeline): void;
13
+ adjustMagneticTrack(this: Timeline): void;
14
+ }
15
+ export default TracksMixin;
@@ -0,0 +1,10 @@
1
+ import { default as Timeline } from '../timeline';
2
+
3
+ declare class TransitionsMixin {
4
+ removeTransitions(this: Timeline): void;
5
+ renderTransitions(this: Timeline): void;
6
+ updateTrackTransitionsItemCoords(this: Timeline): void;
7
+ alignTransitionsToTrack(this: Timeline, alignActiveObjects?: boolean): void;
8
+ updateTransitions(this: Timeline, handleListeners?: boolean): void;
9
+ }
10
+ export default TransitionsMixin;
@@ -0,0 +1,33 @@
1
+ import { Rect, RectProps } from 'fabric';
2
+
3
+ export interface PreviewTrackItemProps extends Pick<RectProps, "width" | "height" | "top" | "left"> {
4
+ id: string;
5
+ type: string;
6
+ duration: number;
7
+ }
8
+ declare class PreviewTrackItem extends Rect {
9
+ static type: string;
10
+ duration: number;
11
+ fromId: string;
12
+ toId: string;
13
+ isSelected: boolean;
14
+ name: string;
15
+ durationString: string;
16
+ itemType: string;
17
+ static getDefaults(): Record<string, any>;
18
+ static ownDefaults: {
19
+ objectCaching: boolean;
20
+ borderColor: string;
21
+ stroke: string;
22
+ strokeWidth: number;
23
+ borderOpacityWhenMoving: number;
24
+ hoverCursor: string;
25
+ rx: number;
26
+ ry: number;
27
+ };
28
+ constructor(props: PreviewTrackItemProps);
29
+ _render(ctx: CanvasRenderingContext2D): void;
30
+ drawTextIdentity(ctx: CanvasRenderingContext2D): void;
31
+ private drawRoundedRect;
32
+ }
33
+ export default PreviewTrackItem;
@@ -0,0 +1,29 @@
1
+ import { Group, GroupProps, Rect } from 'fabric';
2
+ import { IMetadata, ItemType } from '@designcombo/types';
3
+
4
+ export interface HelperProps extends Partial<GroupProps> {
5
+ id: string;
6
+ metadata: Partial<IMetadata>;
7
+ tScale: number;
8
+ kind: "top" | "center" | "bottom";
9
+ activeGuideFill?: string;
10
+ }
11
+ declare class Helper extends Group {
12
+ static type: string;
13
+ guide: Rect;
14
+ topGuide: Rect;
15
+ bottomGuide: Rect;
16
+ metadata: Partial<IMetadata>;
17
+ accepts: ItemType[];
18
+ kind: string;
19
+ activeGuideFill?: string;
20
+ static getDefaults(): Record<string, any>;
21
+ static ownDefaults: {
22
+ selectable: boolean;
23
+ evented: boolean;
24
+ };
25
+ constructor(props: HelperProps);
26
+ updateCoords(size: number): void;
27
+ setSelected(selected: boolean): void;
28
+ }
29
+ export default Helper;
@@ -0,0 +1,7 @@
1
+ export { default as Track, type TrackItemProps } from './track';
2
+ export { default as Helper, type HelperProps } from './helper';
3
+ export { default as Placeholder } from './placeholder';
4
+ export { default as Transition } from './transition';
5
+ export { default as Trimmable, type TrimmableProps } from './trimmable';
6
+ export { default as Resizable, type ResizableProps } from './resizable';
7
+ export { default as PreviewTrackItem, type PreviewTrackItemProps } from './drag-track-item';
@@ -0,0 +1,36 @@
1
+ import { FabricObject, Rect, RectProps } from 'fabric';
2
+ import { ItemType } from '@designcombo/types';
3
+
4
+ interface PlaceholderProps extends Pick<RectProps, "width" | "height" | "top" | "left"> {
5
+ id: string;
6
+ }
7
+ declare class Placeholder extends Rect {
8
+ static type: string;
9
+ guideItemId?: string;
10
+ distXToActCenter?: number;
11
+ trackItemType?: ItemType;
12
+ defaultPos?: {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ draggedObject: FabricObject;
17
+ static getDefaults(): Record<string, any>;
18
+ static ownDefaults: {
19
+ rx: number;
20
+ ry: number;
21
+ objectCaching: boolean;
22
+ borderColor: string;
23
+ strokeWidth: number;
24
+ fill: string;
25
+ stroke: string;
26
+ selectable: boolean;
27
+ borderOpacityWhenMoving: number;
28
+ hoverCursor: string;
29
+ strokeDashArray: number[];
30
+ evented: boolean;
31
+ };
32
+ constructor(props: PlaceholderProps);
33
+ _render(ctx: CanvasRenderingContext2D): void;
34
+ updateSelected(ctx: CanvasRenderingContext2D): void;
35
+ }
36
+ export default Placeholder;
@@ -0,0 +1,36 @@
1
+ import { Control, Rect, RectProps } from 'fabric';
2
+ import { IDisplay } from '@designcombo/types';
3
+
4
+ export interface ResizableBaseProps extends Pick<RectProps, "width" | "height" | "top" | "left"> {
5
+ id: string;
6
+ tScale: number;
7
+ display: IDisplay;
8
+ }
9
+ export type ResizableProps<T extends object = {}> = ResizableBaseProps & T;
10
+ declare class Resizable extends Rect {
11
+ static type: string;
12
+ id: string;
13
+ isSelected: boolean;
14
+ tScale: number;
15
+ display: IDisplay;
16
+ static createControls(): {
17
+ controls: Record<string, Control>;
18
+ };
19
+ static getDefaults(): Record<string, any>;
20
+ static ownDefaults: {
21
+ rx: number;
22
+ ry: number;
23
+ objectCaching: boolean;
24
+ borderColor: string;
25
+ stroke: string;
26
+ strokeWidth: number;
27
+ fill: string;
28
+ borderOpacityWhenMoving: number;
29
+ hoverCursor: string;
30
+ };
31
+ constructor(props: ResizableProps);
32
+ setSelected(selected: boolean): void;
33
+ _render(ctx: CanvasRenderingContext2D): void;
34
+ updateSelected(ctx: CanvasRenderingContext2D): void;
35
+ }
36
+ export default Resizable;
@@ -0,0 +1,28 @@
1
+ import { Rect } from 'fabric';
2
+ import { IMetadata } from '@designcombo/types';
3
+
4
+ export interface TrackItemProps extends Pick<Rect, "top" | "left" | "width" | "height"> {
5
+ id: string;
6
+ top: number;
7
+ left: number;
8
+ tScale: number;
9
+ accepts: string[];
10
+ items: string[];
11
+ magnetic?: boolean;
12
+ static?: boolean;
13
+ metadata?: Partial<IMetadata>;
14
+ }
15
+ declare class Track extends Rect {
16
+ static ownDefaults: Partial<Rect<Partial<import('fabric').RectProps>, import('fabric').SerializedRectProps, import('fabric').ObjectEvents>>;
17
+ static type: string;
18
+ id: string;
19
+ accepts: string[];
20
+ metadata?: Partial<IMetadata>;
21
+ items: string[];
22
+ magnetic?: boolean;
23
+ static?: boolean;
24
+ static getDefaults(): Record<string, any>;
25
+ constructor(props: TrackItemProps);
26
+ updateCoords(size: number): void;
27
+ }
28
+ export default Track;
@@ -0,0 +1,38 @@
1
+ import { Control, Rect, RectProps } from 'fabric';
2
+
3
+ interface TransitionGuideProps extends Pick<RectProps, "width" | "height" | "top" | "left"> {
4
+ id: string;
5
+ }
6
+ declare class TransitionGuide extends Rect {
7
+ static type: string;
8
+ duration: number;
9
+ fromId: string;
10
+ toId: string;
11
+ itemType: string;
12
+ isSelected: boolean;
13
+ static createControls(): {
14
+ controls: Record<string, Control>;
15
+ };
16
+ static getDefaults(): Record<string, any>;
17
+ static ownDefaults: {
18
+ objectCaching: boolean;
19
+ borderColor: string;
20
+ stroke: string;
21
+ strokeWidth: number;
22
+ fill: string;
23
+ borderOpacityWhenMoving: number;
24
+ hoverCursor: string;
25
+ lockMovementX: boolean;
26
+ lockMovementY: boolean;
27
+ duration: number;
28
+ rx: number;
29
+ ry: number;
30
+ };
31
+ constructor(props: TransitionGuideProps);
32
+ updateCoords(): void;
33
+ _render(ctx: CanvasRenderingContext2D): void;
34
+ drawTextIdentity(ctx: CanvasRenderingContext2D): void;
35
+ setSelected(selected: boolean): void;
36
+ updateSelected(ctx: CanvasRenderingContext2D): void;
37
+ }
38
+ export default TransitionGuide;
@@ -0,0 +1,44 @@
1
+ import { Control, Rect, RectProps } from 'fabric';
2
+
3
+ interface TransitionProps extends Pick<RectProps, "width" | "height" | "top" | "left"> {
4
+ id: string;
5
+ tScale: number;
6
+ duration: number;
7
+ fromId: string;
8
+ toId: string;
9
+ kind: string;
10
+ strokeDashArray?: number[];
11
+ }
12
+ declare class Transition extends Rect {
13
+ static type: string;
14
+ duration: number;
15
+ fromId: string;
16
+ toId: string;
17
+ kind: string;
18
+ isSelected: boolean;
19
+ availableDrop: boolean;
20
+ static createControls(): {
21
+ controls: Record<string, Control>;
22
+ };
23
+ static getDefaults(): Record<string, any>;
24
+ static ownDefaults: {
25
+ objectCaching: boolean;
26
+ borderColor: string;
27
+ stroke: string;
28
+ strokeWidth: number;
29
+ fill: string;
30
+ borderOpacityWhenMoving: number;
31
+ hoverCursor: string;
32
+ lockMovementX: boolean;
33
+ lockMovementY: boolean;
34
+ duration: number;
35
+ rx: number;
36
+ ry: number;
37
+ };
38
+ constructor(props: TransitionProps);
39
+ updateCoords(): void;
40
+ _render(ctx: CanvasRenderingContext2D): void;
41
+ setSelected(selected: boolean): void;
42
+ updateSelected(ctx: CanvasRenderingContext2D): void;
43
+ }
44
+ export default Transition;
@@ -0,0 +1,46 @@
1
+ import { Control, Rect, RectProps } from 'fabric';
2
+ import { ITrim } from '@designcombo/types';
3
+
4
+ interface IDisplay {
5
+ from: number;
6
+ to: number;
7
+ }
8
+ export interface TrimmableBaseProps extends Pick<RectProps, "width" | "height" | "top" | "left"> {
9
+ id: string;
10
+ tScale: number;
11
+ display: IDisplay;
12
+ trim: ITrim;
13
+ }
14
+ export type TrimmableProps<T extends object = {}> = TrimmableBaseProps & T;
15
+ declare class Trimmable extends Rect {
16
+ static type: string;
17
+ id: string;
18
+ resourceId: string;
19
+ tScale: number;
20
+ isSelected: boolean;
21
+ display: IDisplay;
22
+ trim: ITrim;
23
+ duration: number;
24
+ src: string;
25
+ static createControls(): {
26
+ controls: Record<string, Control>;
27
+ };
28
+ static ownDefaults: {
29
+ rx: number;
30
+ ry: number;
31
+ objectCaching: boolean;
32
+ borderColor: string;
33
+ stroke: string;
34
+ strokeWidth: number;
35
+ fill: string;
36
+ borderOpacityWhenMoving: number;
37
+ hoverCursor: string;
38
+ };
39
+ constructor(options: TrimmableProps);
40
+ _render(ctx: CanvasRenderingContext2D): void;
41
+ setSelected(selected: boolean): void;
42
+ updateSelected(ctx: CanvasRenderingContext2D): void;
43
+ onResizeSnap(): void;
44
+ setSrc(src: string): void;
45
+ }
46
+ export default Trimmable;
@@ -0,0 +1,13 @@
1
+ import { TransformActionHandler } from 'fabric';
2
+
3
+ /**
4
+ * Action handler to change object's width
5
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
6
+ * @param {Event} eventData javascript event that is doing the transform
7
+ * @param {Object} transform javascript object containing a series of information around the current transform
8
+ * @param {number} x current mouse x position, canvas normalized
9
+ * @param {number} y current mouse y position, canvas normalized
10
+ * @return {Boolean} true if some change happened
11
+ */
12
+ export declare const changeAudioWidth: TransformActionHandler;
13
+ export declare const resizeAudio: TransformActionHandler<import('fabric').Transform>;
@@ -0,0 +1,13 @@
1
+ import { TransformActionHandler } from 'fabric';
2
+
3
+ /**
4
+ * Action handler to change object's width
5
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
6
+ * @param {Event} eventData javascript event that is doing the transform
7
+ * @param {Object} transform javascript object containing a series of information around the current transform
8
+ * @param {number} x current mouse x position, canvas normalized
9
+ * @param {number} y current mouse y position, canvas normalized
10
+ * @return {Boolean} true if some change happened
11
+ */
12
+ export declare const changeObjectWidth: TransformActionHandler;
13
+ export declare const changeWidth: TransformActionHandler<import('fabric').Transform>;
@@ -0,0 +1 @@
1
+ export * from './resize';
@@ -0,0 +1,13 @@
1
+ import { TransformActionHandler } from 'fabric';
2
+
3
+ /**
4
+ * Action handler to change object's width
5
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
6
+ * @param {Event} eventData javascript event that is doing the transform
7
+ * @param {Object} transform javascript object containing a series of information around the current transform
8
+ * @param {number} x current mouse x position, canvas normalized
9
+ * @param {number} y current mouse y position, canvas normalized
10
+ * @return {Boolean} true if some change happened
11
+ */
12
+ export declare const changeVideoWidth: TransformActionHandler;
13
+ export declare const resizeMedia: TransformActionHandler<import('fabric').Transform>;
@@ -0,0 +1,6 @@
1
+ export declare const resize: {
2
+ audio: import('fabric').TransformActionHandler<import('fabric').Transform>;
3
+ media: import('fabric').TransformActionHandler<import('fabric').Transform>;
4
+ common: import('fabric').TransformActionHandler<import('fabric').Transform>;
5
+ transition: import('fabric').TransformActionHandler<import('fabric').Transform>;
6
+ };
@@ -0,0 +1,13 @@
1
+ import { TransformActionHandler } from 'fabric';
2
+
3
+ /**
4
+ * Action handler to change object's width
5
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
6
+ * @param {Event} eventData javascript event that is doing the transform
7
+ * @param {Object} transform javascript object containing a series of information around the current transform
8
+ * @param {number} x current mouse x position, canvas normalized
9
+ * @param {number} y current mouse y position, canvas normalized
10
+ * @return {Boolean} true if some change happened
11
+ */
12
+ export declare const changeTemplateWidth: TransformActionHandler;
13
+ export declare const resizeTemplate: TransformActionHandler<import('fabric').Transform>;
@@ -0,0 +1,4 @@
1
+ import { TransformActionHandler } from 'fabric';
2
+
3
+ export declare const changeTransitionWidth: TransformActionHandler;
4
+ export declare const resizeTransitionWidth: TransformActionHandler<import('fabric').Transform>;
@@ -0,0 +1,57 @@
1
+ import { TMat2D, TPointerEvent } from 'fabric';
2
+ import { default as Timeline } from '../timeline';
3
+ import { ScrollbarProps, ScrollbarsProps, ScrollbarXProps, ScrollbarYProps } from './types';
4
+
5
+ export declare class Scrollbars {
6
+ canvas: Timeline;
7
+ fill: string;
8
+ stroke: string;
9
+ lineWidth: number;
10
+ hideX: boolean;
11
+ hideY: boolean;
12
+ scrollbarMinWidth: number;
13
+ scrollbarSize: number;
14
+ scrollSpace: number;
15
+ padding: number;
16
+ extraMarginX: number;
17
+ extraMarginY: number;
18
+ offsetX: number;
19
+ offsetY: number;
20
+ scrollbarWidth: number;
21
+ scrollbarColor: string;
22
+ onViewportChange?: (left: number) => void;
23
+ private _bar?;
24
+ private _barViewport;
25
+ private _originalMouseDown;
26
+ private _originalMouseMove;
27
+ private _originalMouseUp;
28
+ constructor(canvas: Timeline, props?: ScrollbarsProps);
29
+ initBehavior(): void;
30
+ getScrollbar(e: TPointerEvent): {
31
+ type: string;
32
+ start: number;
33
+ vpt: TMat2D;
34
+ } | undefined;
35
+ mouseDownHandler(e: TPointerEvent): void;
36
+ mouseMoveHandler(e: TPointerEvent): void;
37
+ mouseUpHandler(e: TPointerEvent): void;
38
+ beforeRenderHandler(): void;
39
+ afterRenderHandler(): void;
40
+ render(ctx: CanvasRenderingContext2D, mapRect: ScrollbarProps, objectRect: ScrollbarProps): void;
41
+ drawScrollbarX(ctx: CanvasRenderingContext2D, mapRect: ScrollbarXProps, objectRect: ScrollbarXProps): void;
42
+ drawScrollbarY(ctx: CanvasRenderingContext2D, mapRect: ScrollbarYProps, objectRect: ScrollbarYProps): void;
43
+ drawRect(ctx: CanvasRenderingContext2D, props: {
44
+ x: number;
45
+ y: number;
46
+ w: number;
47
+ h: number;
48
+ }): void;
49
+ getObjectsBoundingRect(): {
50
+ left: number;
51
+ top: number;
52
+ right: number;
53
+ bottom: number;
54
+ };
55
+ applyViewportLimits(vpt: TMat2D): void;
56
+ dispose(): void;
57
+ }
@@ -0,0 +1,26 @@
1
+ export type ScrollbarsProps = {
2
+ fill?: string;
3
+ stroke?: string;
4
+ lineWidth?: number;
5
+ hideX?: boolean;
6
+ hideY?: boolean;
7
+ scrollbarMinWidth?: number;
8
+ scrollbarSize?: number;
9
+ scrollSpace?: number;
10
+ padding?: number;
11
+ extraMarginX?: number;
12
+ extraMarginY?: number;
13
+ offsetX?: number;
14
+ offsetY?: number;
15
+ scrollbarWidth?: number;
16
+ scrollbarColor?: string;
17
+ onViewportChange?: (left: number) => void;
18
+ };
19
+ export type ScrollbarProps = {
20
+ left: number;
21
+ top: number;
22
+ right: number;
23
+ bottom: number;
24
+ };
25
+ export type ScrollbarXProps = Pick<ScrollbarProps, "left" | "right">;
26
+ export type ScrollbarYProps = Pick<ScrollbarProps, "top" | "bottom">;
@@ -0,0 +1,15 @@
1
+ import { TPointerEventInfo } from 'fabric';
2
+ import { default as Timeline } from '../timeline';
3
+
4
+ type SizeProps = {
5
+ min: number;
6
+ max: number;
7
+ };
8
+ type MouseWheelOptions = {
9
+ offsetX?: number;
10
+ offsetY?: number;
11
+ extraMarginX?: number;
12
+ extraMarginY?: number;
13
+ } & Partial<SizeProps>;
14
+ export declare const makeMouseWheel: (canvas: Timeline, options?: MouseWheelOptions) => (wheelEvent: TPointerEventInfo<WheelEvent>) => void;
15
+ export {};