@tradingaction/interactive 2.0.13

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 (135) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +5 -0
  3. package/lib/Brush.d.ts +35 -0
  4. package/lib/Brush.js +103 -0
  5. package/lib/Brush.js.map +1 -0
  6. package/lib/ClickCallback.d.ts +18 -0
  7. package/lib/ClickCallback.js +12 -0
  8. package/lib/ClickCallback.js.map +1 -0
  9. package/lib/DrawingObjectSelector.d.ts +18 -0
  10. package/lib/DrawingObjectSelector.js +73 -0
  11. package/lib/DrawingObjectSelector.js.map +1 -0
  12. package/lib/EquidistantChannel.d.ts +74 -0
  13. package/lib/EquidistantChannel.js +149 -0
  14. package/lib/EquidistantChannel.js.map +1 -0
  15. package/lib/FibonacciRetracement.d.ts +89 -0
  16. package/lib/FibonacciRetracement.js +184 -0
  17. package/lib/FibonacciRetracement.js.map +1 -0
  18. package/lib/GannFan.d.ts +78 -0
  19. package/lib/GannFan.js +128 -0
  20. package/lib/GannFan.js.map +1 -0
  21. package/lib/InteractiveText.d.ts +65 -0
  22. package/lib/InteractiveText.js +83 -0
  23. package/lib/InteractiveText.js.map +1 -0
  24. package/lib/InteractiveYCoordinate.d.ts +122 -0
  25. package/lib/InteractiveYCoordinate.js +100 -0
  26. package/lib/InteractiveYCoordinate.js.map +1 -0
  27. package/lib/StandardDeviationChannel.d.ts +74 -0
  28. package/lib/StandardDeviationChannel.js +125 -0
  29. package/lib/StandardDeviationChannel.js.map +1 -0
  30. package/lib/TrendLine.d.ts +84 -0
  31. package/lib/TrendLine.js +128 -0
  32. package/lib/TrendLine.js.map +1 -0
  33. package/lib/ZoomButtons.d.ts +30 -0
  34. package/lib/ZoomButtons.js +78 -0
  35. package/lib/ZoomButtons.js.map +1 -0
  36. package/lib/components/ChannelWithArea.d.ts +30 -0
  37. package/lib/components/ChannelWithArea.js +126 -0
  38. package/lib/components/ChannelWithArea.js.map +1 -0
  39. package/lib/components/ClickableCircle.d.ts +26 -0
  40. package/lib/components/ClickableCircle.js +48 -0
  41. package/lib/components/ClickableCircle.js.map +1 -0
  42. package/lib/components/ClickableShape.d.ts +33 -0
  43. package/lib/components/ClickableShape.js +64 -0
  44. package/lib/components/ClickableShape.js.map +1 -0
  45. package/lib/components/GannFan.d.ts +32 -0
  46. package/lib/components/GannFan.js +134 -0
  47. package/lib/components/GannFan.js.map +1 -0
  48. package/lib/components/HoverTextNearMouse.d.ts +35 -0
  49. package/lib/components/HoverTextNearMouse.js +113 -0
  50. package/lib/components/HoverTextNearMouse.js.map +1 -0
  51. package/lib/components/InteractiveStraightLine.d.ts +61 -0
  52. package/lib/components/InteractiveStraightLine.js +220 -0
  53. package/lib/components/InteractiveStraightLine.js.map +1 -0
  54. package/lib/components/InteractiveText.d.ts +38 -0
  55. package/lib/components/InteractiveText.js +84 -0
  56. package/lib/components/InteractiveText.js.map +1 -0
  57. package/lib/components/InteractiveYCoordinate.d.ts +46 -0
  58. package/lib/components/InteractiveYCoordinate.js +109 -0
  59. package/lib/components/InteractiveYCoordinate.js.map +1 -0
  60. package/lib/components/LinearRegressionChannelWithArea.d.ts +31 -0
  61. package/lib/components/LinearRegressionChannelWithArea.js +104 -0
  62. package/lib/components/LinearRegressionChannelWithArea.js.map +1 -0
  63. package/lib/components/MouseLocationIndicator.d.ts +34 -0
  64. package/lib/components/MouseLocationIndicator.js +79 -0
  65. package/lib/components/MouseLocationIndicator.js.map +1 -0
  66. package/lib/components/Text.d.ts +17 -0
  67. package/lib/components/Text.js +26 -0
  68. package/lib/components/Text.js.map +1 -0
  69. package/lib/components/index.d.ts +11 -0
  70. package/lib/components/index.js +12 -0
  71. package/lib/components/index.js.map +1 -0
  72. package/lib/index.d.ts +12 -0
  73. package/lib/index.js +13 -0
  74. package/lib/index.js.map +1 -0
  75. package/lib/utils.d.ts +7 -0
  76. package/lib/utils.js +84 -0
  77. package/lib/utils.js.map +1 -0
  78. package/lib/wrapper/EachEquidistantChannel.d.ts +59 -0
  79. package/lib/wrapper/EachEquidistantChannel.js +172 -0
  80. package/lib/wrapper/EachEquidistantChannel.js.map +1 -0
  81. package/lib/wrapper/EachFibRetracement.d.ts +81 -0
  82. package/lib/wrapper/EachFibRetracement.js +202 -0
  83. package/lib/wrapper/EachFibRetracement.js.map +1 -0
  84. package/lib/wrapper/EachGannFan.d.ts +81 -0
  85. package/lib/wrapper/EachGannFan.js +161 -0
  86. package/lib/wrapper/EachGannFan.js.map +1 -0
  87. package/lib/wrapper/EachInteractiveYCoordinate.d.ts +50 -0
  88. package/lib/wrapper/EachInteractiveYCoordinate.js +80 -0
  89. package/lib/wrapper/EachInteractiveYCoordinate.js.map +1 -0
  90. package/lib/wrapper/EachLinearRegressionChannel.d.ts +75 -0
  91. package/lib/wrapper/EachLinearRegressionChannel.js +89 -0
  92. package/lib/wrapper/EachLinearRegressionChannel.js.map +1 -0
  93. package/lib/wrapper/EachText.d.ts +59 -0
  94. package/lib/wrapper/EachText.js +83 -0
  95. package/lib/wrapper/EachText.js.map +1 -0
  96. package/lib/wrapper/EachTrendLine.d.ts +85 -0
  97. package/lib/wrapper/EachTrendLine.js +165 -0
  98. package/lib/wrapper/EachTrendLine.js.map +1 -0
  99. package/lib/wrapper/index.d.ts +7 -0
  100. package/lib/wrapper/index.js +8 -0
  101. package/lib/wrapper/index.js.map +1 -0
  102. package/package.json +53 -0
  103. package/src/Brush.tsx +172 -0
  104. package/src/ClickCallback.tsx +37 -0
  105. package/src/DrawingObjectSelector.tsx +97 -0
  106. package/src/EquidistantChannel.tsx +268 -0
  107. package/src/FibonacciRetracement.tsx +328 -0
  108. package/src/GannFan.tsx +233 -0
  109. package/src/InteractiveText.tsx +182 -0
  110. package/src/InteractiveYCoordinate.tsx +199 -0
  111. package/src/StandardDeviationChannel.tsx +269 -0
  112. package/src/TrendLine.tsx +294 -0
  113. package/src/ZoomButtons.tsx +165 -0
  114. package/src/components/ChannelWithArea.tsx +199 -0
  115. package/src/components/ClickableCircle.tsx +91 -0
  116. package/src/components/ClickableShape.tsx +114 -0
  117. package/src/components/GannFan.tsx +189 -0
  118. package/src/components/HoverTextNearMouse.tsx +174 -0
  119. package/src/components/InteractiveStraightLine.tsx +335 -0
  120. package/src/components/InteractiveText.tsx +146 -0
  121. package/src/components/InteractiveYCoordinate.tsx +200 -0
  122. package/src/components/LinearRegressionChannelWithArea.tsx +169 -0
  123. package/src/components/MouseLocationIndicator.tsx +128 -0
  124. package/src/components/Text.tsx +47 -0
  125. package/src/components/index.ts +11 -0
  126. package/src/index.ts +12 -0
  127. package/src/utils.ts +101 -0
  128. package/src/wrapper/EachEquidistantChannel.tsx +302 -0
  129. package/src/wrapper/EachFibRetracement.tsx +359 -0
  130. package/src/wrapper/EachGannFan.tsx +289 -0
  131. package/src/wrapper/EachInteractiveYCoordinate.tsx +198 -0
  132. package/src/wrapper/EachLinearRegressionChannel.tsx +202 -0
  133. package/src/wrapper/EachText.tsx +190 -0
  134. package/src/wrapper/EachTrendLine.tsx +331 -0
  135. package/src/wrapper/index.ts +7 -0
@@ -0,0 +1,84 @@
1
+ import * as React from "react";
2
+ import { getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
3
+ export class InteractiveText extends React.Component {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.calculateTextWidth = true;
7
+ this.isHover = (moreProps) => {
8
+ const { onHover } = this.props;
9
+ if (onHover !== undefined && this.textWidth !== undefined && !this.calculateTextWidth) {
10
+ const { rect } = this.helper(moreProps, this.textWidth);
11
+ const { mouseXY: [x, y], } = moreProps;
12
+ if (x >= rect.x && y >= rect.y && x <= rect.x + rect.width && y <= rect.y + rect.height) {
13
+ return true;
14
+ }
15
+ }
16
+ return false;
17
+ };
18
+ this.drawOnCanvas = (ctx, moreProps) => {
19
+ var _a;
20
+ const { bgFillStyle, bgStrokeWidth, bgStroke, textFill, fontFamily, fontSize, fontStyle, fontWeight, text } = this.props;
21
+ if (this.calculateTextWidth) {
22
+ ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;
23
+ const { width } = ctx.measureText(text);
24
+ this.textWidth = width;
25
+ this.calculateTextWidth = false;
26
+ }
27
+ const { selected } = this.props;
28
+ const { x, y, rect } = this.helper(moreProps, (_a = this.textWidth) !== null && _a !== void 0 ? _a : 0);
29
+ ctx.fillStyle = bgFillStyle;
30
+ ctx.beginPath();
31
+ ctx.fillRect(rect.x, rect.y, rect.width, rect.height);
32
+ if (selected) {
33
+ ctx.strokeStyle = bgStroke;
34
+ ctx.lineWidth = bgStrokeWidth;
35
+ ctx.strokeRect(rect.x, rect.y, rect.width, rect.height);
36
+ }
37
+ ctx.fillStyle = textFill;
38
+ ctx.textBaseline = "middle";
39
+ ctx.textAlign = "center";
40
+ ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;
41
+ ctx.beginPath();
42
+ ctx.fillText(text, x, y);
43
+ };
44
+ this.helper = (moreProps, textWidth) => {
45
+ const { position, fontSize } = this.props;
46
+ const { xScale, chartConfig: { yScale }, } = moreProps;
47
+ const [xValue, yValue] = position;
48
+ const x = xScale(xValue);
49
+ const y = yScale(yValue);
50
+ const rect = {
51
+ x: x - textWidth / 2 - fontSize,
52
+ y: y - fontSize,
53
+ width: textWidth + fontSize * 2,
54
+ height: fontSize * 2,
55
+ };
56
+ return {
57
+ x,
58
+ y,
59
+ rect,
60
+ };
61
+ };
62
+ }
63
+ componentDidUpdate(previousProps) {
64
+ this.calculateTextWidth =
65
+ previousProps.text !== this.props.text ||
66
+ previousProps.fontStyle !== this.props.fontStyle ||
67
+ previousProps.fontWeight !== this.props.fontWeight ||
68
+ previousProps.fontSize !== this.props.fontSize ||
69
+ previousProps.fontFamily !== this.props.fontFamily;
70
+ }
71
+ render() {
72
+ const { selected, interactiveCursorClass } = this.props;
73
+ const { onHover, onUnHover } = this.props;
74
+ const { onDragStart, onDrag, onDragComplete, onDoubleClick } = this.props;
75
+ return (React.createElement(GenericChartComponent, { isHover: this.isHover, canvasToDraw: getMouseCanvas, canvasDraw: this.drawOnCanvas, interactiveCursorClass: interactiveCursorClass, selected: selected, onDragStart: onDragStart, onDrag: onDrag, onDragComplete: onDragComplete, onDoubleClickWhenHover: onDoubleClick, onHover: onHover, onUnHover: onUnHover, drawOn: ["mousemove", "mouseleave", "pan", "drag"] }));
76
+ }
77
+ }
78
+ InteractiveText.defaultProps = {
79
+ type: "SD",
80
+ fontWeight: "normal",
81
+ tolerance: 4,
82
+ selected: false,
83
+ };
84
+ //# sourceMappingURL=InteractiveText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveText.js","sourceRoot":"","sources":["../../src/components/InteractiveText.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import * as React from "react";
2
+ import { strokeDashTypes } from "@tradingaction/core";
3
+ export interface InteractiveYCoordinateProps {
4
+ readonly bgFillStyle: string;
5
+ readonly strokeStyle: string;
6
+ readonly strokeWidth: number;
7
+ readonly strokeDasharray: strokeDashTypes;
8
+ readonly textFill: string;
9
+ readonly fontFamily: string;
10
+ readonly fontSize: number;
11
+ readonly fontWeight: number | string;
12
+ readonly fontStyle: string;
13
+ readonly text: string;
14
+ readonly edge: object;
15
+ readonly textBox: {
16
+ readonly closeIcon: any;
17
+ readonly left: number;
18
+ readonly height: number;
19
+ readonly padding: any;
20
+ };
21
+ readonly yValue: number;
22
+ readonly onDragStart?: (e: React.MouseEvent, moreProps: any) => void;
23
+ readonly onDrag?: (e: React.MouseEvent, moreProps: any) => void;
24
+ readonly onDragComplete?: (e: React.MouseEvent, moreProps: any) => void;
25
+ readonly onHover?: (e: React.MouseEvent, moreProps: any) => void;
26
+ readonly onUnHover?: (e: React.MouseEvent, moreProps: any) => void;
27
+ readonly defaultClassName?: string;
28
+ readonly interactiveCursorClass?: string;
29
+ readonly tolerance: number;
30
+ readonly selected: boolean;
31
+ readonly hovering: boolean;
32
+ }
33
+ export declare class InteractiveYCoordinate extends React.Component<InteractiveYCoordinateProps> {
34
+ static defaultProps: {
35
+ fontWeight: string;
36
+ strokeWidth: number;
37
+ tolerance: number;
38
+ selected: boolean;
39
+ hovering: boolean;
40
+ };
41
+ private width;
42
+ render(): JSX.Element;
43
+ private readonly drawOnCanvas;
44
+ private readonly isHover;
45
+ private readonly helper;
46
+ }
@@ -0,0 +1,109 @@
1
+ import * as React from "react";
2
+ import { drawOnCanvas } from "@tradingaction/coordinates/lib/EdgeCoordinateV3";
3
+ import { getYCoordinate } from "@tradingaction/coordinates/lib/MouseCoordinateY";
4
+ import { getStrokeDasharrayCanvas, getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
5
+ export class InteractiveYCoordinate extends React.Component {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.width = 0;
9
+ this.drawOnCanvas = (ctx, moreProps) => {
10
+ const { bgFillStyle, textFill, fontFamily, fontSize, fontStyle, fontWeight, strokeStyle, strokeWidth, strokeDasharray, text, textBox, edge, selected, hovering, } = this.props;
11
+ const values = this.helper(moreProps);
12
+ if (values == null) {
13
+ return;
14
+ }
15
+ const { x1, x2, y, rect } = values;
16
+ ctx.strokeStyle = strokeStyle;
17
+ ctx.beginPath();
18
+ if (selected || hovering) {
19
+ ctx.lineWidth = strokeWidth + 1;
20
+ }
21
+ else {
22
+ ctx.lineWidth = strokeWidth;
23
+ }
24
+ ctx.textBaseline = "middle";
25
+ ctx.textAlign = "start";
26
+ ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;
27
+ this.width =
28
+ textBox.padding.left +
29
+ ctx.measureText(text).width +
30
+ textBox.padding.right +
31
+ textBox.closeIcon.padding.left +
32
+ textBox.closeIcon.width +
33
+ textBox.closeIcon.padding.right;
34
+ ctx.setLineDash(getStrokeDasharrayCanvas(strokeDasharray));
35
+ ctx.moveTo(x1, y);
36
+ ctx.lineTo(rect.x, y);
37
+ ctx.moveTo(rect.x + this.width, y);
38
+ ctx.lineTo(x2, y);
39
+ ctx.stroke();
40
+ ctx.setLineDash([]);
41
+ ctx.fillStyle = bgFillStyle;
42
+ ctx.fillRect(rect.x, rect.y, this.width, rect.height);
43
+ ctx.strokeRect(rect.x, rect.y, this.width, rect.height);
44
+ ctx.fillStyle = textFill;
45
+ ctx.beginPath();
46
+ ctx.fillText(text, rect.x + 10, y);
47
+ const newEdge = Object.assign(Object.assign({}, edge), { textFill,
48
+ fontFamily,
49
+ fontSize });
50
+ // @ts-ignore
51
+ const yValue = edge.displayFormat(this.props.yValue);
52
+ const yCoord = getYCoordinate(y, yValue, newEdge, moreProps);
53
+ drawOnCanvas(ctx, yCoord);
54
+ };
55
+ this.isHover = (moreProps) => {
56
+ const { onHover } = this.props;
57
+ if (onHover !== undefined) {
58
+ const values = this.helper(moreProps);
59
+ if (values == null) {
60
+ return false;
61
+ }
62
+ const { x1, x2, y, rect } = values;
63
+ const { mouseXY: [mouseX, mouseY], } = moreProps;
64
+ if (mouseX >= rect.x &&
65
+ mouseX <= rect.x + this.width &&
66
+ mouseY >= rect.y &&
67
+ mouseY <= rect.y + rect.height) {
68
+ return true;
69
+ }
70
+ if (x1 <= mouseX && x2 >= mouseX && Math.abs(mouseY - y) < 4) {
71
+ return true;
72
+ }
73
+ }
74
+ return false;
75
+ };
76
+ this.helper = (moreProps) => {
77
+ const { yValue, textBox } = this.props;
78
+ const { chartConfig: { width, yScale, height }, } = moreProps;
79
+ const y = Math.round(yScale(yValue));
80
+ if (y >= 0 && y <= height) {
81
+ const rect = {
82
+ x: textBox.left,
83
+ y: y - textBox.height / 2,
84
+ height: textBox.height,
85
+ };
86
+ return {
87
+ x1: 0,
88
+ x2: width,
89
+ y,
90
+ rect,
91
+ };
92
+ }
93
+ };
94
+ }
95
+ render() {
96
+ const { interactiveCursorClass } = this.props;
97
+ const { onHover, onUnHover } = this.props;
98
+ const { onDragStart, onDrag, onDragComplete } = this.props;
99
+ return (React.createElement(GenericChartComponent, { clip: false, isHover: this.isHover, canvasToDraw: getMouseCanvas, canvasDraw: this.drawOnCanvas, interactiveCursorClass: interactiveCursorClass, enableDragOnHover: true, onDragStart: onDragStart, onDrag: onDrag, onDragComplete: onDragComplete, onHover: onHover, onUnHover: onUnHover, drawOn: ["mousemove", "mouseleave", "pan", "drag"] }));
100
+ }
101
+ }
102
+ InteractiveYCoordinate.defaultProps = {
103
+ fontWeight: "normal",
104
+ strokeWidth: 1,
105
+ tolerance: 4,
106
+ selected: false,
107
+ hovering: false,
108
+ };
109
+ //# sourceMappingURL=InteractiveYCoordinate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveYCoordinate.js","sourceRoot":"","sources":["../../src/components/InteractiveYCoordinate.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import * as React from "react";
2
+ export interface LinearRegressionChannelWithAreaProps {
3
+ readonly x1Value: any;
4
+ readonly x2Value: any;
5
+ readonly type: "SD" | "Raff";
6
+ readonly interactiveCursorClass?: string;
7
+ readonly strokeStyle: string;
8
+ readonly strokeWidth: number;
9
+ readonly fillStyle: string;
10
+ readonly onDragStart?: (e: React.MouseEvent, moreProps: any) => void;
11
+ readonly onDrag?: (e: React.MouseEvent, moreProps: any) => void;
12
+ readonly onDragComplete?: (e: React.MouseEvent, moreProps: any) => void;
13
+ readonly onHover?: (e: React.MouseEvent, moreProps: any) => void;
14
+ readonly onUnHover?: (e: React.MouseEvent, moreProps: any) => void;
15
+ readonly defaultClassName?: string;
16
+ readonly tolerance: number;
17
+ readonly selected: boolean;
18
+ }
19
+ export declare class LinearRegressionChannelWithArea extends React.Component<LinearRegressionChannelWithAreaProps> {
20
+ static defaultProps: {
21
+ type: string;
22
+ strokeWidth: number;
23
+ tolerance: number;
24
+ selected: boolean;
25
+ };
26
+ render(): JSX.Element;
27
+ private readonly drawOnCanvas;
28
+ private readonly isHover;
29
+ }
30
+ export declare function edge1Provider(props: any): (moreProps: any) => any[];
31
+ export declare function edge2Provider(props: any): (moreProps: any) => any[];
@@ -0,0 +1,104 @@
1
+ import { deviation, sum, zip } from "d3-array";
2
+ import * as React from "react";
3
+ import { getClosestItemIndexes, getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
4
+ import { isHovering2 } from "./InteractiveStraightLine";
5
+ export class LinearRegressionChannelWithArea extends React.Component {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.drawOnCanvas = (ctx, moreProps) => {
9
+ const { strokeStyle, strokeWidth, fillStyle } = this.props;
10
+ const { x1, y1, x2, y2, dy } = helper(this.props, moreProps);
11
+ ctx.lineWidth = strokeWidth;
12
+ ctx.strokeStyle = strokeStyle;
13
+ ctx.fillStyle = fillStyle;
14
+ ctx.beginPath();
15
+ ctx.moveTo(x1, y1 - dy);
16
+ ctx.lineTo(x2, y2 - dy);
17
+ ctx.stroke();
18
+ ctx.beginPath();
19
+ ctx.moveTo(x2, y2 + dy);
20
+ ctx.lineTo(x1, y1 + dy);
21
+ ctx.stroke();
22
+ ctx.beginPath();
23
+ ctx.moveTo(x1, y1 - dy);
24
+ ctx.lineTo(x2, y2 - dy);
25
+ ctx.lineTo(x2, y2 + dy);
26
+ ctx.lineTo(x1, y1 + dy);
27
+ ctx.closePath();
28
+ ctx.fill();
29
+ ctx.beginPath();
30
+ ctx.moveTo(x2, y2);
31
+ ctx.lineTo(x1, y1);
32
+ ctx.stroke();
33
+ };
34
+ this.isHover = (moreProps) => {
35
+ const { tolerance, onHover } = this.props;
36
+ if (onHover !== undefined) {
37
+ const { mouseXY } = moreProps;
38
+ const { x1, y1, x2, y2, dy } = helper(this.props, moreProps);
39
+ const yDiffs = [-dy, 0, dy];
40
+ const hovering = yDiffs.reduce((result, diff) => result || isHovering2([x1, y1 + diff], [x2, y2 + diff], mouseXY, tolerance), false);
41
+ return hovering;
42
+ }
43
+ return false;
44
+ };
45
+ }
46
+ render() {
47
+ const { selected, interactiveCursorClass } = this.props;
48
+ const { onDragStart, onDrag, onDragComplete, onHover, onUnHover } = this.props;
49
+ return (React.createElement(GenericChartComponent, { isHover: this.isHover, canvasToDraw: getMouseCanvas, canvasDraw: this.drawOnCanvas, interactiveCursorClass: interactiveCursorClass, selected: selected, onDragStart: onDragStart, onDrag: onDrag, onDragComplete: onDragComplete, onHover: onHover, onUnHover: onUnHover, drawOn: ["mousemove", "mouseleave", "pan", "drag"] }));
50
+ }
51
+ }
52
+ LinearRegressionChannelWithArea.defaultProps = {
53
+ type: "SD",
54
+ strokeWidth: 1,
55
+ tolerance: 4,
56
+ selected: false,
57
+ };
58
+ export function edge1Provider(props) {
59
+ return function (moreProps) {
60
+ const { x1, y1 } = helper(props, moreProps);
61
+ return [x1, y1];
62
+ };
63
+ }
64
+ export function edge2Provider(props) {
65
+ return function (moreProps) {
66
+ const { x2, y2 } = helper(props, moreProps);
67
+ return [x2, y2];
68
+ };
69
+ }
70
+ function helper(props, moreProps) {
71
+ const { x1Value, x2Value, type } = props;
72
+ const { xScale, chartConfig: { yScale }, fullData, } = moreProps;
73
+ const { xAccessor } = moreProps;
74
+ const { left } = getClosestItemIndexes(fullData, x1Value, xAccessor);
75
+ const { right } = getClosestItemIndexes(fullData, x2Value, xAccessor);
76
+ const startIndex = Math.min(left, right);
77
+ const endIndex = Math.max(left, right) + 1;
78
+ const array = fullData.slice(startIndex, endIndex);
79
+ const xs = array.map((d) => xAccessor(d).valueOf());
80
+ const ys = array.map((d) => d.close);
81
+ const n = array.length;
82
+ const xys = zip(xs, ys).map((d) => {
83
+ return d[0] * d[1];
84
+ });
85
+ const xSquareds = xs.map((x) => Math.pow(x, 2));
86
+ const b = (n * sum(xys) - sum(xs) * sum(ys)) / (n * sum(xSquareds) - Math.pow(sum(xs), 2));
87
+ const a = (sum(ys) - b * sum(xs)) / n;
88
+ const newy1 = a + b * x1Value;
89
+ const newy2 = a + b * x2Value;
90
+ const x1 = xScale(x1Value);
91
+ const y1 = yScale(newy1);
92
+ const x2 = xScale(x2Value);
93
+ const y2 = yScale(newy2);
94
+ const stdDev = type === "SD" ? deviation(array, (d) => d.close) : 0;
95
+ const dy = yScale(newy1 - stdDev) - y1;
96
+ return {
97
+ x1,
98
+ y1,
99
+ x2,
100
+ y2,
101
+ dy,
102
+ };
103
+ }
104
+ //# sourceMappingURL=LinearRegressionChannelWithArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearRegressionChannelWithArea.js","sourceRoot":"","sources":["../../src/components/LinearRegressionChannelWithArea.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import * as React from "react";
2
+ export interface MouseLocationIndicatorProps {
3
+ readonly enabled: boolean;
4
+ readonly snap: boolean;
5
+ readonly shouldDisableSnap: (e: React.MouseEvent) => boolean;
6
+ readonly snapTo?: (datum: any) => number | number[];
7
+ readonly onMouseMove: (e: React.MouseEvent, xyValue: number[], moreProps: any) => void;
8
+ readonly onMouseDown: (e: React.MouseEvent, xyValue: number[], moreProps: any) => void;
9
+ readonly onClick: (e: React.MouseEvent, xyValue: number[], moreProps: any) => void;
10
+ readonly r: number;
11
+ readonly stroke: string;
12
+ readonly strokeWidth: number;
13
+ readonly opacity: number;
14
+ readonly disablePan: boolean;
15
+ }
16
+ export declare class MouseLocationIndicator extends React.Component<MouseLocationIndicatorProps> {
17
+ static defaultProps: {
18
+ onMouseMove: () => void;
19
+ onMouseDown: () => void;
20
+ onClick: () => void;
21
+ shouldDisableSnap: any;
22
+ stroke: string;
23
+ strokeWidth: number;
24
+ opacity: number;
25
+ disablePan: boolean;
26
+ };
27
+ private mutableState;
28
+ render(): JSX.Element;
29
+ private readonly xy;
30
+ private readonly handleClick;
31
+ private readonly handleMouseDown;
32
+ private readonly handleMousePosChange;
33
+ private readonly drawOnCanvas;
34
+ }
@@ -0,0 +1,79 @@
1
+ import { functor, getClosestValue, getMouseCanvas, GenericChartComponent, isDefined, noop, shallowEqual, } from "@tradingaction/core";
2
+ import * as React from "react";
3
+ import { getXValue } from "@tradingaction/core/lib/utils/ChartDataUtil";
4
+ export class MouseLocationIndicator extends React.Component {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.mutableState = {};
8
+ this.xy = (e, moreProps) => {
9
+ const { xAccessor, plotData } = moreProps;
10
+ const { mouseXY, currentItem, xScale, chartConfig: { yScale }, } = moreProps;
11
+ const { enabled, snap, shouldDisableSnap, snapTo } = this.props;
12
+ if (enabled && isDefined(currentItem) && isDefined(e)) {
13
+ const xValue = snap && !shouldDisableSnap(e)
14
+ ? xAccessor(currentItem)
15
+ : getXValue(xScale, xAccessor, mouseXY, plotData);
16
+ const yValue = snap && snapTo !== undefined && !shouldDisableSnap(e)
17
+ ? getClosestValue(snapTo(currentItem), yScale.invert(mouseXY[1]))
18
+ : yScale.invert(mouseXY[1]);
19
+ const x = xScale(xValue);
20
+ const y = yScale(yValue);
21
+ return { xValue, yValue, x, y };
22
+ }
23
+ };
24
+ this.handleClick = (e, moreProps) => {
25
+ const pos = this.xy(e, moreProps);
26
+ if (pos !== undefined && isDefined(pos)) {
27
+ const { xValue, yValue, x, y } = pos;
28
+ this.mutableState = { x, y };
29
+ this.props.onClick(e, [xValue, yValue], moreProps);
30
+ }
31
+ };
32
+ this.handleMouseDown = (e, moreProps) => {
33
+ const pos = this.xy(e, moreProps);
34
+ if (pos !== undefined && isDefined(pos)) {
35
+ const { xValue, yValue, x, y } = pos;
36
+ this.mutableState = { x, y };
37
+ this.props.onMouseDown(e, [xValue, yValue], moreProps);
38
+ }
39
+ };
40
+ this.handleMousePosChange = (e, moreProps) => {
41
+ if (!shallowEqual(moreProps.mousXY, moreProps.prevMouseXY)) {
42
+ const pos = this.xy(e, moreProps);
43
+ if (pos !== undefined && isDefined(pos)) {
44
+ const { xValue, yValue, x, y } = pos;
45
+ this.mutableState = { x, y };
46
+ this.props.onMouseMove(e, [xValue, yValue], moreProps);
47
+ }
48
+ }
49
+ };
50
+ this.drawOnCanvas = (ctx, moreProps) => {
51
+ const { enabled, r, stroke, strokeWidth } = this.props;
52
+ const { x, y } = this.mutableState;
53
+ const { show } = moreProps;
54
+ if (enabled && show && isDefined(x)) {
55
+ ctx.lineWidth = strokeWidth;
56
+ ctx.strokeStyle = stroke;
57
+ ctx.moveTo(x, y);
58
+ ctx.beginPath();
59
+ ctx.arc(x, y, r, 0, 2 * Math.PI, false);
60
+ ctx.stroke();
61
+ }
62
+ };
63
+ }
64
+ render() {
65
+ const { enabled, disablePan } = this.props;
66
+ return (React.createElement(GenericChartComponent, { onMouseDown: this.handleMouseDown, onClick: this.handleClick, onMouseMove: this.handleMousePosChange, onPan: this.handleMousePosChange, disablePan: enabled && disablePan, canvasDraw: this.drawOnCanvas, canvasToDraw: getMouseCanvas, drawOn: ["mousemove", "pan"] }));
67
+ }
68
+ }
69
+ MouseLocationIndicator.defaultProps = {
70
+ onMouseMove: noop,
71
+ onMouseDown: noop,
72
+ onClick: noop,
73
+ shouldDisableSnap: functor(false),
74
+ stroke: "#000000",
75
+ strokeWidth: 1,
76
+ opacity: 1,
77
+ disablePan: true,
78
+ };
79
+ //# sourceMappingURL=MouseLocationIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MouseLocationIndicator.js","sourceRoot":"","sources":["../../src/components/MouseLocationIndicator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ export interface TextProps {
3
+ readonly children: string;
4
+ readonly fontFamily: string;
5
+ readonly fontSize: number;
6
+ readonly fillStyle: string;
7
+ readonly selected?: boolean;
8
+ readonly xyProvider: (moreProps: any) => number[];
9
+ }
10
+ export declare class Text extends React.Component<TextProps> {
11
+ static defaultProps: {
12
+ selected: boolean;
13
+ };
14
+ render(): JSX.Element;
15
+ private readonly isHover;
16
+ private readonly drawOnCanvas;
17
+ }
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import { getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
3
+ export class Text extends React.Component {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.isHover = () => {
7
+ return false;
8
+ };
9
+ this.drawOnCanvas = (ctx, moreProps) => {
10
+ const { xyProvider, fontFamily, fontSize, fillStyle, children } = this.props;
11
+ const [x, y] = xyProvider(moreProps);
12
+ ctx.font = `${fontSize}px ${fontFamily}`;
13
+ ctx.fillStyle = fillStyle;
14
+ ctx.beginPath();
15
+ ctx.fillText(children, x, y);
16
+ };
17
+ }
18
+ render() {
19
+ const { selected } = this.props;
20
+ return (React.createElement(GenericChartComponent, { isHover: this.isHover, selected: selected, canvasToDraw: getMouseCanvas, canvasDraw: this.drawOnCanvas, drawOn: ["mousemove", "pan", "drag"] }));
21
+ }
22
+ }
23
+ Text.defaultProps = {
24
+ selected: false,
25
+ };
26
+ //# sourceMappingURL=Text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../src/components/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAW5E,MAAM,OAAO,IAAK,SAAQ,KAAK,CAAC,SAAoB;IAApD;;QAmBqB,YAAO,GAAG,GAAG,EAAE;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEe,iBAAY,GAAG,CAAC,GAA6B,EAAE,SAAc,EAAE,EAAE;YAC9E,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAE7E,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YAErC,GAAG,CAAC,IAAI,GAAG,GAAG,QAAQ,MAAM,UAAU,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAE1B,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;IACN,CAAC;IA7BU,MAAM;QACT,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhC,OAAO,CACH,oBAAC,qBAAqB,IAClB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,cAAc,EAC5B,UAAU,EAAE,IAAI,CAAC,YAAY,EAC7B,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,GACtC,CACL,CAAC;IACN,CAAC;;AAhBa,iBAAY,GAAG;IACzB,QAAQ,EAAE,KAAK;CAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from "./ChannelWithArea";
2
+ export * from "./ClickableCircle";
3
+ export * from "./ClickableShape";
4
+ export * from "./GannFan";
5
+ export * from "./HoverTextNearMouse";
6
+ export * from "./InteractiveStraightLine";
7
+ export * from "./InteractiveText";
8
+ export * from "./InteractiveYCoordinate";
9
+ export * from "./LinearRegressionChannelWithArea";
10
+ export * from "./MouseLocationIndicator";
11
+ export * from "./Text";
@@ -0,0 +1,12 @@
1
+ export * from "./ChannelWithArea";
2
+ export * from "./ClickableCircle";
3
+ export * from "./ClickableShape";
4
+ export * from "./GannFan";
5
+ export * from "./HoverTextNearMouse";
6
+ export * from "./InteractiveStraightLine";
7
+ export * from "./InteractiveText";
8
+ export * from "./InteractiveYCoordinate";
9
+ export * from "./LinearRegressionChannelWithArea";
10
+ export * from "./MouseLocationIndicator";
11
+ export * from "./Text";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,QAAQ,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export { TrendLine } from "./TrendLine";
2
+ export { FibonacciRetracement } from "./FibonacciRetracement";
3
+ export { EquidistantChannel } from "./EquidistantChannel";
4
+ export { StandardDeviationChannel } from "./StandardDeviationChannel";
5
+ export { GannFan } from "./GannFan";
6
+ export { ClickCallback } from "./ClickCallback";
7
+ export { Brush } from "./Brush";
8
+ export { InteractiveText } from "./InteractiveText";
9
+ export { InteractiveYCoordinate } from "./InteractiveYCoordinate";
10
+ export { DrawingObjectSelector } from "./DrawingObjectSelector";
11
+ export { ZoomButtons } from "./ZoomButtons";
12
+ export * from "./utils";
package/lib/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export { TrendLine } from "./TrendLine";
2
+ export { FibonacciRetracement } from "./FibonacciRetracement";
3
+ export { EquidistantChannel } from "./EquidistantChannel";
4
+ export { StandardDeviationChannel } from "./StandardDeviationChannel";
5
+ export { GannFan } from "./GannFan";
6
+ export { ClickCallback } from "./ClickCallback";
7
+ export { Brush } from "./Brush";
8
+ export { InteractiveText } from "./InteractiveText";
9
+ export { InteractiveYCoordinate } from "./InteractiveYCoordinate";
10
+ export { DrawingObjectSelector } from "./DrawingObjectSelector";
11
+ export { ZoomButtons } from "./ZoomButtons";
12
+ export * from "./utils";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,cAAc,SAAS,CAAC"}