@tradecanvas/core 1.75.0 → 1.77.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.
- package/dist/drawings/tools/ElliottWave.d.ts +8 -0
- package/dist/drawings/tools/ElliottWave.d.ts.map +1 -1
- package/dist/drawings/tools/Ellipse.d.ts +9 -1
- package/dist/drawings/tools/Ellipse.d.ts.map +1 -1
- package/dist/drawings/tools/Pitchfork.d.ts +13 -0
- package/dist/drawings/tools/Pitchfork.d.ts.map +1 -1
- package/dist/drawings/tools/PriceLabel.d.ts +2 -0
- package/dist/drawings/tools/PriceLabel.d.ts.map +1 -1
- package/dist/drawings/tools/TextAnnotation.d.ts +6 -0
- package/dist/drawings/tools/TextAnnotation.d.ts.map +1 -1
- package/dist/drawings/tools/annotations.d.ts +6 -0
- package/dist/drawings/tools/annotations.d.ts.map +1 -1
- package/dist/drawings/tools/freehand.d.ts +4 -1
- package/dist/drawings/tools/freehand.d.ts.map +1 -1
- package/dist/drawings/tools/markers.d.ts.map +1 -1
- package/dist/drawings/tools/patternLabels.d.ts +38 -0
- package/dist/drawings/tools/patternLabels.d.ts.map +1 -0
- package/dist/drawings/tools/patterns.d.ts +17 -3
- package/dist/drawings/tools/patterns.d.ts.map +1 -1
- package/dist/drawings/tools/textBox.d.ts +18 -0
- package/dist/drawings/tools/textBox.d.ts.map +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1795 -1500
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { DrawingState, Point, ViewportState } from '@tradecanvas/commons';
|
|
2
2
|
import { DrawingBase } from '../DrawingBase.js';
|
|
3
|
+
import { VertexMark } from './patternLabels.js';
|
|
3
4
|
/** How a wave degree writes its labels: ① Ⓐ, (1) (A), 1 A, or i a. */
|
|
4
5
|
export type WaveDegree = 'primary' | 'intermediate' | 'minor' | 'minute';
|
|
5
6
|
/** A wave label (a digit 0–5 or a capital letter) as `degree` writes it. */
|
|
6
7
|
export declare function waveLabel(label: string, degree: WaveDegree): string;
|
|
8
|
+
/**
|
|
9
|
+
* A wave label as the chart draws it: a primary degree's figure plain, in a
|
|
10
|
+
* ring drawn round it, since the circled glyphs are too small to read at a
|
|
11
|
+
* label's size and missing from many fonts; the others as `waveLabel` writes
|
|
12
|
+
* them.
|
|
13
|
+
*/
|
|
14
|
+
export declare function waveMark(label: string, degree: WaveDegree): VertexMark;
|
|
7
15
|
/**
|
|
8
16
|
* A wave count: a line through its turning points, each labelled above a
|
|
9
17
|
* high or below a low, in the style of the wave degree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElliottWave.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/ElliottWave.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ElliottWave.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/ElliottWave.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAIzE,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAanE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAEtE;AAgBD;;;GAGG;AACH,uBAAe,QAAS,SAAQ,WAAW;IACzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEtD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAgB5G,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAIhG;AAED,6DAA6D;AAC7D,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,UAAU;;;;;;;;;;;;;;;MAAsG;IAChH,SAAS,CAAC,QAAQ,CAAC,MAAM,WAA4C;CACtE;AAED,yDAAyD;AACzD,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,UAAU;;;;;;;;;;;;;;;MAAiH;IAC3H,SAAS,CAAC,QAAQ,CAAC,MAAM,WAAkC;CAC5D;AAED,2BAA2B;AAC3B,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,UAAU;;;;;;;;;;;;;;;MAAuH;IACjI,SAAS,CAAC,QAAQ,CAAC,MAAM,WAAwB;CAClD;AAED,wBAAwB;AACxB,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,UAAU;;;;;;;;;;;;;;;MAAmH;IAC7H,SAAS,CAAC,QAAQ,CAAC,MAAM,WAAkC;CAC5D;AAED,mCAAmC;AACnC,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,UAAU;;;;;;;;;;;;;;;MAA0H;IACpI,SAAS,CAAC,QAAQ,CAAC,MAAM,WAAwB;CAClD;AAED,yCAAyC;AACzC,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,UAAU;;;;;;;;;;;;;;;MAA0H;IACpI,SAAS,CAAC,QAAQ,CAAC,MAAM,WAAkC;CAC5D"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import { DrawingState, Point, ViewportState } from '@tradecanvas/commons';
|
|
1
|
+
import { AnchorPoint, DrawingState, Point, ViewportState } from '@tradecanvas/commons';
|
|
2
2
|
import { DrawingBase } from '../DrawingBase.js';
|
|
3
|
+
/**
|
|
4
|
+
* An ellipse in the box between two corners (its anchors). Its four handles sit on
|
|
5
|
+
* its curve, at the middles of the box's sides: 0 the first anchor's price, 1 the
|
|
6
|
+
* second's, 2 the first's time, 3 the second's, each moving that side. On the box's
|
|
7
|
+
* corners they floated off the shape, away from anything drawn.
|
|
8
|
+
*/
|
|
3
9
|
export declare class EllipseTool extends DrawingBase {
|
|
4
10
|
descriptor: {
|
|
5
11
|
type: "ellipse";
|
|
@@ -8,6 +14,8 @@ export declare class EllipseTool extends DrawingBase {
|
|
|
8
14
|
fill: boolean;
|
|
9
15
|
};
|
|
10
16
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
17
|
+
protected handlePoints(state: DrawingState, viewport: ViewportState): Point[];
|
|
18
|
+
moveHandle(state: DrawingState, index: number, anchor: AnchorPoint): DrawingState;
|
|
11
19
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
12
20
|
}
|
|
13
21
|
//# sourceMappingURL=Ellipse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipse.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/Ellipse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Ellipse.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/Ellipse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C,UAAU;;;;;MAAiF;IAE3F,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;cAmBzF,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,GAAG,KAAK,EAAE;IAQtF,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY;IAWjF,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAchG"}
|
|
@@ -7,7 +7,20 @@ export declare class PitchforkTool extends DrawingBase {
|
|
|
7
7
|
* Andrews' starts at A; the Schiff variants shift it toward B.
|
|
8
8
|
*/
|
|
9
9
|
protected origin(p0: Point, _p1: Point): Point;
|
|
10
|
+
private fork;
|
|
10
11
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
12
|
+
/** While C is still being placed: the line from A to B. */
|
|
13
|
+
private renderFirstLeg;
|
|
14
|
+
/**
|
|
15
|
+
* The area between the tines, from the B–C line out to where the tines leave the plot,
|
|
16
|
+
* tinted in the line's colour unless a fill is set by hand. Both tines run as far as the
|
|
17
|
+
* longer one and the shade is clipped to the plot, so its far edge is the plot's edge.
|
|
18
|
+
*/
|
|
19
|
+
private fillTines;
|
|
20
|
+
/** The Schiff variants: a guide from pivot A to the shifted origin, showing how the two relate. */
|
|
21
|
+
private renderOriginGuide;
|
|
22
|
+
private strokeSegment;
|
|
23
|
+
/** On a line as drawn: B–C, or the median or a tine up to the plot's edge. */
|
|
11
24
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
12
25
|
}
|
|
13
26
|
/** Schiff Pitchfork: the median starts halfway in price from A to B, at A's time. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pitchfork.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/Pitchfork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Pitchfork.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/Pitchfork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwChD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,UAAU,EAAE,iBAAiB,CAAqF;IAElH;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK;IAI9C,OAAO,CAAC,IAAI;IAYZ,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAmB5G,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IAQtB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAqBjB,mGAAmG;IACnG,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;IAOrB,8EAA8E;IAC9E,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAKhG;AAED,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,aAAa;IAC3C,UAAU,EAAE,iBAAiB,CAAyF;cAE5G,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK;CAGvD;AAED,uGAAuG;AACvG,qBAAa,2BAA4B,SAAQ,aAAa;IACnD,UAAU,EAAE,iBAAiB,CAA0G;cAE7H,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK;CAGvD"}
|
|
@@ -13,6 +13,8 @@ export declare class PriceLabelTool extends DrawingBase {
|
|
|
13
13
|
private text;
|
|
14
14
|
private box;
|
|
15
15
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
16
|
+
/** The box, rounded and on whole pixels, filled with `color`. */
|
|
17
|
+
private fillBox;
|
|
16
18
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=PriceLabel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriceLabel.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/PriceLabel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"PriceLabel.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/PriceLabel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuBhD,mFAAmF;AACnF,qBAAa,cAAe,SAAQ,WAAW;IAC7C,0FAA0F;IAC1F,OAAO,CAAC,KAAK,CAAkB;IAE/B,UAAU;;;;;MAAwF;IAElG,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,GAAG;IASX,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAgC5G,iEAAiE;IACjE,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAUhG"}
|
|
@@ -15,6 +15,12 @@ export declare class TextAnnotationTool extends DrawingBase {
|
|
|
15
15
|
descriptor: DrawingDescriptor;
|
|
16
16
|
private boxes;
|
|
17
17
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
18
|
+
/**
|
|
19
|
+
* No handle: its point is inside the box's padding, on the first letter, and
|
|
20
|
+
* a handle dragged sets the point to the pointer, which would make the text
|
|
21
|
+
* jump. A press anywhere on it moves it whole; the frame shows it is picked.
|
|
22
|
+
*/
|
|
23
|
+
protected handlePoints(): Point[];
|
|
18
24
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
19
25
|
textBox(state: DrawingState): Rect | null;
|
|
20
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextAnnotation.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/TextAnnotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"TextAnnotation.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/TextAnnotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAA+E,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAKtH;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,SAAS,GAAG,MAAM,CAOpF;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,UAAU,EAAE,iBAAiB,CAA8E;IAE3G,OAAO,CAAC,KAAK,CAAkB;IAE/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAU5G;;;;OAIG;cACgB,YAAY,IAAI,KAAK,EAAE;IAI1C,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAM/F,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;CAI1C"}
|
|
@@ -23,6 +23,8 @@ export declare class CalloutTool extends DrawingBase {
|
|
|
23
23
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
24
24
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
25
25
|
textBox(state: DrawingState): Rect | null;
|
|
26
|
+
/** The box's handle on the box as drawn (kept on the plot), so a drag from it starts where it shows. */
|
|
27
|
+
protected handlePoints(state: DrawingState, viewport: ViewportState): Point[];
|
|
26
28
|
}
|
|
27
29
|
/** A flag planted at a bar and price. */
|
|
28
30
|
export declare class FlagTool extends DrawingBase {
|
|
@@ -65,6 +67,8 @@ export declare class ArrowMarkTool extends DrawingBase {
|
|
|
65
67
|
};
|
|
66
68
|
private outline;
|
|
67
69
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
70
|
+
/** No handle: one at its tip would cover the arrow's head. A press on it moves it; the frame shows it is picked. */
|
|
71
|
+
protected handlePoints(): Point[];
|
|
68
72
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
69
73
|
}
|
|
70
74
|
export declare const ICON_GLYPHS: readonly ["star", "heart", "check", "cross", "circle", "triangleUp", "triangleDown", "bolt"];
|
|
@@ -98,6 +102,8 @@ export declare class IconTool extends DrawingBase {
|
|
|
98
102
|
};
|
|
99
103
|
};
|
|
100
104
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
105
|
+
/** No handle: one at its point, the glyph's middle, would cover the glyph. A press on it moves it; the frame shows it is picked. */
|
|
106
|
+
protected handlePoints(): Point[];
|
|
101
107
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
102
108
|
}
|
|
103
109
|
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/annotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,10 @@ export declare class BrushTool extends DrawingBase {
|
|
|
13
13
|
alpha: number;
|
|
14
14
|
};
|
|
15
15
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* A selected stroke is framed as a text is, instead of showing hundreds of handles;
|
|
18
|
+
* the frame's room counts as covered either way, for a toolbar placed as it is picked.
|
|
19
|
+
*/
|
|
17
20
|
private renderBounds;
|
|
18
21
|
/** The stroke's box on screen, from its time and price span. */
|
|
19
22
|
private screenBox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freehand.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/freehand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"freehand.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/freehand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/markers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAyB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAA2D,KAAK,IAAI,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/markers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAyB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAA2D,KAAK,IAAI,EAAoB,MAAM,cAAc,CAAC;AA4EpH,oGAAoG;AACpG,qBAAa,YAAa,SAAQ,WAAW;IAC3C,UAAU,EAAE,iBAAiB,CAAsF;IAEnH,OAAO,CAAC,KAAK,CAAkB;IAE/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAiB5G,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAS/F,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;CAG1C;AAED,4GAA4G;AAC5G,qBAAa,WAAY,SAAQ,WAAW;IAC1C,UAAU,EAAE,iBAAiB,CAAoF;IAEjH,OAAO,CAAC,KAAK,CAAkB;IAE/B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAc5G,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAW/F,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;CAG1C;AAED,0GAA0G;AAC1G,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,UAAU,EAAE,iBAAiB,CAAoH;CAClJ;AAED,8FAA8F;AAC9F,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,UAAU,EAAE,iBAAiB,CAQ3B;CACH"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DrawingState, Point } from '@tradecanvas/commons';
|
|
2
|
+
import { LabelBox } from './labels.js';
|
|
3
|
+
/** Which side of its point a label goes. */
|
|
4
|
+
export type VertexSide = 'above' | 'below';
|
|
5
|
+
/** A point's name, with a short form for where the full one would meet another. */
|
|
6
|
+
export interface VertexMark {
|
|
7
|
+
text: string;
|
|
8
|
+
/** Written instead of `text` when the full names would print over each other. */
|
|
9
|
+
short?: string;
|
|
10
|
+
/** Placed before the others, so it is the one kept when there is room for only one. */
|
|
11
|
+
first?: boolean;
|
|
12
|
+
/** Drawn inside a ring of its own (a wave degree's circled figure). */
|
|
13
|
+
ring?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The side of point `i` its label goes: above a peak, below a trough. A point
|
|
17
|
+
* part way along a run goes to the side its neighbours' chord leaves open; an
|
|
18
|
+
* end, by its one neighbour.
|
|
19
|
+
*/
|
|
20
|
+
export declare function vertexSide(pts: readonly Point[], i: number): VertexSide;
|
|
21
|
+
/** How far a label sits from its point's centre, px: past its handle, selected or not. */
|
|
22
|
+
export declare function vertexOffset(lineWidth: number): number;
|
|
23
|
+
/**
|
|
24
|
+
* The names of a drawing's points, in the current font and `height` px tall:
|
|
25
|
+
* each centred outside its point, past its handle, in the drawing's colour on
|
|
26
|
+
* a halo. Returns the boxes drawn, for the labels after them to keep clear of.
|
|
27
|
+
*/
|
|
28
|
+
export declare function drawVertexLabels(ctx: CanvasRenderingContext2D, state: DrawingState, pts: readonly Point[], marks: readonly VertexMark[], height: number): LabelBox[];
|
|
29
|
+
/** The boxes a drawing's handles take at their biggest, for labels to keep clear of. */
|
|
30
|
+
export declare function handleBoxes(pts: readonly Point[], lineWidth: number): LabelBox[];
|
|
31
|
+
/**
|
|
32
|
+
* A ratio on the guide from `p` to `q`, in the mark size and the current
|
|
33
|
+
* colour, on a halo: at the guide's middle, or moved along it to the first
|
|
34
|
+
* spot clear of `placed` (handles, names, other ratios) and of the legend.
|
|
35
|
+
* Left out where no spot is clear. Returns its box, or null.
|
|
36
|
+
*/
|
|
37
|
+
export declare function drawGuideRatio(ctx: CanvasRenderingContext2D, text: string, p: Point, q: Point, placed: readonly LabelBox[]): LabelBox | null;
|
|
38
|
+
//# sourceMappingURL=patternLabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patternLabels.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/patternLabels.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAA6C,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvF,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3C,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAOvE;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD;AAmED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,SAAS,KAAK,EAAE,EACrB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,MAAM,EAAE,MAAM,GACb,QAAQ,EAAE,CAcZ;AAuBD,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAGhF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,wBAAwB,EAC7B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,SAAS,QAAQ,EAAE,GAC1B,QAAQ,GAAG,IAAI,CAqBjB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DrawingState, Point, ViewportState } from '@tradecanvas/commons';
|
|
2
2
|
import { DrawingBase } from '../DrawingBase.js';
|
|
3
|
+
import { VertexMark } from './patternLabels.js';
|
|
3
4
|
/** A dashed connector between two pattern points labelled with a leg ratio. */
|
|
4
5
|
interface RatioLink {
|
|
5
6
|
from: number;
|
|
@@ -13,15 +14,23 @@ interface RatioLink {
|
|
|
13
14
|
* links (e.g. XB = |AB| / |XA|) as harmonic-pattern traders read them.
|
|
14
15
|
*/
|
|
15
16
|
declare abstract class PatternTool extends DrawingBase {
|
|
16
|
-
protected abstract readonly pointLabels: string[];
|
|
17
|
+
protected abstract readonly pointLabels: readonly (string | VertexMark)[];
|
|
17
18
|
protected readonly ratioLinks: RatioLink[];
|
|
18
19
|
/** Triangles (by anchor index) filled with the drawing's fill color. */
|
|
19
20
|
protected readonly triangles: [number, number, number][];
|
|
20
21
|
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
21
22
|
/** Hook for pattern-specific decoration (e.g. a neckline). */
|
|
22
23
|
protected renderExtras(_ctx: CanvasRenderingContext2D, _state: DrawingState, _pts: Point[], _viewport: ViewportState): void;
|
|
24
|
+
/** The font the point names are set in: the letters' size, in the figures' face. */
|
|
25
|
+
protected pointFont(): {
|
|
26
|
+
font: string;
|
|
27
|
+
height: number;
|
|
28
|
+
};
|
|
23
29
|
private renderTriangles;
|
|
24
|
-
|
|
30
|
+
/** The ratio links whose points are all drawn so far. */
|
|
31
|
+
private linksIn;
|
|
32
|
+
private renderGuides;
|
|
33
|
+
private renderRatios;
|
|
25
34
|
private renderPointLabels;
|
|
26
35
|
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
27
36
|
}
|
|
@@ -59,7 +68,12 @@ export declare class HeadAndShouldersTool extends PatternTool {
|
|
|
59
68
|
requiredAnchors: number;
|
|
60
69
|
fill: boolean;
|
|
61
70
|
};
|
|
62
|
-
protected readonly pointLabels:
|
|
71
|
+
protected readonly pointLabels: readonly VertexMark[];
|
|
72
|
+
/** The names are words: set in the prose face, at the labels' size. */
|
|
73
|
+
protected pointFont(): {
|
|
74
|
+
font: string;
|
|
75
|
+
height: number;
|
|
76
|
+
};
|
|
63
77
|
protected readonly triangles: [number, number, number][];
|
|
64
78
|
protected renderExtras(ctx: CanvasRenderingContext2D, state: DrawingState, pts: Point[]): void;
|
|
65
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@ export interface TextBoxLook {
|
|
|
22
22
|
align?: 'left' | 'center' | 'right';
|
|
23
23
|
/** Most lines drawn (12 when left out): a note keeps short, a text says what it has to. */
|
|
24
24
|
maxLines?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Traces the box's outline (on whole pixels) in place of a rounded box, for a
|
|
27
|
+
* box with more to its shape (a balloon's tail): filled and outlined as one.
|
|
28
|
+
*/
|
|
29
|
+
traceBox?: (ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number) => void;
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
32
|
* The look of a drawing's text from its style (`DrawingStyle`'s text
|
|
@@ -52,6 +57,19 @@ export declare function measureTextBox(ctx: CanvasRenderingContext2D, text: stri
|
|
|
52
57
|
};
|
|
53
58
|
/** Draw wrapped text in a box with its top-left at (x, y). Returns the box. */
|
|
54
59
|
export declare function drawTextBox(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, look: TextBoxLook): Rect;
|
|
60
|
+
/**
|
|
61
|
+
* A selected one-point drawing's frame (a text, a mark): 1 px, solid, rounded
|
|
62
|
+
* and on whole pixels, in `color`, `FRAME_GAP` outside `rect`. These drawings
|
|
63
|
+
* show it in place of a handle, which would sit on their letters or glyph.
|
|
64
|
+
* Its room is noted as covered whether or not it is drawn: a toolbar placed as
|
|
65
|
+
* the drawing is picked, before the frame shows, keeps clear of it.
|
|
66
|
+
*/
|
|
67
|
+
export declare function strokeSelectionFrame(ctx: CanvasRenderingContext2D, rect: Rect, color: string, selected?: boolean): void;
|
|
68
|
+
/** The box round `points` (a glyph's outline). */
|
|
69
|
+
export declare function boundsOf(points: readonly {
|
|
70
|
+
x: number;
|
|
71
|
+
y: number;
|
|
72
|
+
}[]): Rect;
|
|
55
73
|
export declare function inRect(point: {
|
|
56
74
|
x: number;
|
|
57
75
|
y: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textBox.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/textBox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD,4EAA4E;AAE5E,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"textBox.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/textBox.ts"],"names":[],"mappings":"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"}
|