@spider-analyzer/timeline 4.0.2 → 5.0.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 (76) hide show
  1. package/CHANGELOG.md +70 -1
  2. package/README.md +275 -637
  3. package/dist/index.d.mts +132 -0
  4. package/dist/index.d.ts +132 -0
  5. package/dist/index.js +2913 -22
  6. package/dist/index.js.map +1 -0
  7. package/dist/index.mjs +2906 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/timeline-EX2XZ6IP.css +139 -0
  10. package/package.json +48 -15
  11. package/src/Cursor.jsx +5 -13
  12. package/src/TimeLine.tsx +994 -0
  13. package/src/TimeLineResizer.jsx +2 -8
  14. package/src/ToolTip.jsx +7 -7
  15. package/src/cursorElements/CursorIcon.jsx +6 -29
  16. package/src/cursorElements/CursorSelection.jsx +4 -19
  17. package/src/cursorElements/DragOverlay.jsx +2 -12
  18. package/src/cursorElements/LeftHandle.jsx +3 -19
  19. package/src/cursorElements/LeftToolTip.jsx +2 -7
  20. package/src/cursorElements/RightHandle.jsx +3 -19
  21. package/src/cursorElements/RightToolTip.jsx +4 -13
  22. package/src/cursorElements/ZoomIn.jsx +5 -25
  23. package/src/cursorElements/ZoomOut.jsx +4 -21
  24. package/src/cursorElements/utils.js +1 -1
  25. package/src/index.js +6 -0
  26. package/src/index.ts +158 -0
  27. package/src/moment-shim.ts +169 -0
  28. package/src/styles.ts +15 -0
  29. package/src/time.ts +52 -0
  30. package/src/timeLineElements/Button.jsx +5 -30
  31. package/src/timeLineElements/HistoToolTip.jsx +3 -17
  32. package/src/timeLineElements/Histogram.jsx +4 -16
  33. package/src/timeLineElements/Legend.jsx +2 -16
  34. package/src/timeLineElements/QualityLine.jsx +4 -11
  35. package/src/timeLineElements/Tools.jsx +1 -1
  36. package/src/timeLineElements/XAxis.jsx +5 -8
  37. package/src/timeLineElements/XGrid.jsx +3 -7
  38. package/src/timeLineElements/YAxis.jsx +4 -7
  39. package/src/timeLineElements/YGrid.jsx +2 -6
  40. package/src/timeLineElements/axesStyles.jsx +0 -49
  41. package/src/timeline.css +139 -0
  42. package/src/utils.ts +60 -0
  43. package/.babelrc +0 -8
  44. package/.gitlab-ci.yml +0 -27
  45. package/Makefile +0 -20
  46. package/dist/Cursor.js +0 -290
  47. package/dist/TimeLine.js +0 -1173
  48. package/dist/TimeLineResizer.js +0 -70
  49. package/dist/ToolTip.js +0 -43
  50. package/dist/cursorElements/CursorIcon.js +0 -98
  51. package/dist/cursorElements/CursorSelection.js +0 -179
  52. package/dist/cursorElements/DragOverlay.js +0 -168
  53. package/dist/cursorElements/LeftHandle.js +0 -95
  54. package/dist/cursorElements/LeftToolTip.js +0 -70
  55. package/dist/cursorElements/RightHandle.js +0 -95
  56. package/dist/cursorElements/RightToolTip.js +0 -75
  57. package/dist/cursorElements/ZoomIn.js +0 -93
  58. package/dist/cursorElements/ZoomOut.js +0 -67
  59. package/dist/cursorElements/commonStyles.js +0 -28
  60. package/dist/cursorElements/handleHistoHovering.js +0 -79
  61. package/dist/cursorElements/utils.js +0 -30
  62. package/dist/theme.js +0 -59
  63. package/dist/timeLineElements/Button.js +0 -101
  64. package/dist/timeLineElements/HistoToolTip.js +0 -78
  65. package/dist/timeLineElements/Histogram.js +0 -110
  66. package/dist/timeLineElements/Legend.js +0 -70
  67. package/dist/timeLineElements/QualityLine.js +0 -81
  68. package/dist/timeLineElements/Tools.js +0 -115
  69. package/dist/timeLineElements/XAxis.js +0 -76
  70. package/dist/timeLineElements/XGrid.js +0 -47
  71. package/dist/timeLineElements/YAxis.js +0 -60
  72. package/dist/timeLineElements/YGrid.js +0 -46
  73. package/dist/timeLineElements/axesStyles.js +0 -57
  74. package/src/TimeLine.jsx +0 -1158
  75. package/src/cursorElements/commonStyles.js +0 -21
  76. /package/dist/{tipDark.css → tipDark-BQEJ43KY.css} +0 -0
@@ -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 };
@@ -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 };