@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,139 @@
1
+ /* @spider-analyzer/timeline — default stylesheet.
2
+ *
3
+ * Every rule is keyed on a `tl-<slot>` class. Consumers override by
4
+ * passing `classes={{ <slot>: 'my-class' }}` — the component emits
5
+ * `tl-<slot> my-class` together, so any CSS in `.my-class` wins via
6
+ * normal specificity / source order.
7
+ */
8
+
9
+ /* Layout */
10
+ .tl-timelineContainer { width: 100%; height: 100%; }
11
+
12
+ /* Axes / grid */
13
+ .tl-axis { fill: none; stroke: #b4b4b4; stroke-width: 1; }
14
+ .tl-arrow { fill: #b4b4b4; fill-opacity: 1; stroke: #b4b4b4; stroke-width: 1; }
15
+ .tl-now { fill: #545454; stroke: #545454; stroke-width: 1; }
16
+ .tl-grid { stroke: #ececec; stroke-width: 1; }
17
+ .tl-limitMarker { stroke: #b4b4b4; stroke-width: 1; }
18
+ .tl-timeAxisText {
19
+ font-size: 10px;
20
+ font-family: Roboto, sans-serif;
21
+ fill: #b4b4b4;
22
+ text-align: center;
23
+ text-anchor: middle;
24
+ user-select: none;
25
+ }
26
+ .tl-timeAxisDaysText { fill: #545454; }
27
+ .tl-verticalAxisText {
28
+ font-size: 10px;
29
+ font-family: Roboto, sans-serif;
30
+ fill: #b4b4b4;
31
+ text-align: end;
32
+ text-anchor: end;
33
+ user-select: none;
34
+ }
35
+
36
+ /* Legend */
37
+ .tl-legend {
38
+ font-size: 12.5px;
39
+ line-height: 125%;
40
+ font-family: Roboto, sans-serif;
41
+ fill-opacity: 1;
42
+ stroke: none;
43
+ text-align: end;
44
+ text-anchor: end;
45
+ user-select: none;
46
+ }
47
+
48
+ /* Histogram */
49
+ .tl-histoItem { fill-opacity: 1; stroke-width: 1; }
50
+ .tl-histoHovered { stroke-width: 0; fill: #000000; fill-opacity: 0.3; }
51
+
52
+ /* Histo tooltip */
53
+ .tl-innerTipMetrics { margin-top: 4px; }
54
+ .tl-innerTipLeft { margin-right: 4px; display: inline-block; }
55
+ .tl-innerTipRight { display: inline-block; float: right; }
56
+
57
+ /* Quality line */
58
+ .tl-qualityCell { stroke-width: 0; }
59
+
60
+ /* Buttons */
61
+ .tl-buttonGroup { cursor: pointer; }
62
+ .tl-buttonGroupInactive { cursor: not-allowed; }
63
+ .tl-buttonOverShape { fill: transparent; }
64
+ .tl-buttonIcon {
65
+ fill: #b4b4b4; fill-opacity: 1;
66
+ stroke: #b4b4b4; stroke-width: 1; stroke-opacity: 1;
67
+ }
68
+ .tl-buttonIconOver { fill: #ff8080; stroke: #ff8080; }
69
+
70
+ /* Cursor selection */
71
+ .tl-cursorArea {
72
+ fill: #00BCD4;
73
+ fill-opacity: 0.2;
74
+ stroke: #00BCD4;
75
+ stroke-width: 1px;
76
+ stroke-linecap: butt;
77
+ stroke-linejoin: miter;
78
+ stroke-opacity: 1;
79
+ cursor: move;
80
+ transition: fill 0.5s, stroke 0.5s;
81
+ }
82
+ .tl-cursorArea.tl--maxSize { stroke: #00899f; }
83
+
84
+ /* Cursor handles */
85
+ .tl-cursorLeftHandle, .tl-cursorRightHandle {
86
+ fill-opacity: 1;
87
+ stroke-width: 1px;
88
+ transition: r 0.5s;
89
+ r: 4;
90
+ fill: #ffffff;
91
+ stroke: #00BCD4;
92
+ cursor: ew-resize;
93
+ }
94
+ .tl-cursorLeftHandle:hover, .tl-cursorRightHandle:hover { r: 8; }
95
+ .tl-cursorLeftHandle.tl--maxSize { cursor: e-resize; }
96
+ .tl-cursorRightHandle.tl--maxSize { cursor: w-resize; }
97
+ .tl-cursorLeftHandle.tl--outOfView,
98
+ .tl-cursorRightHandle.tl--outOfView {
99
+ fill: #ececec;
100
+ stroke: #b4b4b4;
101
+ }
102
+
103
+ /* Drag overlay */
104
+ .tl-dragOverlay { fill: transparent; fill-opacity: 1; stroke: none; cursor: crosshair; }
105
+
106
+ /* Cursor icon (offscreen indicator) */
107
+ .tl-cursorIconRect { fill: #00bcd4; fill-opacity: 0.25; stroke: #00bcd4; stroke-width: 0.42; }
108
+ .tl-cursorIconCircle { fill: #ffffff; stroke: #00bcd4; stroke-width: 0.52; }
109
+ .tl-cursorIconRectOver { fill: #ff8080; stroke: #e7594f; }
110
+ .tl-cursorIconCircleOver { stroke: #e7594f; }
111
+
112
+ /* Zoom buttons */
113
+ .tl-zoomIn { fill: #00BCD4; fill-opacity: 1; stroke: none; }
114
+ .tl-zoomOut { fill: #ff816b; fill-opacity: 1; stroke: none; }
115
+ .tl-zoomArea { fill: transparent; fill-opacity: 1; stroke: none; }
116
+ .tl-zoomInContainer {
117
+ opacity: 0;
118
+ visibility: hidden;
119
+ transition: opacity 0.5s, visibility 0.5s;
120
+ cursor: pointer;
121
+ }
122
+ .tl-zoomOutContainer { cursor: pointer; }
123
+
124
+ /* Tooltips (cursor start/stop) */
125
+ .tl-toolTipArea { opacity: 0; visibility: hidden; transition: opacity 0.25s, visibility 0.25s; }
126
+ .tl-toolTip {
127
+ fill: #1a1a1a;
128
+ fill-opacity: 0.80;
129
+ stroke: #ffffff;
130
+ stroke-opacity: 1;
131
+ stroke-width: 0.1;
132
+ stroke-miterlimit: 1.3;
133
+ }
134
+ .tl-toolTipText {
135
+ font-size: 12.5px;
136
+ font-family: Roboto, sans-serif;
137
+ fill: #ffffff;
138
+ }
139
+ .tl-toolTipTextRight { text-align: end; text-anchor: end; }
package/src/utils.ts ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Tiny local replacements for the lodash-es helpers the library used.
3
+ * Keeping them in a single file lets us drop lodash-es entirely.
4
+ */
5
+
6
+ export const max = (arr: number[] | undefined): number | undefined =>
7
+ arr && arr.length ? Math.max(...arr) : undefined;
8
+
9
+ export const sum = (arr: number[] | undefined): number =>
10
+ arr ? arr.reduce((acc, v) => acc + v, 0) : 0;
11
+
12
+ export const floor = (n: number, precision = 0): number => {
13
+ const p = Math.pow(10, precision);
14
+ return Math.floor(n * p) / p;
15
+ };
16
+
17
+ export const round = (n: number, precision = 0): number => {
18
+ const p = Math.pow(10, precision);
19
+ return Math.round(n * p) / p;
20
+ };
21
+
22
+ export const clamp = (n: number, lower: number, upper: number): number =>
23
+ Math.max(lower, Math.min(upper, n));
24
+
25
+ export const isFunction = (v: unknown): v is (...args: any[]) => any =>
26
+ typeof v === 'function';
27
+
28
+ // Deep equality for plain objects, arrays, and primitives — covers the
29
+ // shallow `margin` prop comparison we use.
30
+ export function isEqual(a: any, b: any): boolean {
31
+ if (a === b) return true;
32
+ if (a == null || b == null) return false;
33
+ if (typeof a !== 'object' || typeof b !== 'object') return false;
34
+ const ka = Object.keys(a);
35
+ const kb = Object.keys(b);
36
+ if (ka.length !== kb.length) return false;
37
+ for (const k of ka) {
38
+ if (!isEqual(a[k], b[k])) return false;
39
+ }
40
+ return true;
41
+ }
42
+
43
+ // Shallow merge of `...sources` into `target`. Missing keys win from later
44
+ // sources; nested objects get recursively merged too (matching lodash's
45
+ // `merge` for the limited shape we feed it — labels + tools config).
46
+ export function merge<T extends Record<string, any>>(target: T, ...sources: any[]): T {
47
+ for (const src of sources) {
48
+ if (!src || typeof src !== 'object') continue;
49
+ for (const k of Object.keys(src)) {
50
+ const v = src[k];
51
+ if (v && typeof v === 'object' && !Array.isArray(v) &&
52
+ target[k] && typeof target[k] === 'object' && !Array.isArray(target[k])) {
53
+ (target as any)[k] = merge({ ...target[k] }, v);
54
+ } else {
55
+ (target as any)[k] = v;
56
+ }
57
+ }
58
+ }
59
+ return target;
60
+ }
package/.babelrc DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "presets": ["@babel/preset-react", "@babel/env"],
3
- "plugins": [
4
- "@babel/plugin-transform-react-jsx",
5
- "@babel/plugin-proposal-class-properties",
6
- "@babel/plugin-proposal-export-default-from"
7
- ]
8
- }
package/.gitlab-ci.yml DELETED
@@ -1,27 +0,0 @@
1
- image: node:16-alpine
2
-
3
- stages:
4
- - test
5
- - deploy
6
-
7
- test:
8
- stage: test
9
- script:
10
- - cd test
11
- - mkdir -p timeline && cp -rf ../index.js ../package.json ../src timeline
12
- - npm install --force
13
- - npm run build_gui
14
-
15
- pages:
16
- stage: deploy
17
- script:
18
- - cd test
19
- - mkdir -p timeline && cp -rf ../index.js ../package.json ../src timeline
20
- - npm install --force
21
- - npm run build_gui
22
- - mv ./bundle ../public
23
- artifacts:
24
- paths:
25
- - public
26
- only:
27
- - pages
package/Makefile DELETED
@@ -1,20 +0,0 @@
1
- NAME := timeline
2
- NPM_REGISTRY := $(shell npm config get registry)
3
- NPM := npm
4
-
5
- node_modules: package.json ## install node modules
6
- $(NPM) install --quiet --registry=$(NPM_REGISTRY)
7
-
8
- clean: node_modules ## remove node_modules directory
9
- $(NPM) run clean
10
-
11
- build: node_modules ## build dist
12
- $(NPM) run build && printf "\nRemember to:\n - Update \033[36mCHANGELOG.md\033[0m\n - Increase version: \033[36mnpm version major|minor|patch\033[0m\n"
13
-
14
- publish: build ## publish to npm
15
- $(NPM) publish --access public && git push origin --tags
16
-
17
- help: ## display help
18
- @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z._-]+:.*?## / {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
19
-
20
- .DEFAULT_GOAL := help
package/dist/Cursor.js DELETED
@@ -1,290 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = Cursor;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _utils = require("./cursorElements/utils");
11
- var _DragOverlay = _interopRequireDefault(require("./cursorElements/DragOverlay"));
12
- var _ZoomOut = _interopRequireDefault(require("./cursorElements/ZoomOut"));
13
- var _CursorIcon = _interopRequireDefault(require("./cursorElements/CursorIcon"));
14
- var _CursorSelection = _interopRequireDefault(require("./cursorElements/CursorSelection"));
15
- var _LeftHandle = _interopRequireDefault(require("./cursorElements/LeftHandle"));
16
- var _RightHandle = _interopRequireDefault(require("./cursorElements/RightHandle"));
17
- var _ZoomIn = _interopRequireDefault(require("./cursorElements/ZoomIn"));
18
- var _LeftToolTip = _interopRequireDefault(require("./cursorElements/LeftToolTip"));
19
- var _RightToolTip = _interopRequireDefault(require("./cursorElements/RightToolTip"));
20
- var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
26
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
28
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30
- function Cursor(_ref) {
31
- var overlayWidth = _ref.overlayWidth,
32
- overlayHeight = _ref.overlayHeight,
33
- items = _ref.items,
34
- setBarHovered = _ref.setBarHovered,
35
- setToolTipVisible = _ref.setToolTipVisible,
36
- showHistoToolTip = _ref.showHistoToolTip,
37
- tooltipVisible = _ref.tooltipVisible,
38
- barHovered = _ref.barHovered,
39
- dragging = _ref.dragging,
40
- setDragging = _ref.setDragging,
41
- origin = _ref.origin,
42
- height = _ref.height,
43
- startPos = _ref.startPos,
44
- endPos = _ref.endPos,
45
- canZoom = _ref.canZoom,
46
- minZoom = _ref.minZoom,
47
- maxZoom = _ref.maxZoom,
48
- maxSize = _ref.maxSize,
49
- zoomOutLabel = _ref.zoomOutLabel,
50
- zoomOut = _ref.zoomOut,
51
- cursorIsAfterView = _ref.cursorIsAfterView,
52
- cursorIsBeforeView = _ref.cursorIsBeforeView,
53
- gotoCursorLabel = _ref.gotoCursorLabel,
54
- onGotoCursor = _ref.onGotoCursor,
55
- rcToolTipPrefixCls = _ref.rcToolTipPrefixCls,
56
- classes = _ref.classes,
57
- onStartDrawCursor = _ref.onStartDrawCursor,
58
- onDrawCursor = _ref.onDrawCursor,
59
- onEndCursor = _ref.onEndCursor,
60
- onMoveDomain = _ref.onMoveDomain,
61
- onMovedDomain = _ref.onMovedDomain,
62
- onDragCursor = _ref.onDragCursor,
63
- onEndDragCursor = _ref.onEndDragCursor,
64
- startText = _ref.startText,
65
- stopText = _ref.stopText,
66
- zoomInLabel = _ref.zoomInLabel,
67
- zoomIn = _ref.zoomIn,
68
- startIsOutOfView = _ref.startIsOutOfView,
69
- endIsOutOfView = _ref.endIsOutOfView,
70
- tools = _ref.tools,
71
- onResizeLeftCursor = _ref.onResizeLeftCursor,
72
- onResizeRightCursor = _ref.onResizeRightCursor,
73
- onEndResizeCursor = _ref.onEndResizeCursor;
74
- var dragOverlay = (0, _react.useRef)();
75
- var zoomInButton = (0, _react.useRef)();
76
- var cursorSelection = (0, _react.useRef)();
77
- var renderIcon = cursorIsAfterView || cursorIsBeforeView;
78
- var cursorWidth = endPos - startPos < 1 ? 1 : endPos - startPos;
79
- var _useState = (0, _react.useState)(false),
80
- _useState2 = _slicedToArray(_useState, 2),
81
- isVisibleTTR = _useState2[0],
82
- setVisibleTTR = _useState2[1];
83
- var _useState3 = (0, _react.useState)(false),
84
- _useState4 = _slicedToArray(_useState3, 2),
85
- isVisibleTTL = _useState4[0],
86
- setVisibleTTL = _useState4[1];
87
- var originSelection = {
88
- x: startPos,
89
- y: 0
90
- };
91
- return /*#__PURE__*/_react["default"].createElement("g", {
92
- transform: "translate(".concat(origin.x, ",").concat(origin.y, ")")
93
- }, /*#__PURE__*/_react["default"].createElement(_DragOverlay["default"], {
94
- ref: dragOverlay,
95
- width: overlayWidth,
96
- height: overlayHeight,
97
- showToolTipLeft: setVisibleTTL,
98
- showToolTipRight: setVisibleTTR,
99
- onDrawCursor: onDrawCursor,
100
- onEndCursor: onEndCursor,
101
- onMovedDomain: onMovedDomain,
102
- onMoveDomain: onMoveDomain,
103
- onStartDrawCursor: onStartDrawCursor,
104
- setToolTipVisible: setToolTipVisible,
105
- setBarHovered: setBarHovered,
106
- items: items,
107
- tooltipVisible: tooltipVisible,
108
- barHovered: barHovered,
109
- showHistoToolTip: showHistoToolTip,
110
- marginBottom: overlayHeight - height - 4,
111
- dragging: dragging,
112
- setDragging: setDragging,
113
- cursorSelection: cursorSelection
114
- }), renderIcon && /*#__PURE__*/_react["default"].createElement(_CursorIcon["default"], {
115
- classes: classes,
116
- rcToolTipPrefixCls: rcToolTipPrefixCls,
117
- origin: {
118
- x: cursorIsAfterView ? startPos - 17 : startPos - 23,
119
- y: height / 2 - 24
120
- },
121
- position: startPos === 1 ? 'left' : 'right',
122
- gotoCursorLabel: gotoCursorLabel,
123
- onGotoCursor: onGotoCursor
124
- }), /*#__PURE__*/_react["default"].createElement("g", {
125
- style: {
126
- display: renderIcon ? 'none' : undefined
127
- },
128
- transform: "translate(".concat(originSelection.x, ",").concat(originSelection.y, ")"),
129
- onMouseOver: function onMouseOver() {
130
- canZoom && tools.zoomIn !== false && !maxZoom && (0, _utils.show)(zoomInButton.current);
131
- },
132
- onMouseOut: function onMouseOut() {
133
- canZoom && tools.zoomIn !== false && (0, _utils.hide)(zoomInButton.current);
134
- }
135
- }, /*#__PURE__*/_react["default"].createElement(_CursorSelection["default"], {
136
- ref: cursorSelection,
137
- classes: classes,
138
- dragOverlay: dragOverlay,
139
- maxSize: maxSize,
140
- canZoom: canZoom,
141
- startPos: startPos,
142
- endPos: endPos,
143
- height: height,
144
- showToolTipLeft: setVisibleTTL,
145
- showToolTipRight: setVisibleTTR,
146
- onDragCursor: onDragCursor,
147
- onEndDragCursor: onEndDragCursor,
148
- onMovedDomain: onMovedDomain,
149
- onMoveDomain: onMoveDomain,
150
- zoomIn: zoomIn,
151
- width: cursorWidth,
152
- setToolTipVisible: setToolTipVisible,
153
- setBarHovered: setBarHovered,
154
- items: items,
155
- tooltipVisible: tooltipVisible,
156
- barHovered: barHovered,
157
- showHistoToolTip: showHistoToolTip,
158
- dragging: dragging,
159
- setDragging: setDragging
160
- }), /*#__PURE__*/_react["default"].createElement(_LeftHandle["default"], {
161
- classes: classes,
162
- origin: {
163
- x: 0,
164
- y: height / 2 + 2
165
- },
166
- maxSize: maxSize,
167
- dragOverlay: dragOverlay,
168
- startIsOutOfView: startIsOutOfView,
169
- showToolTipLeft: setVisibleTTL,
170
- onResizeLeftCursor: onResizeLeftCursor,
171
- onEndResizeCursor: onEndResizeCursor,
172
- setDragging: setDragging
173
- }), /*#__PURE__*/_react["default"].createElement(_RightHandle["default"], {
174
- classes: classes,
175
- origin: {
176
- x: cursorWidth,
177
- y: height / 2 + 2
178
- },
179
- maxSize: maxSize,
180
- dragOverlay: dragOverlay,
181
- endIsOutOfView: endIsOutOfView,
182
- showToolTipRight: setVisibleTTR,
183
- onResizeRightCursor: onResizeRightCursor,
184
- onEndResizeCursor: onEndResizeCursor,
185
- setDragging: setDragging
186
- }), canZoom && tools.zoomIn !== false && /*#__PURE__*/_react["default"].createElement(_ZoomIn["default"], {
187
- ref: zoomInButton,
188
- classes: classes,
189
- rcToolTipPrefixCls: rcToolTipPrefixCls,
190
- origin: {
191
- x: cursorWidth - 25,
192
- y: 0
193
- },
194
- zoomInLabel: zoomInLabel,
195
- onZoomIn: zoomIn
196
- }), /*#__PURE__*/_react["default"].createElement(_LeftToolTip["default"], {
197
- classes: classes,
198
- origin: {
199
- x: 0,
200
- y: height / 2
201
- },
202
- height: height,
203
- startText: startText,
204
- isVisibleTooltipLeft: isVisibleTTL
205
- }), /*#__PURE__*/_react["default"].createElement(_RightToolTip["default"], {
206
- classes: classes,
207
- origin: {
208
- x: cursorWidth,
209
- y: height / 2 + 4
210
- },
211
- height: height,
212
- stopText: stopText,
213
- isVisibleTooltipRight: isVisibleTTR
214
- })), canZoom && !minZoom && tools.zoomOut !== false && /*#__PURE__*/_react["default"].createElement(_ZoomOut["default"], {
215
- classes: classes,
216
- rcToolTipPrefixCls: rcToolTipPrefixCls,
217
- origin: {
218
- x: overlayWidth - 10,
219
- y: height - 20
220
- },
221
- zoomOutLabel: zoomOutLabel,
222
- onZoomOut: zoomOut
223
- }));
224
- }
225
- Cursor.propTypes = {
226
- origin: _propTypes["default"].shape({
227
- x: _propTypes["default"].number.isRequired,
228
- y: _propTypes["default"].number.isRequired
229
- }).isRequired,
230
- startPos: _propTypes["default"].number.isRequired,
231
- startIsOutOfView: _propTypes["default"].bool,
232
- endPos: _propTypes["default"].number.isRequired,
233
- endIsOutOfView: _propTypes["default"].bool,
234
- height: _propTypes["default"].number.isRequired,
235
- overlayHeight: _propTypes["default"].number.isRequired,
236
- overlayWidth: _propTypes["default"].number.isRequired,
237
- items: _propTypes["default"].arrayOf(_propTypes["default"].shape({
238
- start: _propTypes["default"].instanceOf(_momentTimezone["default"]).isRequired,
239
- end: _propTypes["default"].instanceOf(_momentTimezone["default"]).isRequired,
240
- x1: _propTypes["default"].number,
241
- x2: _propTypes["default"].number,
242
- metrics: _propTypes["default"].arrayOf(_propTypes["default"].number).isRequired,
243
- total: _propTypes["default"].number.isRequired
244
- })),
245
- tooltipVisible: _propTypes["default"].bool,
246
- barHovered: _propTypes["default"].number,
247
- dragging: _propTypes["default"].bool,
248
- setBarHovered: _propTypes["default"].func,
249
- setToolTipVisible: _propTypes["default"].func,
250
- setDragging: _propTypes["default"].func,
251
- cursorIsBeforeView: _propTypes["default"].bool,
252
- cursorIsAfterView: _propTypes["default"].bool,
253
- maxSize: _propTypes["default"].bool,
254
- startText: _propTypes["default"].string.isRequired,
255
- stopText: _propTypes["default"].string.isRequired,
256
- canZoom: _propTypes["default"].bool.isRequired,
257
- maxZoom: _propTypes["default"].bool,
258
- minZoom: _propTypes["default"].bool,
259
- zoomIn: _propTypes["default"].func,
260
- zoomOut: _propTypes["default"].func,
261
- onResizeLeftCursor: _propTypes["default"].func.isRequired,
262
- onResizeRightCursor: _propTypes["default"].func.isRequired,
263
- onEndResizeCursor: _propTypes["default"].func.isRequired,
264
- onDragCursor: _propTypes["default"].func.isRequired,
265
- onEndDragCursor: _propTypes["default"].func.isRequired,
266
- onStartDrawCursor: _propTypes["default"].func.isRequired,
267
- onDrawCursor: _propTypes["default"].func.isRequired,
268
- onEndCursor: _propTypes["default"].func.isRequired,
269
- onMoveDomain: _propTypes["default"].func,
270
- onMovedDomain: _propTypes["default"].func,
271
- onGotoCursor: _propTypes["default"].func,
272
- gotoCursorLabel: _propTypes["default"].string,
273
- zoomInLabel: _propTypes["default"].string,
274
- zoomOutLabel: _propTypes["default"].string,
275
- classes: _propTypes["default"].object,
276
- rcToolTipPrefixCls: _propTypes["default"].string.isRequired,
277
- tools: _propTypes["default"].shape({
278
- zoomIn: _propTypes["default"].bool,
279
- zoomOut: _propTypes["default"].bool
280
- })
281
- };
282
- var identity = function identity() {};
283
- Cursor.defaultProps = {
284
- classes: {},
285
- onMoveDomain: identity,
286
- onMovedDomain: identity,
287
- setBarHovered: identity,
288
- setToolTipVisible: identity,
289
- setDragging: identity
290
- };