@opengeoweb/time-slider 19.1.0 → 19.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/README.md +11 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +3662 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/lib/Providers/Providers.d.ts +8 -0
- package/dist/src/lib/Providers/index.d.ts +1 -0
- package/dist/src/lib/components/TimeSlider/TimeSlider.d.ts +16 -0
- package/dist/src/lib/components/TimeSlider/changeTimeFunctions.d.ts +14 -0
- package/dist/src/lib/components/TimeSlider/index.d.ts +4 -0
- package/dist/src/lib/components/TimeSlider/timeSliderEffects.d.ts +2 -0
- package/dist/src/lib/components/TimeSlider/timeSliderUtils.d.ts +129 -0
- package/dist/src/lib/components/TimeSliderButtons/AnimationLengthButton/AnimationLengthButton.d.ts +12 -0
- package/dist/src/lib/components/TimeSliderButtons/AutoUpdateButton/AutoUpdateButton.d.ts +8 -0
- package/dist/src/lib/components/TimeSliderButtons/BackwardForwardStepButton/BackwardForwardStepButton.d.ts +7 -0
- package/dist/src/lib/components/TimeSliderButtons/ControlButtons/ControlButtons.d.ts +8 -0
- package/dist/src/lib/components/TimeSliderButtons/HideSliderButton/HideSliderButton.d.ts +6 -0
- package/dist/src/lib/components/TimeSliderButtons/NowButton/NowButton.d.ts +7 -0
- package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/OptionsMenu.d.ts +8 -0
- package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/OptionsMenuButton.d.ts +12 -0
- package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/index.d.ts +2 -0
- package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/optionsMenuShortcut.d.ts +9 -0
- package/dist/src/lib/components/TimeSliderButtons/PlayButton/PlayButton.d.ts +7 -0
- package/dist/src/lib/components/TimeSliderButtons/SpeedButton/SpeedButton.d.ts +6 -0
- package/dist/src/lib/components/TimeSliderButtons/TimeSliderButtons.d.ts +10 -0
- package/dist/src/lib/components/TimeSliderButtons/TimeSliderMenu/TimeSliderMenu.d.ts +24 -0
- package/dist/src/lib/components/TimeSliderButtons/TimeSpanButton/TimeSpanButton.d.ts +17 -0
- package/dist/src/lib/components/TimeSliderButtons/TimeSpanButton/TimeSpanButtonCustomSelect.d.ts +7 -0
- package/dist/src/lib/components/TimeSliderButtons/TimeStepButton/TimeStepButton.d.ts +11 -0
- package/dist/src/lib/components/TimeSliderButtons/index.d.ts +13 -0
- package/dist/src/lib/components/TimeSliderCurrentTimeBox/CalendarButton/CalendarButton.d.ts +10 -0
- package/dist/src/lib/components/TimeSliderCurrentTimeBox/MarkerTimeSelector/MarkerTimeSelector.d.ts +24 -0
- package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBox.d.ts +20 -0
- package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBoxMouseEvents.d.ts +2 -0
- package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBoxRenderFunctions.d.ts +3 -0
- package/dist/src/lib/components/TimeSliderCurrentTimeBox/index.d.ts +1 -0
- package/dist/src/lib/components/TimeSliderLegend/TimeSliderLegend.d.ts +35 -0
- package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawBackground.d.ts +4 -0
- package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawCurrentTime.d.ts +2 -0
- package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawNeedle.d.ts +2 -0
- package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawTimeScale.d.ts +7 -0
- package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawTimeSliderLegend.d.ts +2 -0
- package/dist/src/lib/components/TimeSliderLegend/drawFunctions/index.d.ts +1 -0
- package/dist/src/lib/components/TimeSliderLegend/index.d.ts +1 -0
- package/dist/src/lib/components/TimeSliderLegend/timeSliderLegendUtils.d.ts +37 -0
- package/dist/src/lib/index.d.ts +5 -0
- package/dist/src/lib/utils/i18n.d.ts +6 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Providers';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimeSliderProps {
|
|
3
|
+
buttons: React.ReactNode;
|
|
4
|
+
timeBox: React.ReactNode;
|
|
5
|
+
legend: React.ReactNode;
|
|
6
|
+
mapIsActive?: boolean;
|
|
7
|
+
onToggleTimeSlider?: (isVisible: boolean) => void;
|
|
8
|
+
isVisible?: boolean;
|
|
9
|
+
timeStep: number;
|
|
10
|
+
dataStartTime: number;
|
|
11
|
+
dataEndTime: number;
|
|
12
|
+
selectedTime: number;
|
|
13
|
+
onSetNewDate: (newDate: string) => void;
|
|
14
|
+
onSetCenterTime: (newTime: number) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const TimeSlider: React.FC<TimeSliderProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const onsetNewDateDebounced: import("lodash").DebouncedFunc<(dateToSet: string, onSetNewDate: (newDate: string) => void) => void>;
|
|
2
|
+
export declare const setPreviousTimeStep: (timeStep: number, currentTime: number, dataStartTime: number, onSetNewDate: (newDate: string) => void) => void;
|
|
3
|
+
export declare const setNextTimeStep: (timeStep: number, currentTime: number, dataEndTime: number, onSetNewDate: (newDate: string) => void) => void;
|
|
4
|
+
/**
|
|
5
|
+
* updates unfiltered selected time and moves selected time a given distance
|
|
6
|
+
* in pixels. Unfiltered selected time can be outside data data limits, but
|
|
7
|
+
* selected time cannot.
|
|
8
|
+
*/
|
|
9
|
+
export declare const moveSelectedTimePx: (pixelsMoved: number, canvasWidth: number, centerTime: number, dataStartTime: number, dataEndTime: number, secondsPerPx: number, timeStep: number, unfilteredSelectedTime: number, setUnfilteredSelectedTime: (unfilteredSelectedTime: number) => void) => void;
|
|
10
|
+
export declare function getFilteredTime(unfilteredTime: number, timeStep?: number, dataStartTime?: number, dataEndTime?: number): number;
|
|
11
|
+
/** Reusable business logic for how to handle events that set time to now (closest).
|
|
12
|
+
* Used in NowButton and TimeSliderLegend.
|
|
13
|
+
*/
|
|
14
|
+
export declare const handleSetNowEvent: (timeStep: number, dataStartTime: number, dataEndTime: number, currentTime: number, onSetNewDate: (newDate: string) => void, onSetCenterTime: (newTime: number) => void) => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const useToggleTimesliderVisibility: (mapIsActive: boolean, isVisible: boolean, onToggleTimeSlider: (isVisible: boolean) => void) => void;
|
|
2
|
+
export declare const useMoveTimeWithKeyboard: (mapIsActive: boolean, timeStep: number, dataStartTime: number, dataEndTime: number, onSetNewDate: (newDate: string) => void, onSetCenterTime: (newTime: number) => void, selectedTime: number) => void;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CanvasComponent } from '@opengeoweb/shared';
|
|
3
|
+
export interface TimeBounds {
|
|
4
|
+
startTime: number;
|
|
5
|
+
endTime: number;
|
|
6
|
+
}
|
|
7
|
+
export declare enum Scale {
|
|
8
|
+
Minutes5 = 0,
|
|
9
|
+
Hour = 1,
|
|
10
|
+
Hours3 = 2,
|
|
11
|
+
Hours6 = 3,
|
|
12
|
+
Day = 4,
|
|
13
|
+
Week = 5,
|
|
14
|
+
Weeks2 = 6,
|
|
15
|
+
Month = 7,
|
|
16
|
+
Months3 = 8,
|
|
17
|
+
Year = 9
|
|
18
|
+
}
|
|
19
|
+
export declare enum AnimationLength {
|
|
20
|
+
Minutes15 = 15,
|
|
21
|
+
Minutes30 = 30,
|
|
22
|
+
Hours1 = 60,
|
|
23
|
+
Hours2 = 120,
|
|
24
|
+
Hours3 = 180,
|
|
25
|
+
Hours6 = 360,
|
|
26
|
+
Hours12 = 720,
|
|
27
|
+
Hours24 = 1440
|
|
28
|
+
}
|
|
29
|
+
export type SpeedFactorType = 0.1 | 0.2 | 0.5 | 1 | 2 | 4 | 8 | 16;
|
|
30
|
+
/**
|
|
31
|
+
* In this Map collection all fundamental scales
|
|
32
|
+
* (Scale.Minutes5 ... Scale.Year) are mapped with their corresponding
|
|
33
|
+
* secondsPerPx numbers.
|
|
34
|
+
* @returns a Map including information explained above
|
|
35
|
+
*/
|
|
36
|
+
export declare const secondsPerPxToScale: Map<number, Scale>;
|
|
37
|
+
export declare const spanToScale: Map<number, Scale>;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a reverse mapping of scales to their corresponding secondsPerPx
|
|
40
|
+
* values to make it easier in some parts GeoWeb to fetch a secondsPerpx for
|
|
41
|
+
* a certain fundamental scale (Scale.Minutes5 ... Scale.year)
|
|
42
|
+
* @returns an Object, where names are fundamental scale values (0 - 7) and
|
|
43
|
+
* values are their corresponding secondsPerPx numbers.
|
|
44
|
+
*/
|
|
45
|
+
export declare const scaleToSecondsPerPx: {
|
|
46
|
+
[sc in Scale]: number;
|
|
47
|
+
};
|
|
48
|
+
export declare const scalingCoefficient: (end: number, start: number, width: number) => number;
|
|
49
|
+
export declare const timestampToPixelEdges: (timestamp: number, start: number, end: number, width: number) => number;
|
|
50
|
+
export declare const timestampToPixel: (timestamp: number, centerTime: number, widthPx: number, secondsPerPx: number) => number;
|
|
51
|
+
export declare const pixelToTimestamp: (timePx: number, centerTime: number, widthPx: number, secondsPerPx: number) => number;
|
|
52
|
+
/**
|
|
53
|
+
* This function creates and returns an array where there is secondsPerPx
|
|
54
|
+
* number of the data set added for a data scale (secondsPerPx)
|
|
55
|
+
* to secondsPerPxToScale.
|
|
56
|
+
* @param secondsPerPx
|
|
57
|
+
* @returns an array containing secondsPerPx numbers.
|
|
58
|
+
* The secondsPerPx number for a data scale is included
|
|
59
|
+
* contrary to secondsPerPxToScale.
|
|
60
|
+
*/
|
|
61
|
+
export declare const secondsPerPxValues: (secondsPerPx: number) => number[];
|
|
62
|
+
export declare const secondsPerPxFromCanvasWidth: (canvasWidth: number, spanInSeconds: number) => number | undefined;
|
|
63
|
+
export declare const getNewCenterOfFixedPointZoom: (fixedTimePoint: number, oldSecondsPerPx: number, newSecondsPerPx: number, oldCenterTime: number) => number;
|
|
64
|
+
/**
|
|
65
|
+
* Move the time slider such that a given time point (timePoint)
|
|
66
|
+
* is at a given pixel width (timePointPx).
|
|
67
|
+
* @returns a new center time for the resulting position
|
|
68
|
+
*/
|
|
69
|
+
export declare const moveRelativeToTimePoint: (timePoint: number, timePointPx: number, secondsPerPx: number, canvasWidth: number) => number;
|
|
70
|
+
/** This reusable custom hook tells whether given pointer event targets current canvas node.
|
|
71
|
+
* Example:
|
|
72
|
+
*
|
|
73
|
+
* const [isAllowedCanvasNodePointed, nodeRef] = useCanvasTarget('mousedown', false);
|
|
74
|
+
* ...
|
|
75
|
+
* return isAllowedCanvasNodePointed ? (<CanvasComponent ref={nodeRef}>Component with ref</CanvasComponent>) : (<CanvasComponent>Component with NO ref</CanvasComponent>);
|
|
76
|
+
* ...
|
|
77
|
+
*/
|
|
78
|
+
export declare const useCanvasTarget: (eventType: string) => [boolean, React.RefObject<CanvasComponent | null>];
|
|
79
|
+
export declare const timeBoxGeom: {
|
|
80
|
+
smallWidth: number;
|
|
81
|
+
largeWidth: number;
|
|
82
|
+
height: number;
|
|
83
|
+
cornerRadius: number;
|
|
84
|
+
lineWidth: number;
|
|
85
|
+
iconWidth: number;
|
|
86
|
+
calendarWidth: number;
|
|
87
|
+
};
|
|
88
|
+
export declare const AUTO_MOVE_AREA_PADDING = 1;
|
|
89
|
+
export declare const getAutoMoveAreaWidth: (scale: Scale) => number;
|
|
90
|
+
export declare enum TimeInMinutes {
|
|
91
|
+
YEAR = 525600,
|
|
92
|
+
MONTH = 43200,
|
|
93
|
+
WEEK = 10080,
|
|
94
|
+
DAY = 1440,
|
|
95
|
+
HOUR = 60,
|
|
96
|
+
MINUTE = 1
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
* @param minutes
|
|
101
|
+
* @returns the two highest values in the format yr(s) mo(s) d h m
|
|
102
|
+
*/
|
|
103
|
+
export declare const minutesToDescribedDuration: (minutes: number) => string;
|
|
104
|
+
/**
|
|
105
|
+
* Returns the largest timeunit value divisible by minuts
|
|
106
|
+
* @param minutes
|
|
107
|
+
* @returns
|
|
108
|
+
*/
|
|
109
|
+
export declare function getLargestTimeUnit(minutes: number): number;
|
|
110
|
+
export declare const getFundamentalScale: (secondsPerPx: number) => Scale;
|
|
111
|
+
export declare const getScaleFromSpan: (span: number) => Scale;
|
|
112
|
+
export declare const calculateMouseTimeAndCheckBounds: (x: number, startAnimationPosition: number, endAnimationPosition: number, DRAG_AREA_WIDTH: number, pixelsBetweenViewportAndTimesliderOnLeft: number | undefined, centerTime: number, canvasWidth: number, secondsPerPx: number, tooltipPosition: React.RefObject<number | undefined>) => number | undefined;
|
|
113
|
+
export declare const defaultAnimationDelayAtStart = 250;
|
|
114
|
+
export declare const defaultDelay = 1000;
|
|
115
|
+
export declare const defaultTimeStep = 60;
|
|
116
|
+
export declare const defaultSecondsPerPx = 80;
|
|
117
|
+
export declare const defaultTimeSpan: number;
|
|
118
|
+
export declare const speedFactors: SpeedFactorType[];
|
|
119
|
+
export declare const roundWithTimeStep: (unixTime: number, timeStep: number, type?: string) => number;
|
|
120
|
+
/**
|
|
121
|
+
* Returns speed delay for given speedFactor. For options, see defined above in "speedFactors"
|
|
122
|
+
*/
|
|
123
|
+
export declare const getSpeedDelay: (speedFactor: SpeedFactorType) => number;
|
|
124
|
+
export declare const timeSliderLegendDefaultProps: {
|
|
125
|
+
timeSliderWidth: number;
|
|
126
|
+
centerTime: number;
|
|
127
|
+
secondsPerPx: number;
|
|
128
|
+
selectedTime: number;
|
|
129
|
+
};
|
package/dist/src/lib/components/TimeSliderButtons/AnimationLengthButton/AnimationLengthButton.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AnimationLength } from '../../TimeSlider/timeSliderUtils';
|
|
3
|
+
interface AnimationLengthButtonProps {
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
animationLength?: AnimationLength;
|
|
6
|
+
isAuto?: boolean;
|
|
7
|
+
layerHasTimeStep?: boolean;
|
|
8
|
+
onChangeAnimationLength?: (length: number) => void;
|
|
9
|
+
toggleAnimationLengthAuto?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const AnimationLengthButton: ({ disabled, animationLength, isAuto, layerHasTimeStep, onChangeAnimationLength, toggleAnimationLengthAuto, }: AnimationLengthButtonProps) => React.ReactElement;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
interface OptionsMenuButtonProps {
|
|
4
|
+
speedBtn?: React.ReactNode;
|
|
5
|
+
timeStepBtn?: React.ReactNode;
|
|
6
|
+
timeSpanBtn?: React.ReactNode;
|
|
7
|
+
animationLengthBtn?: React.ReactNode;
|
|
8
|
+
isOpenByDefault?: boolean;
|
|
9
|
+
enableKeyboardShortcut?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const OptionsMenuButton: FC<OptionsMenuButtonProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TimeStepDirection = 'up' | 'down';
|
|
3
|
+
export declare const getTimeStepShortcutDirection: (event: KeyboardEvent | React.KeyboardEvent) => TimeStepDirection | null;
|
|
4
|
+
export interface TimeStepShortcutContextValue {
|
|
5
|
+
pendingDirection: TimeStepDirection | null;
|
|
6
|
+
consume: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const TimeStepShortcutContext: React.Context<TimeStepShortcutContextValue | null>;
|
|
9
|
+
export declare const useTimeStepShortcutListener: (enabled: boolean, onShortcut: (direction: TimeStepDirection) => void) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimeSliderButtonsProps {
|
|
3
|
+
optionsMenuBtn?: React.ReactNode;
|
|
4
|
+
playBtn?: React.ReactNode;
|
|
5
|
+
backwardBtn?: React.ReactNode;
|
|
6
|
+
forwardBtn?: React.ReactNode;
|
|
7
|
+
nowBtn?: React.ReactNode;
|
|
8
|
+
autoUpdateBtn?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare const TimeSliderButtons: React.FC<TimeSliderButtonsProps>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface Mark {
|
|
3
|
+
label?: string;
|
|
4
|
+
value: number;
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TimeSliderMenuProps {
|
|
8
|
+
marks: Mark[];
|
|
9
|
+
value: number;
|
|
10
|
+
title: string;
|
|
11
|
+
icon: React.ReactElement;
|
|
12
|
+
allOptionsDisabled?: boolean;
|
|
13
|
+
isAutoDisabled?: boolean;
|
|
14
|
+
handleAutoClick?: () => void;
|
|
15
|
+
isAutoSelected?: boolean;
|
|
16
|
+
onChangeSliderValue?: (markValue: number) => void;
|
|
17
|
+
setOpen: (display: boolean) => void;
|
|
18
|
+
open: boolean;
|
|
19
|
+
displayCurrentLength?: boolean;
|
|
20
|
+
disbleUserSetDuration?: boolean;
|
|
21
|
+
customLengthSelector?: React.ReactNode;
|
|
22
|
+
customFieldHeader?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const TimeSliderMenu: ({ marks, value, allOptionsDisabled, isAutoDisabled, handleAutoClick, isAutoSelected, title, icon, onChangeSliderValue, displayCurrentLength, disbleUserSetDuration, customLengthSelector, setOpen, customFieldHeader, open, }: TimeSliderMenuProps) => React.ReactElement;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const marks: {
|
|
3
|
+
value: number;
|
|
4
|
+
text: string;
|
|
5
|
+
count: number;
|
|
6
|
+
}[];
|
|
7
|
+
interface TimeSpanButtonProps {
|
|
8
|
+
timeSliderSpan: number;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
onChangeSliderValue?: (markValue: number) => void;
|
|
11
|
+
onToggleTimeSpan?: () => void;
|
|
12
|
+
isTimeSpanAuto: boolean;
|
|
13
|
+
isOpenByDefault?: boolean;
|
|
14
|
+
layerHasTimeStep?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const TimeSpanButton: ({ timeSliderSpan, disabled, onChangeSliderValue, onToggleTimeSpan, isTimeSpanAuto, isOpenByDefault, layerHasTimeStep, }: TimeSpanButtonProps) => React.ReactElement;
|
|
17
|
+
export {};
|
package/dist/src/lib/components/TimeSliderButtons/TimeSpanButton/TimeSpanButtonCustomSelect.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimeSpanButtonCustomSelectProps {
|
|
3
|
+
timeSliderSpan: number;
|
|
4
|
+
setOpen: (display: boolean) => void;
|
|
5
|
+
onChangeSliderValue: (value: number) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const TimeSpanButtonCustomSelect: React.FC<TimeSpanButtonCustomSelectProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimeStepButtonProps {
|
|
3
|
+
timeStep?: number;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
isTimestepAuto?: boolean;
|
|
6
|
+
onChangeTimeStep: (step: number) => void;
|
|
7
|
+
onToggleTimestepAuto?: () => void;
|
|
8
|
+
isOpenByDefault?: boolean;
|
|
9
|
+
timeStepFromLayer?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const TimeStepButton: React.FC<TimeStepButtonProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './AnimationLengthButton/AnimationLengthButton';
|
|
2
|
+
export * from './AutoUpdateButton/AutoUpdateButton';
|
|
3
|
+
export * from './BackwardForwardStepButton/BackwardForwardStepButton';
|
|
4
|
+
export * from './ControlButtons/ControlButtons';
|
|
5
|
+
export * from './HideSliderButton/HideSliderButton';
|
|
6
|
+
export * from './NowButton/NowButton';
|
|
7
|
+
export * from './OptionsMenuButton';
|
|
8
|
+
export * from './PlayButton/PlayButton';
|
|
9
|
+
export * from './SpeedButton/SpeedButton';
|
|
10
|
+
export * from './TimeSliderMenu/TimeSliderMenu';
|
|
11
|
+
export * from './TimeSpanButton/TimeSpanButton';
|
|
12
|
+
export * from './TimeStepButton/TimeStepButton';
|
|
13
|
+
export * from './TimeSliderButtons';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
interface CalendarButtonProps {
|
|
3
|
+
calendarIconPx: number;
|
|
4
|
+
dataStartTime: number | undefined;
|
|
5
|
+
dataEndTime: number | undefined;
|
|
6
|
+
selectedTime?: number;
|
|
7
|
+
onSelect?: (value: number | null) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const CalendarButton: FC<CalendarButtonProps>;
|
|
10
|
+
export {};
|
package/dist/src/lib/components/TimeSliderCurrentTimeBox/MarkerTimeSelector/MarkerTimeSelector.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
export interface MarkerTimeSelectorProps {
|
|
3
|
+
value?: number;
|
|
4
|
+
dataStartTime?: number;
|
|
5
|
+
dataEndTime?: number;
|
|
6
|
+
onSelect?: (value: number | null) => void;
|
|
7
|
+
onCancel?: () => void;
|
|
8
|
+
format?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const enabledButUnSelectedButtonStyle: {
|
|
11
|
+
backgroundColor: string;
|
|
12
|
+
borderWidth: string;
|
|
13
|
+
borderBottomStyle: string;
|
|
14
|
+
borderRadius: number;
|
|
15
|
+
borderColor: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const disabledButtonStyle: {
|
|
18
|
+
borderColor: string;
|
|
19
|
+
backgroundColor: string;
|
|
20
|
+
borderWidth: string;
|
|
21
|
+
borderBottomStyle: string;
|
|
22
|
+
borderRadius: number;
|
|
23
|
+
};
|
|
24
|
+
export declare const MarkerTimeSelector: FC<MarkerTimeSelectorProps>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimeSliderCurrentTimeBoxProps {
|
|
3
|
+
centerTime: number;
|
|
4
|
+
secondsPerPx: number;
|
|
5
|
+
span?: number;
|
|
6
|
+
dataStartTime?: number;
|
|
7
|
+
dataEndTime?: number;
|
|
8
|
+
timeStep?: number;
|
|
9
|
+
unfilteredSelectedTime: number;
|
|
10
|
+
linkedMapAnimationInfo?: {
|
|
11
|
+
id: string;
|
|
12
|
+
isAnimating: boolean;
|
|
13
|
+
};
|
|
14
|
+
isAutoUpdating?: boolean;
|
|
15
|
+
setUnfilteredSelectedTime: (unfilteredSelectedTime: number) => void;
|
|
16
|
+
onCalendarSelect: (newTime: number) => void;
|
|
17
|
+
onSetCenterTime?: (newTime: number) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const getTimeBoxWidth: (span: number) => number;
|
|
20
|
+
export declare const TimeSliderCurrentTimeBox: React.FC<TimeSliderCurrentTimeBoxProps>;
|
package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBoxMouseEvents.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const onMouseMove: (x: number, width: number, selectedTime: number, centerTime: number, secondsPerPx: number, mouseDownInTimeBox: boolean, isTimeBoxArea: (location: number, timePx: number) => boolean, setCursorStyle: (style: string) => void) => void;
|
|
2
|
+
export declare const onMouseDown: (x: number, width: number, selectedTime: number, centerTime: number, secondsPerPx: number, isTimeBoxArea: (location: number, timePx: number) => boolean, setCursorStyle: (style: string) => void, setMouseDownInTimeBox: (dragging: boolean) => void) => void;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Theme } from '@mui/material';
|
|
2
|
+
export declare const secondsInYear: number;
|
|
3
|
+
export declare const renderTimeSliderCurrentTimeBox: (ctx: CanvasRenderingContext2D, theme: Theme, width: number, height: number, centerTime: number, selected: number, secondsPerPx: number, span: number, isAutoUpdating: boolean) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TimeSliderCurrentTimeBox';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimeSliderLegendProps {
|
|
3
|
+
mapId: string;
|
|
4
|
+
isTimeScrollingEnabled?: boolean;
|
|
5
|
+
mapWindowRef?: React.RefObject<HTMLElement | null>;
|
|
6
|
+
centerTime: number;
|
|
7
|
+
timeSliderWidth: number;
|
|
8
|
+
secondsPerPx: number;
|
|
9
|
+
currentTime?: number;
|
|
10
|
+
dataStartTime?: number;
|
|
11
|
+
dataEndTime?: number;
|
|
12
|
+
reduxAnimationStartTime?: string;
|
|
13
|
+
reduxAnimationEndTime?: string;
|
|
14
|
+
isTimeSliderHoverOn?: boolean;
|
|
15
|
+
timeStep?: number;
|
|
16
|
+
unfilteredSelectedTime?: number;
|
|
17
|
+
timeSliderSpan?: number;
|
|
18
|
+
setUnfilteredSelectedTime?: (unfilteredSelectedTime: number) => void;
|
|
19
|
+
onSetCenterTime?: (newTime: number) => void;
|
|
20
|
+
onSetAnimationStartTime?: (time: string) => void;
|
|
21
|
+
onSetAnimationEndTime?: (time: string) => void;
|
|
22
|
+
updateCanvasWidth?: (storeWidth: number, newWidth: number) => void;
|
|
23
|
+
isDraggingStartAnimation?: boolean;
|
|
24
|
+
setIsDraggingStartAnimation?: (isDraggingStartAnimation: boolean) => void;
|
|
25
|
+
isDraggingEndAnimation?: boolean;
|
|
26
|
+
setIsDraggingEndAnimation?: (isDraggingEndAnimation: boolean) => void;
|
|
27
|
+
onStartTimeChange?: (startTime: number) => void;
|
|
28
|
+
onEndTimeChange?: (endTime: number) => void;
|
|
29
|
+
onSetTimeSliderSpan?: (newSpan: number, newCenterTime: number) => void;
|
|
30
|
+
adjustSelectedTimeOnWheel?: ({ event, deltaY, }: {
|
|
31
|
+
event: WheelEvent | KeyboardEvent;
|
|
32
|
+
deltaY: number;
|
|
33
|
+
}) => void;
|
|
34
|
+
}
|
|
35
|
+
export declare const TimeSliderLegend: React.FC<TimeSliderLegendProps>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Theme } from '@mui/material';
|
|
2
|
+
import { Scale } from '../../TimeSlider/timeSliderUtils';
|
|
3
|
+
export declare const drawBackground: (context: CanvasRenderingContext2D, theme: Theme, visibleTimeStart: number, visibleTimeEnd: number, animationStartPx: number, animationEndPx: number, canvasWidth: number, height: number, secondsPerPx: number, timeSliderSpan: number, dataStartPx: number, dataEndPx: number, currentTimePx: number) => void;
|
|
4
|
+
export declare function getColorChangeTimesteps(scale: Scale, visibleTimeStart: number, visibleTimeEnd: number): number[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Theme } from '@mui/material';
|
|
2
|
+
import { Scale } from '../../TimeSlider/timeSliderUtils';
|
|
3
|
+
export declare const roundByUnitOfTime: (timeUnix: number, unit: string, roundUp?: boolean) => number;
|
|
4
|
+
export declare const getRoundedStartAndEnd: (visibleTimeStart: number, visibleTimeEnd: number, scale: Scale) => [number, number];
|
|
5
|
+
export declare const getCustomRoundedStartAndEnd: (visibleTimeStart: number, visibleTimeEnd: number, unit: Scale) => [number, number];
|
|
6
|
+
export declare const getCustomTimesteps: (roundedStart: number, roundedEnd: number, increment: string) => number[];
|
|
7
|
+
export declare const drawTimeScale: (context: CanvasRenderingContext2D, theme: Theme, visibleTimeStart: number, visibleTimeEnd: number, canvasWidth: number, height: number, secondsPerPx: number) => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { Theme } from '@mui/material';
|
|
2
|
+
export declare const drawTimeSliderLegend: (context: CanvasRenderingContext2D, theme: Theme, canvasWidth: number, height: number, centerTime: number, secondsPerPx: number, timeSliderSpan: number, selectedTimeUnix: number, currentTimeUnix: number, animationStartTime: number, animationEndTime: number, dataStartTime: number, dataEndTime: number) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { drawTimeSliderLegend } from './drawTimeSliderLegend';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TimeSliderLegend';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param x The pin location
|
|
3
|
+
* @param selectedTimePx The selected px
|
|
4
|
+
* @param width The default width of a hoverable icon (usually 24px)
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare const isSelectedTimeIconArea: (x: number, selectedTimePx: number, width: number) => boolean;
|
|
8
|
+
/**
|
|
9
|
+
* @param x The pin location
|
|
10
|
+
* @param selectedTimePx The selected px
|
|
11
|
+
* @param width The default width of a hoverable icon (usually 24px)
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare const isRightAnimationIconArea: (x: number, rightMarkerPx: number, width: number) => boolean;
|
|
15
|
+
export declare const isInsideAnimationArea: (x: number, leftMarkerPx: number, rightMarkerPx: number) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* @param x The pin location
|
|
18
|
+
* @param selectedTimePx The selected px
|
|
19
|
+
* @param width The default width of a hoverable icon (usually 24px)
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare const isLeftAnimationIconArea: (x: number, leftMarkerPx: number, width: number) => boolean;
|
|
23
|
+
export declare function convertStringTimeToUnix(time: string | undefined): number | undefined;
|
|
24
|
+
export declare const timeValues: number[];
|
|
25
|
+
export declare const TIME_SLIDER_LEGEND_HEIGHT = 24;
|
|
26
|
+
export declare const DRAG_AREA_WIDTH = 24;
|
|
27
|
+
export type ShowTooltip = 'animationStart' | 'animationEnd' | 'mousePointer' | undefined;
|
|
28
|
+
export declare const isDraggingStartWithinBounds: (endPos: number, mousePosition: number) => boolean;
|
|
29
|
+
export declare const isDraggingEndWithinBounds: (startPos: number, mousePosition: number, canvasWidth: number) => boolean;
|
|
30
|
+
export declare const getTimeSliderLegendId: (mapId: string) => string;
|
|
31
|
+
export declare const getTimeSliderLegendElement: (mapId: string) => Element | null;
|
|
32
|
+
export declare const getPixelsBetweenViewportAndTimesliderOnLeft: (mapId: string) => number | undefined;
|
|
33
|
+
export declare function getPositions(width: number, unfilteredSelectedTime: number | undefined, centerTime: number, secondsPerPx: number, start: number, end: number): {
|
|
34
|
+
startAnimationPosition: number;
|
|
35
|
+
endAnimationPosition: number;
|
|
36
|
+
selectedTimePosition: number;
|
|
37
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import i18n from 'i18next';
|
|
2
|
+
import type { UseTranslationResponse } from 'react-i18next';
|
|
3
|
+
export declare const TIME_SLIDER_NAMESPACE = "timeslider";
|
|
4
|
+
export declare const initTimesliderI18n: () => void;
|
|
5
|
+
export declare const translateInTestsAndStories: (key: string, params?: Record<string, string | number> | undefined) => string;
|
|
6
|
+
export declare const useTimesliderTranslation: () => UseTranslationResponse<typeof TIME_SLIDER_NAMESPACE, typeof i18n>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/time-slider",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.2.0",
|
|
4
4
|
"description": "GeoWeb time-slider library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"files": [
|
|
41
41
|
"dist",
|
|
42
|
+
"!dist/package.json",
|
|
42
43
|
"README.md",
|
|
43
44
|
"package.json"
|
|
44
45
|
]
|