@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 @@
1
+ {"version":3,"file":"TrendLine.js","sourceRoot":"","sources":["../src/TrendLine.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ export interface ZoomButtonsProps {
3
+ readonly fill: string;
4
+ readonly fillOpacity: number;
5
+ readonly heightFromBase: number;
6
+ readonly onReset?: () => void;
7
+ readonly r: number;
8
+ readonly stroke: string;
9
+ readonly strokeWidth: number;
10
+ readonly textFill: string;
11
+ readonly zoomMultiplier: number;
12
+ }
13
+ export declare class ZoomButtons extends React.Component<ZoomButtonsProps> {
14
+ static defaultProps: {
15
+ fill: string;
16
+ fillOpacity: number;
17
+ heightFromBase: number;
18
+ r: number;
19
+ stroke: string;
20
+ strokeWidth: number;
21
+ textFill: string;
22
+ zoomMultiplier: number;
23
+ };
24
+ static contextType: React.Context<import("@tradingaction/core").ChartContextType>;
25
+ private interval?;
26
+ render(): JSX.Element;
27
+ private readonly handleZoomIn;
28
+ private readonly handleZoomOut;
29
+ private readonly zoom;
30
+ }
@@ -0,0 +1,78 @@
1
+ import { ChartContext, last } from "@tradingaction/core";
2
+ import { interpolateNumber } from "d3-interpolate";
3
+ import * as React from "react";
4
+ export class ZoomButtons extends React.Component {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.handleZoomIn = () => {
8
+ if (this.interval) {
9
+ return;
10
+ }
11
+ this.zoom(-1);
12
+ };
13
+ this.handleZoomOut = () => {
14
+ if (this.interval) {
15
+ return;
16
+ }
17
+ this.zoom(1);
18
+ };
19
+ this.zoom = (direction) => {
20
+ const { xAxisZoom, xScale, plotData, xAccessor } = this.context;
21
+ const cx = xScale(xAccessor(last(plotData)));
22
+ const { zoomMultiplier } = this.props;
23
+ const c = direction > 0 ? 1 * zoomMultiplier : 1 / zoomMultiplier;
24
+ const [start, end] = xScale.domain();
25
+ const [newStart, newEnd] = xScale
26
+ .range()
27
+ .map((x) => cx + (x - cx) * c)
28
+ .map(xScale.invert);
29
+ const left = interpolateNumber(start, newStart);
30
+ const right = interpolateNumber(end, newEnd);
31
+ const foo = [0.25, 0.3, 0.5, 0.6, 0.75, 1].map((i) => {
32
+ return [left(i), right(i)];
33
+ });
34
+ this.interval = window.setInterval(() => {
35
+ xAxisZoom(foo.shift());
36
+ if (foo.length === 0) {
37
+ clearInterval(this.interval);
38
+ delete this.interval;
39
+ }
40
+ }, 10);
41
+ };
42
+ }
43
+ render() {
44
+ const { chartConfig } = this.context;
45
+ const { width, height } = chartConfig;
46
+ const { heightFromBase, r, fill, fillOpacity, onReset, stroke, strokeWidth, textFill } = this.props;
47
+ const centerX = Math.round(width / 2);
48
+ const y = height - heightFromBase;
49
+ const zoomOutX = centerX - 16 - r * 2;
50
+ const zoomInX = centerX - 8;
51
+ const resetX = centerX + 16 + r * 2;
52
+ return (React.createElement("g", { className: "react-financial-charts-zoom-buttons" },
53
+ React.createElement("circle", { className: "react-financial-charts-button", cx: zoomOutX - r / 2, cy: y + r / 2, fill: fill, fillOpacity: fillOpacity, stroke: stroke, strokeWidth: strokeWidth, r: r }),
54
+ React.createElement("g", { transform: `translate (${zoomOutX - 20}, ${y - 8 + r / 4})` },
55
+ React.createElement("path", { d: "M19,13H5V11H19V13Z", fill: textFill })),
56
+ React.createElement("circle", { className: "react-financial-charts-button", cx: zoomInX - r / 2, cy: y + r / 2, fill: fill, fillOpacity: fillOpacity, stroke: stroke, strokeWidth: strokeWidth, r: r }),
57
+ React.createElement("g", { transform: `translate (${zoomInX - 20}, ${y - 8 + r / 4})` },
58
+ React.createElement("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z", fill: textFill })),
59
+ React.createElement("circle", { className: "react-financial-charts-button", cx: resetX - r / 2, cy: y + r / 2, fill: fill, fillOpacity: fillOpacity, stroke: stroke, strokeWidth: strokeWidth, r: r }),
60
+ React.createElement("g", { transform: `translate (${resetX - r}, ${y - 4 + r / 4})` },
61
+ React.createElement("path", { d: "M2.35 2.35A7.958 7.958 0 018 0a8 8 0 110 16c-3.73 0-6.84-2.55-7.73-6h2.08c.82 2.33 3.04 4 5.65 4A6 6 0 108 2c-1.66 0-3.14.69-4.22 1.78L7 7H0V0l2.35 2.35z", fill: textFill })),
62
+ React.createElement("circle", { className: "react-financial-charts-enable-interaction out", onClick: this.handleZoomOut, cx: zoomOutX - r / 2, cy: y + r / 2, r: r, fill: "none" }),
63
+ React.createElement("circle", { className: "react-financial-charts-enable-interaction in", onClick: this.handleZoomIn, cx: zoomInX - r / 2, cy: y + r / 2, r: r, fill: "none" }),
64
+ React.createElement("circle", { className: "react-financial-charts-enable-interaction reset", onClick: onReset, cx: resetX - r / 2, cy: y + r / 2, r: r, fill: "none" })));
65
+ }
66
+ }
67
+ ZoomButtons.defaultProps = {
68
+ fill: "#ffffff",
69
+ fillOpacity: 0.75,
70
+ heightFromBase: 32,
71
+ r: 16,
72
+ stroke: "#e0e3eb",
73
+ strokeWidth: 1,
74
+ textFill: "#000000",
75
+ zoomMultiplier: 1.5,
76
+ };
77
+ ZoomButtons.contextType = ChartContext;
78
+ //# sourceMappingURL=ZoomButtons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoomButtons.js","sourceRoot":"","sources":["../src/ZoomButtons.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ export interface ChannelWithAreaProps {
3
+ readonly startXY?: number[];
4
+ readonly endXY?: number[];
5
+ readonly dy?: number;
6
+ readonly interactiveCursorClass?: string;
7
+ readonly strokeStyle: string;
8
+ readonly strokeWidth: number;
9
+ readonly fillStyle: string;
10
+ readonly type: "XLINE" | "RAY" | "LINE";
11
+ readonly onDragStart?: (e: React.MouseEvent, moreProps: any) => void;
12
+ readonly onDrag?: (e: React.MouseEvent, moreProps: any) => void;
13
+ readonly onDragComplete?: (e: React.MouseEvent, moreProps: any) => void;
14
+ readonly onHover?: (e: React.MouseEvent, moreProps: any) => void;
15
+ readonly onUnHover?: (e: React.MouseEvent, moreProps: any) => void;
16
+ readonly defaultClassName?: string;
17
+ readonly tolerance: number;
18
+ readonly selected: boolean;
19
+ }
20
+ export declare class ChannelWithArea extends React.Component<ChannelWithAreaProps> {
21
+ static defaultProps: {
22
+ type: string;
23
+ strokeWidth: number;
24
+ tolerance: number;
25
+ selected: boolean;
26
+ };
27
+ render(): JSX.Element;
28
+ private readonly drawOnCanvas;
29
+ private readonly isHover;
30
+ }
@@ -0,0 +1,126 @@
1
+ import * as React from "react";
2
+ import { isDefined, isNotDefined, getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
3
+ import { generateLine, isHovering } from "./InteractiveStraightLine";
4
+ export class ChannelWithArea extends React.Component {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.drawOnCanvas = (ctx, moreProps) => {
8
+ const { strokeStyle, strokeWidth, fillStyle } = this.props;
9
+ const { line1, line2 } = helper(this.props, moreProps);
10
+ if (line1 !== undefined) {
11
+ const { x1, y1, x2, y2 } = line1;
12
+ ctx.lineWidth = strokeWidth;
13
+ ctx.strokeStyle = strokeStyle;
14
+ ctx.beginPath();
15
+ ctx.moveTo(x1, y1);
16
+ ctx.lineTo(x2, y2);
17
+ ctx.stroke();
18
+ if (line2 !== undefined) {
19
+ const { y1: line2Y1, y2: line2Y2 } = line2;
20
+ ctx.beginPath();
21
+ ctx.moveTo(x1, line2Y1);
22
+ ctx.lineTo(x2, line2Y2);
23
+ ctx.stroke();
24
+ ctx.fillStyle = fillStyle;
25
+ ctx.beginPath();
26
+ ctx.moveTo(x1, y1);
27
+ ctx.lineTo(x2, y2);
28
+ ctx.lineTo(x2, line2Y2);
29
+ ctx.lineTo(x1, line2Y1);
30
+ ctx.closePath();
31
+ ctx.fill();
32
+ }
33
+ }
34
+ };
35
+ this.isHover = (moreProps) => {
36
+ const { tolerance, onHover } = this.props;
37
+ if (onHover !== undefined) {
38
+ const { line1, line2 } = helper(this.props, moreProps);
39
+ if (line1 !== undefined && line2 !== undefined) {
40
+ const { mouseXY, xScale, chartConfig: { yScale }, } = moreProps;
41
+ const line1Hovering = isHovering({
42
+ x1Value: line1.x1,
43
+ y1Value: line1.y1,
44
+ x2Value: line1.x2,
45
+ y2Value: line1.y2,
46
+ type: "LINE",
47
+ mouseXY,
48
+ tolerance,
49
+ xScale,
50
+ yScale,
51
+ });
52
+ const line2Hovering = isHovering({
53
+ x1Value: line2.x1,
54
+ y1Value: line2.y1,
55
+ x2Value: line2.x2,
56
+ y2Value: line2.y2,
57
+ type: "LINE",
58
+ mouseXY,
59
+ tolerance,
60
+ xScale,
61
+ yScale,
62
+ });
63
+ return line1Hovering || line2Hovering;
64
+ }
65
+ }
66
+ return false;
67
+ };
68
+ }
69
+ render() {
70
+ const { selected, interactiveCursorClass } = this.props;
71
+ const { onDragStart, onDrag, onDragComplete, onHover, onUnHover } = this.props;
72
+ 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"] }));
73
+ }
74
+ }
75
+ ChannelWithArea.defaultProps = {
76
+ type: "LINE",
77
+ strokeWidth: 1,
78
+ tolerance: 4,
79
+ selected: false,
80
+ };
81
+ function getLines(props, moreProps) {
82
+ const { startXY, endXY, dy, type } = props;
83
+ const { xScale } = moreProps;
84
+ if (isNotDefined(startXY) || isNotDefined(endXY)) {
85
+ return {};
86
+ }
87
+ const line1 = generateLine({
88
+ type,
89
+ start: startXY,
90
+ end: endXY,
91
+ xScale,
92
+ yScale: undefined,
93
+ });
94
+ const line2 = isDefined(dy)
95
+ ? Object.assign(Object.assign({}, line1), { y1: line1.y1 + dy, y2: line1.y2 + dy }) : undefined;
96
+ return {
97
+ line1,
98
+ line2,
99
+ };
100
+ }
101
+ function helper(props, moreProps) {
102
+ const lines = getLines(props, moreProps);
103
+ const { xScale, chartConfig: { yScale }, } = moreProps;
104
+ const line1 = lines.line1 !== undefined
105
+ ? {
106
+ x1: xScale(lines.line1.x1),
107
+ y1: yScale(lines.line1.y1),
108
+ x2: xScale(lines.line1.x2),
109
+ y2: yScale(lines.line1.y2),
110
+ }
111
+ : undefined;
112
+ const line2 = lines.line2 !== undefined
113
+ ? {
114
+ x1: line1.x1,
115
+ y1: yScale(lines.line2.y1),
116
+ x2: line1.x2,
117
+ y2: yScale(lines.line2.y2),
118
+ }
119
+ : undefined;
120
+ return {
121
+ lines,
122
+ line1,
123
+ line2,
124
+ };
125
+ }
126
+ //# sourceMappingURL=ChannelWithArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelWithArea.js","sourceRoot":"","sources":["../../src/components/ChannelWithArea.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ export interface ClickableCircleProps {
3
+ readonly onDragStart?: (e: React.MouseEvent, moreProps: any) => void;
4
+ readonly onDrag?: (e: React.MouseEvent, moreProps: any) => void;
5
+ readonly onDragComplete?: (e: React.MouseEvent, moreProps: any) => void;
6
+ readonly strokeWidth: number;
7
+ readonly strokeStyle: string;
8
+ readonly fillStyle: string;
9
+ readonly r: number;
10
+ readonly cx?: number;
11
+ readonly cy?: number;
12
+ readonly className: string;
13
+ readonly show: boolean;
14
+ readonly interactiveCursorClass?: string;
15
+ readonly xyProvider?: (moreProps: any) => number[];
16
+ }
17
+ export declare class ClickableCircle extends React.Component<ClickableCircleProps> {
18
+ static defaultProps: {
19
+ className: string;
20
+ show: boolean;
21
+ };
22
+ render(): JSX.Element | null;
23
+ private readonly drawOnCanvas;
24
+ private readonly isHover;
25
+ private readonly helper;
26
+ }
@@ -0,0 +1,48 @@
1
+ import * as React from "react";
2
+ import { getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
3
+ export class ClickableCircle extends React.Component {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.drawOnCanvas = (ctx, moreProps) => {
7
+ const { strokeStyle, strokeWidth, fillStyle, r } = this.props;
8
+ ctx.lineWidth = strokeWidth;
9
+ ctx.fillStyle = fillStyle;
10
+ ctx.strokeStyle = strokeStyle;
11
+ const [x, y] = this.helper(moreProps);
12
+ ctx.beginPath();
13
+ ctx.arc(x, y, r, 0, 2 * Math.PI, false);
14
+ ctx.fill();
15
+ ctx.stroke();
16
+ };
17
+ this.isHover = (moreProps) => {
18
+ const { mouseXY } = moreProps;
19
+ const r = this.props.r + 7;
20
+ const [x, y] = this.helper(moreProps);
21
+ const [mx, my] = mouseXY;
22
+ const hover = x - r < mx && mx < x + r && y - r < my && my < y + r;
23
+ return hover;
24
+ };
25
+ this.helper = (moreProps) => {
26
+ const { xyProvider, cx, cy } = this.props;
27
+ if (xyProvider !== undefined) {
28
+ return xyProvider(moreProps);
29
+ }
30
+ const { xScale, chartConfig: { yScale }, } = moreProps;
31
+ const x = xScale(cx);
32
+ const y = yScale(cy);
33
+ return [x, y];
34
+ };
35
+ }
36
+ render() {
37
+ const { interactiveCursorClass, onDragStart, onDrag, onDragComplete, show } = this.props;
38
+ if (!show) {
39
+ return null;
40
+ }
41
+ return (React.createElement(GenericChartComponent, { interactiveCursorClass: interactiveCursorClass, selected: true, isHover: this.isHover, onDragStart: onDragStart, onDrag: onDrag, onDragComplete: onDragComplete, canvasDraw: this.drawOnCanvas, canvasToDraw: getMouseCanvas, drawOn: ["pan", "mousemove", "drag"] }));
42
+ }
43
+ }
44
+ ClickableCircle.defaultProps = {
45
+ className: "react-financial-charts-interactive-line-edge",
46
+ show: false,
47
+ };
48
+ //# sourceMappingURL=ClickableCircle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickableCircle.js","sourceRoot":"","sources":["../../src/components/ClickableCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAkB5E,MAAM,OAAO,eAAgB,SAAQ,KAAK,CAAC,SAA+B;IAA1E;;QA4BqB,iBAAY,GAAG,CAAC,GAA6B,EAAE,SAAc,EAAE,EAAE;YAC9E,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAE9D,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;YAC5B,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC1B,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;YAE9B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtC,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC;QAEe,YAAO,GAAG,CAAC,SAAc,EAAE,EAAE;YAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAEnE,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEe,WAAM,GAAG,CAAC,SAAc,EAAE,EAAE;YACzC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAE1C,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;aAChC;YAED,MAAM,EACF,MAAM,EACN,WAAW,EAAE,EAAE,MAAM,EAAE,GAC1B,GAAG,SAAS,CAAC;YAEd,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;IACN,CAAC;IAhEU,MAAM;QACT,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzF,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QAED,OAAO,CACH,oBAAC,qBAAqB,IAClB,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,QACR,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,IAAI,CAAC,YAAY,EAC7B,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,GACtC,CACL,CAAC;IACN,CAAC;;AAzBa,4BAAY,GAAG;IACzB,SAAS,EAAE,8CAA8C;IACzD,IAAI,EAAE,KAAK;CACd,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as React from "react";
2
+ export interface ClickableShapeProps {
3
+ readonly fontWeight: string;
4
+ readonly fontFamily: string;
5
+ readonly fontStyle: string;
6
+ readonly fontSize: number;
7
+ readonly strokeStyle: string;
8
+ readonly strokeWidth: number;
9
+ readonly text: string;
10
+ readonly textBox: {
11
+ readonly closeIcon: any;
12
+ readonly left: number;
13
+ readonly padding: any;
14
+ };
15
+ readonly hovering?: boolean;
16
+ readonly interactiveCursorClass?: string;
17
+ readonly show?: boolean;
18
+ readonly onHover?: (e: React.MouseEvent, moreProps: any) => void;
19
+ readonly onUnHover?: (e: React.MouseEvent, moreProps: any) => void;
20
+ readonly onClick?: (e: React.MouseEvent, moreProps: any) => void;
21
+ readonly yValue: number;
22
+ }
23
+ export declare class ClickableShape extends React.Component<ClickableShapeProps> {
24
+ static defaultProps: {
25
+ show: boolean;
26
+ strokeWidth: number;
27
+ };
28
+ private closeIcon;
29
+ render(): JSX.Element | null;
30
+ private readonly drawOnCanvas;
31
+ private readonly isHover;
32
+ private readonly helper;
33
+ }
@@ -0,0 +1,64 @@
1
+ import * as React from "react";
2
+ import { getMouseCanvas, GenericChartComponent } from "@tradingaction/core";
3
+ import { isHovering2 } from "./InteractiveStraightLine";
4
+ export class ClickableShape extends React.Component {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.drawOnCanvas = (ctx, moreProps) => {
8
+ const { strokeStyle, strokeWidth, hovering, textBox } = this.props;
9
+ const [x, y] = this.helper(this.props, moreProps, ctx);
10
+ this.closeIcon = { x, y };
11
+ ctx.beginPath();
12
+ ctx.lineWidth = hovering ? strokeWidth + 1 : strokeWidth;
13
+ ctx.strokeStyle = strokeStyle;
14
+ const halfWidth = textBox.closeIcon.width / 2;
15
+ ctx.moveTo(x - halfWidth, y - halfWidth);
16
+ ctx.lineTo(x + halfWidth, y + halfWidth);
17
+ ctx.moveTo(x - halfWidth, y + halfWidth);
18
+ ctx.lineTo(x + halfWidth, y - halfWidth);
19
+ ctx.stroke();
20
+ };
21
+ this.isHover = (moreProps) => {
22
+ const { mouseXY } = moreProps;
23
+ if (this.closeIcon) {
24
+ const { textBox } = this.props;
25
+ const { x, y } = this.closeIcon;
26
+ const halfWidth = textBox.closeIcon.width / 2;
27
+ const start1 = [x - halfWidth, y - halfWidth];
28
+ const end1 = [x + halfWidth, y + halfWidth];
29
+ const start2 = [x - halfWidth, y + halfWidth];
30
+ const end2 = [x + halfWidth, y - halfWidth];
31
+ if (isHovering2(start1, end1, mouseXY, 3) || isHovering2(start2, end2, mouseXY, 3)) {
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ };
37
+ this.helper = (props, moreProps, ctx) => {
38
+ const { yValue, text, textBox } = props;
39
+ const { fontFamily, fontStyle, fontWeight, fontSize } = props;
40
+ ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;
41
+ const { chartConfig: { yScale }, } = moreProps;
42
+ const x = textBox.left +
43
+ textBox.padding.left +
44
+ ctx.measureText(text).width +
45
+ textBox.padding.right +
46
+ textBox.closeIcon.padding.left +
47
+ textBox.closeIcon.width / 2;
48
+ const y = yScale(yValue);
49
+ return [x, y];
50
+ };
51
+ }
52
+ render() {
53
+ const { interactiveCursorClass, onHover, onUnHover, onClick, show } = this.props;
54
+ if (!show) {
55
+ return null;
56
+ }
57
+ return (React.createElement(GenericChartComponent, { interactiveCursorClass: interactiveCursorClass, isHover: this.isHover, onClickWhenHover: onClick, canvasDraw: this.drawOnCanvas, canvasToDraw: getMouseCanvas, onHover: onHover, onUnHover: onUnHover, drawOn: ["pan", "mousemove", "drag"] }));
58
+ }
59
+ }
60
+ ClickableShape.defaultProps = {
61
+ show: false,
62
+ strokeWidth: 1,
63
+ };
64
+ //# sourceMappingURL=ClickableShape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickableShape.js","sourceRoot":"","sources":["../../src/components/ClickableShape.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+ export interface GannFanProps {
3
+ readonly startXY: number[];
4
+ readonly defaultClassName?: string;
5
+ readonly endXY: number[];
6
+ readonly fillStyle: Array<string>;
7
+ readonly fontFamily: string;
8
+ readonly fontSize: number;
9
+ readonly fontFill: string;
10
+ readonly interactiveCursorClass?: string;
11
+ readonly onDragStart?: (e: React.MouseEvent, moreProps: any) => void;
12
+ readonly onDrag?: (e: React.MouseEvent, moreProps: any) => void;
13
+ readonly onDragComplete?: (e: React.MouseEvent, moreProps: any) => void;
14
+ readonly onHover?: (e: React.MouseEvent, moreProps: any) => void;
15
+ readonly onUnHover?: (e: React.MouseEvent, moreProps: any) => void;
16
+ readonly selected: boolean;
17
+ readonly strokeStyle: string;
18
+ readonly strokeWidth: number;
19
+ readonly tolerance: number;
20
+ }
21
+ export declare class GannFan extends React.Component<GannFanProps> {
22
+ static defaultProps: {
23
+ strokeWidth: number;
24
+ tolerance: number;
25
+ selected: boolean;
26
+ };
27
+ render(): JSX.Element;
28
+ private readonly drawOnCanvas;
29
+ private readonly isHover;
30
+ private readonly getLineCoordinates;
31
+ private readonly helper;
32
+ }