@spider-analyzer/timeline 4.0.3 → 5.0.1
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/CHANGELOG.md +80 -1
- package/README.md +275 -637
- package/dist/index.d.mts +132 -0
- package/dist/index.d.ts +132 -0
- package/dist/index.js +2913 -22
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2906 -0
- package/dist/index.mjs.map +1 -0
- package/dist/timeline.css +139 -0
- package/package.json +52 -15
- package/src/Cursor.jsx +5 -13
- package/src/TimeLine.tsx +994 -0
- package/src/TimeLineResizer.jsx +2 -8
- package/src/ToolTip.jsx +7 -7
- package/src/cursorElements/CursorIcon.jsx +6 -29
- package/src/cursorElements/CursorSelection.jsx +4 -19
- package/src/cursorElements/DragOverlay.jsx +2 -12
- package/src/cursorElements/LeftHandle.jsx +3 -19
- package/src/cursorElements/LeftToolTip.jsx +2 -7
- package/src/cursorElements/RightHandle.jsx +3 -19
- package/src/cursorElements/RightToolTip.jsx +4 -13
- package/src/cursorElements/ZoomIn.jsx +5 -25
- package/src/cursorElements/ZoomOut.jsx +4 -21
- package/src/cursorElements/utils.js +1 -1
- package/src/index.js +6 -0
- package/src/index.ts +158 -0
- package/src/moment-shim.ts +169 -0
- package/src/styles.ts +15 -0
- package/src/time.ts +52 -0
- package/src/timeLineElements/Button.jsx +5 -30
- package/src/timeLineElements/HistoToolTip.jsx +3 -17
- package/src/timeLineElements/Histogram.jsx +4 -16
- package/src/timeLineElements/Legend.jsx +2 -16
- package/src/timeLineElements/QualityLine.jsx +4 -11
- package/src/timeLineElements/Tools.jsx +1 -1
- package/src/timeLineElements/XAxis.jsx +5 -8
- package/src/timeLineElements/XGrid.jsx +3 -7
- package/src/timeLineElements/YAxis.jsx +4 -7
- package/src/timeLineElements/YGrid.jsx +2 -6
- package/src/timeLineElements/axesStyles.jsx +0 -49
- package/src/timeline.css +139 -0
- package/src/utils.ts +60 -0
- package/.babelrc +0 -8
- package/.gitlab-ci.yml +0 -27
- package/Makefile +0 -20
- package/dist/Cursor.js +0 -290
- package/dist/TimeLine.js +0 -1177
- package/dist/TimeLineResizer.js +0 -70
- package/dist/ToolTip.js +0 -43
- package/dist/cursorElements/CursorIcon.js +0 -98
- package/dist/cursorElements/CursorSelection.js +0 -179
- package/dist/cursorElements/DragOverlay.js +0 -168
- package/dist/cursorElements/LeftHandle.js +0 -95
- package/dist/cursorElements/LeftToolTip.js +0 -70
- package/dist/cursorElements/RightHandle.js +0 -95
- package/dist/cursorElements/RightToolTip.js +0 -75
- package/dist/cursorElements/ZoomIn.js +0 -93
- package/dist/cursorElements/ZoomOut.js +0 -67
- package/dist/cursorElements/commonStyles.js +0 -28
- package/dist/cursorElements/handleHistoHovering.js +0 -79
- package/dist/cursorElements/utils.js +0 -30
- package/dist/theme.js +0 -59
- package/dist/timeLineElements/Button.js +0 -101
- package/dist/timeLineElements/HistoToolTip.js +0 -78
- package/dist/timeLineElements/Histogram.js +0 -110
- package/dist/timeLineElements/Legend.js +0 -70
- package/dist/timeLineElements/QualityLine.js +0 -81
- package/dist/timeLineElements/Tools.js +0 -115
- package/dist/timeLineElements/XAxis.js +0 -76
- package/dist/timeLineElements/XGrid.js +0 -47
- package/dist/timeLineElements/YAxis.js +0 -60
- package/dist/timeLineElements/YGrid.js +0 -46
- package/dist/timeLineElements/axesStyles.js +0 -57
- package/src/TimeLine.jsx +0 -1163
- package/src/cursorElements/commonStyles.js +0 -21
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { ComponentType, ReactNode, Ref } from 'react';
|
|
2
|
+
|
|
3
|
+
interface Domain {
|
|
4
|
+
min: Date;
|
|
5
|
+
max: Date;
|
|
6
|
+
}
|
|
7
|
+
interface TimeSpan {
|
|
8
|
+
start: Date;
|
|
9
|
+
stop: Date;
|
|
10
|
+
}
|
|
11
|
+
interface HistoItem {
|
|
12
|
+
time: Date;
|
|
13
|
+
metrics: number[];
|
|
14
|
+
total: number;
|
|
15
|
+
}
|
|
16
|
+
interface Histo {
|
|
17
|
+
items: HistoItem[];
|
|
18
|
+
intervalMs: number | null;
|
|
19
|
+
}
|
|
20
|
+
interface QualityItem {
|
|
21
|
+
time: Date;
|
|
22
|
+
quality: number;
|
|
23
|
+
tip?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
interface Quality {
|
|
26
|
+
items: QualityItem[];
|
|
27
|
+
intervalMin?: number;
|
|
28
|
+
}
|
|
29
|
+
interface MetricsDefinition {
|
|
30
|
+
count: number;
|
|
31
|
+
legends: string[];
|
|
32
|
+
colors: Array<{
|
|
33
|
+
fill: string;
|
|
34
|
+
stroke: string;
|
|
35
|
+
text: string;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
interface TimeLineTools {
|
|
39
|
+
slideForward?: boolean;
|
|
40
|
+
slideBackward?: boolean;
|
|
41
|
+
resetTimeline?: boolean;
|
|
42
|
+
gotoNow?: boolean;
|
|
43
|
+
cursor?: boolean;
|
|
44
|
+
zoomIn?: boolean;
|
|
45
|
+
zoomOut?: boolean;
|
|
46
|
+
}
|
|
47
|
+
interface AxisConfig {
|
|
48
|
+
spaceBetweenTicks?: number;
|
|
49
|
+
barsBetweenTicks?: number;
|
|
50
|
+
height?: number;
|
|
51
|
+
showGrid?: boolean;
|
|
52
|
+
}
|
|
53
|
+
interface MarginConfig {
|
|
54
|
+
top?: number;
|
|
55
|
+
bottom?: number;
|
|
56
|
+
left?: number;
|
|
57
|
+
right?: number;
|
|
58
|
+
}
|
|
59
|
+
interface TimeLineHandle {
|
|
60
|
+
zoomIn(): void;
|
|
61
|
+
zoomOut(): void;
|
|
62
|
+
shiftTimeLine(delta: number): void;
|
|
63
|
+
}
|
|
64
|
+
interface TimeLineProps {
|
|
65
|
+
className?: string;
|
|
66
|
+
classes?: Record<string, string>;
|
|
67
|
+
rcToolTipPrefixCls?: string;
|
|
68
|
+
timeSpan: TimeSpan;
|
|
69
|
+
histo: Histo;
|
|
70
|
+
quality?: Quality;
|
|
71
|
+
/**
|
|
72
|
+
* The currently-visible window, controlled by the host.
|
|
73
|
+
* Pass `null` on first render if you don't have a default yet — the
|
|
74
|
+
* component will call `onLoadDefaultDomain()` and wait for its result.
|
|
75
|
+
*
|
|
76
|
+
* Zoom-out undo is handled internally; the host only needs to observe
|
|
77
|
+
* `onDomainChange` and re-render with whatever domain it wants.
|
|
78
|
+
*/
|
|
79
|
+
domain: Domain | null;
|
|
80
|
+
maxDomain?: Domain;
|
|
81
|
+
metricsDefinition: MetricsDefinition;
|
|
82
|
+
/** IANA time-zone name (e.g. "UTC", "Europe/Paris"). Required. */
|
|
83
|
+
timeZone?: string;
|
|
84
|
+
zoomOutFactor?: number;
|
|
85
|
+
/** Maximum visible duration, in milliseconds. */
|
|
86
|
+
biggestVisibleDomain?: number;
|
|
87
|
+
/** Maximum selectable duration, in milliseconds. */
|
|
88
|
+
biggestTimeSpan?: number;
|
|
89
|
+
/** Smallest zoom step (15 px == this value), in milliseconds. */
|
|
90
|
+
smallestResolution?: number;
|
|
91
|
+
tools?: TimeLineTools;
|
|
92
|
+
fetchWhileSliding?: boolean;
|
|
93
|
+
selectBarOnClick?: boolean;
|
|
94
|
+
showHistoToolTip?: boolean;
|
|
95
|
+
xAxis?: AxisConfig;
|
|
96
|
+
yAxis?: AxisConfig;
|
|
97
|
+
margin?: MarginConfig;
|
|
98
|
+
labels?: Record<string, unknown>;
|
|
99
|
+
/** Called on mount when `domain` is null. Return (sync or Promise) the
|
|
100
|
+
* default domain; the component seeds its internal stack from it and
|
|
101
|
+
* fires `onDomainChange` once resolved.
|
|
102
|
+
*/
|
|
103
|
+
onLoadDefaultDomain(): Domain | Promise<Domain> | void;
|
|
104
|
+
/** Called whenever the component needs histogram data for a window. */
|
|
105
|
+
onLoadHisto(args: {
|
|
106
|
+
intervalMs: number;
|
|
107
|
+
start: Date;
|
|
108
|
+
end: Date;
|
|
109
|
+
}): void;
|
|
110
|
+
/** Called when the cursor selection changes (resize, drag, draw, goto). */
|
|
111
|
+
onTimeSpanChange(span: TimeSpan): void;
|
|
112
|
+
onShowMessage(message: ReactNode): void;
|
|
113
|
+
/** Called when the visible domain changes — zoom in/out, pan, or edge shift. */
|
|
114
|
+
onDomainChange(domain: Domain): void;
|
|
115
|
+
onResetTime(): void;
|
|
116
|
+
onFormatTimeToolTips(time: Date): ReactNode;
|
|
117
|
+
onFormatTimeLegend(time: Date): string;
|
|
118
|
+
onFormatMetricLegend(value: number): string;
|
|
119
|
+
}
|
|
120
|
+
interface TimeLineResizerProps extends TimeLineProps {
|
|
121
|
+
}
|
|
122
|
+
type TimeLineComponent = ComponentType<TimeLineProps & {
|
|
123
|
+
ref?: Ref<TimeLineHandle>;
|
|
124
|
+
}>;
|
|
125
|
+
type TimeLineResizerComponent = ComponentType<TimeLineResizerProps & {
|
|
126
|
+
ref?: Ref<TimeLineHandle>;
|
|
127
|
+
}>;
|
|
128
|
+
declare const _TimeLine: TimeLineComponent;
|
|
129
|
+
declare const _TimeLineResizer: TimeLineResizerComponent;
|
|
130
|
+
declare const _Cursor: ComponentType<Record<string, unknown>>;
|
|
131
|
+
|
|
132
|
+
export { type AxisConfig, _Cursor as Cursor, type Domain, type Histo, type HistoItem, type MarginConfig, type MetricsDefinition, type Quality, type QualityItem, _TimeLine as TimeLine, type TimeLineHandle, type TimeLineProps, type TimeLineResizerProps, type TimeLineTools, type TimeSpan, _TimeLineResizer as default };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { ComponentType, ReactNode, Ref } from 'react';
|
|
2
|
+
|
|
3
|
+
interface Domain {
|
|
4
|
+
min: Date;
|
|
5
|
+
max: Date;
|
|
6
|
+
}
|
|
7
|
+
interface TimeSpan {
|
|
8
|
+
start: Date;
|
|
9
|
+
stop: Date;
|
|
10
|
+
}
|
|
11
|
+
interface HistoItem {
|
|
12
|
+
time: Date;
|
|
13
|
+
metrics: number[];
|
|
14
|
+
total: number;
|
|
15
|
+
}
|
|
16
|
+
interface Histo {
|
|
17
|
+
items: HistoItem[];
|
|
18
|
+
intervalMs: number | null;
|
|
19
|
+
}
|
|
20
|
+
interface QualityItem {
|
|
21
|
+
time: Date;
|
|
22
|
+
quality: number;
|
|
23
|
+
tip?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
interface Quality {
|
|
26
|
+
items: QualityItem[];
|
|
27
|
+
intervalMin?: number;
|
|
28
|
+
}
|
|
29
|
+
interface MetricsDefinition {
|
|
30
|
+
count: number;
|
|
31
|
+
legends: string[];
|
|
32
|
+
colors: Array<{
|
|
33
|
+
fill: string;
|
|
34
|
+
stroke: string;
|
|
35
|
+
text: string;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
interface TimeLineTools {
|
|
39
|
+
slideForward?: boolean;
|
|
40
|
+
slideBackward?: boolean;
|
|
41
|
+
resetTimeline?: boolean;
|
|
42
|
+
gotoNow?: boolean;
|
|
43
|
+
cursor?: boolean;
|
|
44
|
+
zoomIn?: boolean;
|
|
45
|
+
zoomOut?: boolean;
|
|
46
|
+
}
|
|
47
|
+
interface AxisConfig {
|
|
48
|
+
spaceBetweenTicks?: number;
|
|
49
|
+
barsBetweenTicks?: number;
|
|
50
|
+
height?: number;
|
|
51
|
+
showGrid?: boolean;
|
|
52
|
+
}
|
|
53
|
+
interface MarginConfig {
|
|
54
|
+
top?: number;
|
|
55
|
+
bottom?: number;
|
|
56
|
+
left?: number;
|
|
57
|
+
right?: number;
|
|
58
|
+
}
|
|
59
|
+
interface TimeLineHandle {
|
|
60
|
+
zoomIn(): void;
|
|
61
|
+
zoomOut(): void;
|
|
62
|
+
shiftTimeLine(delta: number): void;
|
|
63
|
+
}
|
|
64
|
+
interface TimeLineProps {
|
|
65
|
+
className?: string;
|
|
66
|
+
classes?: Record<string, string>;
|
|
67
|
+
rcToolTipPrefixCls?: string;
|
|
68
|
+
timeSpan: TimeSpan;
|
|
69
|
+
histo: Histo;
|
|
70
|
+
quality?: Quality;
|
|
71
|
+
/**
|
|
72
|
+
* The currently-visible window, controlled by the host.
|
|
73
|
+
* Pass `null` on first render if you don't have a default yet — the
|
|
74
|
+
* component will call `onLoadDefaultDomain()` and wait for its result.
|
|
75
|
+
*
|
|
76
|
+
* Zoom-out undo is handled internally; the host only needs to observe
|
|
77
|
+
* `onDomainChange` and re-render with whatever domain it wants.
|
|
78
|
+
*/
|
|
79
|
+
domain: Domain | null;
|
|
80
|
+
maxDomain?: Domain;
|
|
81
|
+
metricsDefinition: MetricsDefinition;
|
|
82
|
+
/** IANA time-zone name (e.g. "UTC", "Europe/Paris"). Required. */
|
|
83
|
+
timeZone?: string;
|
|
84
|
+
zoomOutFactor?: number;
|
|
85
|
+
/** Maximum visible duration, in milliseconds. */
|
|
86
|
+
biggestVisibleDomain?: number;
|
|
87
|
+
/** Maximum selectable duration, in milliseconds. */
|
|
88
|
+
biggestTimeSpan?: number;
|
|
89
|
+
/** Smallest zoom step (15 px == this value), in milliseconds. */
|
|
90
|
+
smallestResolution?: number;
|
|
91
|
+
tools?: TimeLineTools;
|
|
92
|
+
fetchWhileSliding?: boolean;
|
|
93
|
+
selectBarOnClick?: boolean;
|
|
94
|
+
showHistoToolTip?: boolean;
|
|
95
|
+
xAxis?: AxisConfig;
|
|
96
|
+
yAxis?: AxisConfig;
|
|
97
|
+
margin?: MarginConfig;
|
|
98
|
+
labels?: Record<string, unknown>;
|
|
99
|
+
/** Called on mount when `domain` is null. Return (sync or Promise) the
|
|
100
|
+
* default domain; the component seeds its internal stack from it and
|
|
101
|
+
* fires `onDomainChange` once resolved.
|
|
102
|
+
*/
|
|
103
|
+
onLoadDefaultDomain(): Domain | Promise<Domain> | void;
|
|
104
|
+
/** Called whenever the component needs histogram data for a window. */
|
|
105
|
+
onLoadHisto(args: {
|
|
106
|
+
intervalMs: number;
|
|
107
|
+
start: Date;
|
|
108
|
+
end: Date;
|
|
109
|
+
}): void;
|
|
110
|
+
/** Called when the cursor selection changes (resize, drag, draw, goto). */
|
|
111
|
+
onTimeSpanChange(span: TimeSpan): void;
|
|
112
|
+
onShowMessage(message: ReactNode): void;
|
|
113
|
+
/** Called when the visible domain changes — zoom in/out, pan, or edge shift. */
|
|
114
|
+
onDomainChange(domain: Domain): void;
|
|
115
|
+
onResetTime(): void;
|
|
116
|
+
onFormatTimeToolTips(time: Date): ReactNode;
|
|
117
|
+
onFormatTimeLegend(time: Date): string;
|
|
118
|
+
onFormatMetricLegend(value: number): string;
|
|
119
|
+
}
|
|
120
|
+
interface TimeLineResizerProps extends TimeLineProps {
|
|
121
|
+
}
|
|
122
|
+
type TimeLineComponent = ComponentType<TimeLineProps & {
|
|
123
|
+
ref?: Ref<TimeLineHandle>;
|
|
124
|
+
}>;
|
|
125
|
+
type TimeLineResizerComponent = ComponentType<TimeLineResizerProps & {
|
|
126
|
+
ref?: Ref<TimeLineHandle>;
|
|
127
|
+
}>;
|
|
128
|
+
declare const _TimeLine: TimeLineComponent;
|
|
129
|
+
declare const _TimeLineResizer: TimeLineResizerComponent;
|
|
130
|
+
declare const _Cursor: ComponentType<Record<string, unknown>>;
|
|
131
|
+
|
|
132
|
+
export { type AxisConfig, _Cursor as Cursor, type Domain, type Histo, type HistoItem, type MarginConfig, type MetricsDefinition, type Quality, type QualityItem, _TimeLine as TimeLine, type TimeLineHandle, type TimeLineProps, type TimeLineResizerProps, type TimeLineTools, type TimeSpan, _TimeLineResizer as default };
|