@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.
Files changed (47) hide show
  1. package/dist/README.md +11 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.esm.js +3662 -0
  4. package/dist/src/index.d.ts +5 -0
  5. package/dist/src/lib/Providers/Providers.d.ts +8 -0
  6. package/dist/src/lib/Providers/index.d.ts +1 -0
  7. package/dist/src/lib/components/TimeSlider/TimeSlider.d.ts +16 -0
  8. package/dist/src/lib/components/TimeSlider/changeTimeFunctions.d.ts +14 -0
  9. package/dist/src/lib/components/TimeSlider/index.d.ts +4 -0
  10. package/dist/src/lib/components/TimeSlider/timeSliderEffects.d.ts +2 -0
  11. package/dist/src/lib/components/TimeSlider/timeSliderUtils.d.ts +129 -0
  12. package/dist/src/lib/components/TimeSliderButtons/AnimationLengthButton/AnimationLengthButton.d.ts +12 -0
  13. package/dist/src/lib/components/TimeSliderButtons/AutoUpdateButton/AutoUpdateButton.d.ts +8 -0
  14. package/dist/src/lib/components/TimeSliderButtons/BackwardForwardStepButton/BackwardForwardStepButton.d.ts +7 -0
  15. package/dist/src/lib/components/TimeSliderButtons/ControlButtons/ControlButtons.d.ts +8 -0
  16. package/dist/src/lib/components/TimeSliderButtons/HideSliderButton/HideSliderButton.d.ts +6 -0
  17. package/dist/src/lib/components/TimeSliderButtons/NowButton/NowButton.d.ts +7 -0
  18. package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/OptionsMenu.d.ts +8 -0
  19. package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/OptionsMenuButton.d.ts +12 -0
  20. package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/index.d.ts +2 -0
  21. package/dist/src/lib/components/TimeSliderButtons/OptionsMenuButton/optionsMenuShortcut.d.ts +9 -0
  22. package/dist/src/lib/components/TimeSliderButtons/PlayButton/PlayButton.d.ts +7 -0
  23. package/dist/src/lib/components/TimeSliderButtons/SpeedButton/SpeedButton.d.ts +6 -0
  24. package/dist/src/lib/components/TimeSliderButtons/TimeSliderButtons.d.ts +10 -0
  25. package/dist/src/lib/components/TimeSliderButtons/TimeSliderMenu/TimeSliderMenu.d.ts +24 -0
  26. package/dist/src/lib/components/TimeSliderButtons/TimeSpanButton/TimeSpanButton.d.ts +17 -0
  27. package/dist/src/lib/components/TimeSliderButtons/TimeSpanButton/TimeSpanButtonCustomSelect.d.ts +7 -0
  28. package/dist/src/lib/components/TimeSliderButtons/TimeStepButton/TimeStepButton.d.ts +11 -0
  29. package/dist/src/lib/components/TimeSliderButtons/index.d.ts +13 -0
  30. package/dist/src/lib/components/TimeSliderCurrentTimeBox/CalendarButton/CalendarButton.d.ts +10 -0
  31. package/dist/src/lib/components/TimeSliderCurrentTimeBox/MarkerTimeSelector/MarkerTimeSelector.d.ts +24 -0
  32. package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBox.d.ts +20 -0
  33. package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBoxMouseEvents.d.ts +2 -0
  34. package/dist/src/lib/components/TimeSliderCurrentTimeBox/TimeSliderCurrentTimeBoxRenderFunctions.d.ts +3 -0
  35. package/dist/src/lib/components/TimeSliderCurrentTimeBox/index.d.ts +1 -0
  36. package/dist/src/lib/components/TimeSliderLegend/TimeSliderLegend.d.ts +35 -0
  37. package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawBackground.d.ts +4 -0
  38. package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawCurrentTime.d.ts +2 -0
  39. package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawNeedle.d.ts +2 -0
  40. package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawTimeScale.d.ts +7 -0
  41. package/dist/src/lib/components/TimeSliderLegend/drawFunctions/drawTimeSliderLegend.d.ts +2 -0
  42. package/dist/src/lib/components/TimeSliderLegend/drawFunctions/index.d.ts +1 -0
  43. package/dist/src/lib/components/TimeSliderLegend/index.d.ts +1 -0
  44. package/dist/src/lib/components/TimeSliderLegend/timeSliderLegendUtils.d.ts +37 -0
  45. package/dist/src/lib/index.d.ts +5 -0
  46. package/dist/src/lib/utils/i18n.d.ts +6 -0
  47. package/package.json +2 -1
@@ -0,0 +1,5 @@
1
+ import timesliderTranslations from '../locales/timeslider.json';
2
+ export * from './lib';
3
+ export * from './lib/Providers/Providers';
4
+ export { TIME_SLIDER_NAMESPACE } from './lib/utils/i18n';
5
+ export { timesliderTranslations };
@@ -0,0 +1,8 @@
1
+ import type { Theme } from '@mui/material';
2
+ import React from 'react';
3
+ interface BaseProviderProps {
4
+ children?: React.ReactNode;
5
+ theme?: Theme;
6
+ }
7
+ export declare const DemoWrapper: React.FC<BaseProviderProps>;
8
+ export {};
@@ -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,4 @@
1
+ export * from './TimeSlider';
2
+ export * from './timeSliderUtils';
3
+ export * as timeSliderUtils from './timeSliderUtils';
4
+ export * from './changeTimeFunctions';
@@ -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
+ };
@@ -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,8 @@
1
+ import React from 'react';
2
+ interface AutoUpdateButtonProps {
3
+ toggleAutoUpdate?: () => void;
4
+ disabled?: boolean;
5
+ isAutoUpdating?: boolean;
6
+ }
7
+ export declare const AutoUpdateButton: React.FC<AutoUpdateButtonProps>;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface BackwardForwardStepButtonProps {
3
+ isForwardStep?: boolean;
4
+ isDisabled?: boolean;
5
+ onClickBFButton?: () => void;
6
+ }
7
+ export declare const BackwardForwardStepButton: React.FC<BackwardForwardStepButtonProps>;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export declare const ControlButtons: React.FC<{
3
+ backwardBtn?: React.ReactNode;
4
+ forwardBtn?: React.ReactNode;
5
+ playBtn?: React.ReactNode;
6
+ nowBtn?: React.ReactNode;
7
+ autoUpdateBtn?: React.ReactNode;
8
+ }>;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface HideSliderButtonProps {
3
+ isVisible?: boolean;
4
+ toggleTimeSliderIsVisible?: (isVisible: boolean) => void;
5
+ }
6
+ export declare const HideSliderButton: React.NamedExoticComponent<HideSliderButtonProps>;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface NowButtonProps {
3
+ onSetNow?: () => void;
4
+ disabled?: boolean;
5
+ }
6
+ export declare const NowButton: React.FC<NowButtonProps>;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { FC } from 'react';
2
+ import React from 'react';
3
+ export declare const OptionsMenu: FC<{
4
+ timeSpanBtn?: React.ReactNode;
5
+ timeStepBtn?: React.ReactNode;
6
+ speedBtn?: React.ReactNode;
7
+ animationLengthBtn?: React.ReactNode;
8
+ }>;
@@ -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,2 @@
1
+ export * from './OptionsMenu';
2
+ export * from './OptionsMenuButton';
@@ -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,7 @@
1
+ import React from 'react';
2
+ export interface PlayButtonProps {
3
+ isAnimating?: boolean;
4
+ isDisabled?: boolean;
5
+ onTogglePlayButton?: () => void;
6
+ }
7
+ export declare const PlayButton: React.FC<PlayButtonProps>;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface SpeedButtonProps {
3
+ animationDelay: number;
4
+ setMapAnimationDelay: (delay: number) => void;
5
+ }
6
+ export declare const SpeedButton: React.FC<SpeedButtonProps>;
@@ -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 {};
@@ -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 {};
@@ -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>;
@@ -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,2 @@
1
+ import type { Theme } from '@mui/material';
2
+ export declare const drawCurrentTime: (context: CanvasRenderingContext2D, theme: Theme, width: number, height: number, startTime: number, endTime: number, currentTime: number) => void;
@@ -0,0 +1,2 @@
1
+ import type { Theme } from '@mui/material';
2
+ export declare const drawNeedle: (context: CanvasRenderingContext2D, theme: Theme, width: number, height: number, startTime: number, endTime: number, selectedTime: number) => void;
@@ -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,5 @@
1
+ export * from './components/TimeSlider';
2
+ export * from './components/TimeSliderLegend';
3
+ export * from './components/TimeSliderButtons';
4
+ export * from './components/TimeSliderCurrentTimeBox';
5
+ export * from './components/TimeSliderLegend/timeSliderLegendUtils';
@@ -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.1.0",
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
  ]