tslab-widgets 0.1.0 → 1.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 (43) hide show
  1. package/LICENSE +170 -197
  2. package/dist/chart/chart.d.ts +10 -9
  3. package/dist/chart/chart.d.ts.map +1 -0
  4. package/dist/chart/chart.js +219 -79
  5. package/dist/chart/chart.js.map +1 -0
  6. package/dist/chart/plugins/tooltip.d.ts +32 -17
  7. package/dist/chart/plugins/tooltip.d.ts.map +1 -0
  8. package/dist/chart/plugins/tooltip.js +235 -64
  9. package/dist/chart/plugins/tooltip.js.map +1 -0
  10. package/dist/chart/plugins/trendLine.d.ts +5 -4
  11. package/dist/chart/plugins/trendLine.d.ts.map +1 -0
  12. package/dist/chart/plugins/trendLine.js +10 -4
  13. package/dist/chart/plugins/trendLine.js.map +1 -0
  14. package/dist/chart/plugins/verticalLine.d.ts +5 -4
  15. package/dist/chart/plugins/verticalLine.d.ts.map +1 -0
  16. package/dist/chart/plugins/verticalLine.js +43 -13
  17. package/dist/chart/plugins/verticalLine.js.map +1 -0
  18. package/dist/chart/plugins/volumeProfile.d.ts +31 -11
  19. package/dist/chart/plugins/volumeProfile.d.ts.map +1 -0
  20. package/dist/chart/plugins/volumeProfile.js +162 -24
  21. package/dist/chart/plugins/volumeProfile.js.map +1 -0
  22. package/dist/config/versions.d.ts +37 -0
  23. package/dist/config/versions.d.ts.map +1 -0
  24. package/dist/config/versions.js +43 -0
  25. package/dist/config/versions.js.map +1 -0
  26. package/dist/csv/csv.d.ts +1 -0
  27. package/dist/csv/csv.d.ts.map +1 -0
  28. package/dist/csv/csv.js +8 -6
  29. package/dist/csv/csv.js.map +1 -0
  30. package/dist/gauge/gauge.d.ts +1 -0
  31. package/dist/gauge/gauge.d.ts.map +1 -0
  32. package/dist/gauge/gauge.js +7 -5
  33. package/dist/gauge/gauge.js.map +1 -0
  34. package/dist/index.d.ts +8 -7
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/json/json.d.ts +1 -0
  39. package/dist/json/json.d.ts.map +1 -0
  40. package/dist/json/json.js +5 -3
  41. package/dist/json/json.js.map +1 -0
  42. package/package.json +46 -31
  43. package/readme.md +54 -6
@@ -7,7 +7,9 @@ class TooltipCrosshairLinePaneRenderer {
7
7
  }
8
8
  positionsLine(positionMedia, pixelRatio, desiredWidthMedia = 1, widthIsBitmap) {
9
9
  const scaledPosition = Math.round(pixelRatio * positionMedia);
10
- const lineBitmapWidth = widthIsBitmap ? desiredWidthMedia : Math.round(desiredWidthMedia * pixelRatio);
10
+ const lineBitmapWidth = widthIsBitmap
11
+ ? desiredWidthMedia
12
+ : Math.round(desiredWidthMedia * pixelRatio);
11
13
  const offset = Math.floor(lineBitmapWidth * 0.5);
12
14
  const position = scaledPosition - offset;
13
15
  return { length: lineBitmapWidth, position };
@@ -15,7 +17,8 @@ class TooltipCrosshairLinePaneRenderer {
15
17
  draw(target) {
16
18
  if (!this._data.visible)
17
19
  return;
18
- target.useBitmapCoordinateSpace(scope => {
20
+ // biome-ignore lint/correctness/useHookAtTopLevel: useBitmapCoordinateSpace is not a React hook
21
+ target.useBitmapCoordinateSpace((scope) => {
19
22
  const ctx = scope.context;
20
23
  const crosshairPos = this.positionsLine(this._data.x, scope.horizontalPixelRatio, 1);
21
24
  ctx.fillStyle = this._data.color;
@@ -25,74 +28,114 @@ class TooltipCrosshairLinePaneRenderer {
25
28
  }
26
29
  exports.TooltipCrosshairLinePaneRenderer = TooltipCrosshairLinePaneRenderer;
27
30
  class TooltipElement {
31
+ // private _priceElement: HTMLDivElement | null;
32
+ // private _dateElement: HTMLDivElement | null;
33
+ // private _timeElement: HTMLDivElement | null;
28
34
  constructor(chart, options) {
29
35
  this._lastTooltipWidth = null;
30
- this._options = Object.assign({ followMode: 'tracking', horizontalDeadzoneWidth: 0, title: '', topOffset: 20, verticalDeadzoneHeight: 100, verticalSpacing: 20 }, options);
36
+ this._options = Object.assign({ followMode: "tracking", horizontalDeadzoneWidth: 0, title: "", topOffset: 20, verticalDeadzoneHeight: 100, verticalSpacing: 20 }, options);
31
37
  this._chart = chart;
32
- const element = document.createElement('div');
38
+ const element = document.createElement("div");
33
39
  this.applyStyle(element, {
34
- 'align-items': 'center',
35
- 'background-color': 'rgba(80, 80, 80, 0.2)',
36
- 'border-radius': '4px',
37
- 'box-shadow': '0px 2px 4px rgba(0, 0, 0, 0.2)',
38
- color: '#DDD',
39
- display: 'flex',
40
- 'flex-direction': 'column',
41
- 'font-size': '11px',
42
- 'font-weight': '400',
43
- left: '0%',
44
- 'line-height': '13px',
45
- opacity: '0',
46
- padding: '5px 10px',
47
- 'pointer-events': 'none',
48
- position: 'absolute',
49
- top: '0',
50
- transform: 'translate(calc(0px - 50%), 0px)',
51
- 'z-index': '100',
40
+ position: "absolute",
41
+ display: "flex",
42
+ padding: "8px",
43
+ "box-sizing": "border-box",
44
+ "font-size": "12px",
45
+ "text-align": "center",
46
+ "z-index": "1000",
47
+ top: "0px",
48
+ left: "0px",
49
+ "pointer-events": "none",
50
+ "border-radius": "4px 4px 0px 0px",
51
+ "border-bottom": "none",
52
+ "margin-left": "8px",
53
+ // "box-shadow": "0 2px 5px 0 rgba(117, 134, 150, 0.45)",
54
+ "font-family": "-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif",
55
+ "-webkit-font-smoothing": "antialiased",
56
+ "-moz-osx-font-smoothing": "grayscale",
57
+ // "align-items": "center",
58
+ // "background-color": "rgba(120, 120, 120, 0.2)",
59
+ // "box-shadow": "0px 2px 4px rgba(0, 0, 0, 0.2)",
60
+ // color: "#eee",
61
+ "flex-direction": "column",
62
+ // "font-weight": "400",
63
+ // left: "0%",
64
+ // "line-height": "13px",
65
+ // opacity: "0",
66
+ // top: "0",
67
+ // transform: "translate(calc(0px - 50%), 0px)",
52
68
  });
53
- const titleElement = document.createElement('div');
69
+ const titleElement = document.createElement("div");
54
70
  this.applyStyle(titleElement, {
55
- 'font-size': '12px',
56
- 'font-weight': '590',
57
- 'line-height': '16px',
71
+ "font-size": "12px",
72
+ "font-weight": "bold",
73
+ "line-height": "14px",
74
+ "margin-bottom": "4px",
75
+ "text-align": "center",
76
+ transform: "translate(calc(0px + 50%), 0px)",
58
77
  });
59
78
  this.setElementContent(titleElement, this._options.title);
60
79
  element.appendChild(titleElement);
61
- const contentElement = document.createElement('div');
62
- this.setElementContent(contentElement, '');
80
+ // const priceElement = document.createElement("div");
81
+ // this.applyStyle(priceElement, {
82
+ // "font-size": "12px",
83
+ // "font-weight": "200",
84
+ // "margin-bottom": "2px",
85
+ // });
86
+ // this.setElementContent(priceElement, "");
87
+ // element.appendChild(priceElement);
88
+ // const dateElement = document.createElement("div");
89
+ // this.setElementContent(dateElement, "");
90
+ // element.appendChild(dateElement);
91
+ // const timeElement = document.createElement("div");
92
+ // this.setElementContent(timeElement, "");
93
+ // element.appendChild(timeElement);
94
+ // For backward compatibility, also keep the old content element
95
+ const contentElement = document.createElement("div");
96
+ contentElement.style.display = "none";
97
+ this.applyStyle(contentElement, {
98
+ transform: "translate(calc(0px + 50%), 0px)",
99
+ });
100
+ this.setElementContent(contentElement, "");
63
101
  element.appendChild(contentElement);
64
102
  this._element = element;
65
103
  this._titleElement = titleElement;
104
+ // this._priceElement = priceElement;
105
+ // this._dateElement = dateElement;
106
+ // this._timeElement = timeElement;
66
107
  this._contentElement = contentElement;
67
108
  const chartElement = this._chart.chartElement();
68
109
  chartElement.appendChild(this._element);
69
110
  const chartElementParent = chartElement.parentElement;
70
111
  if (!chartElementParent) {
71
- console.error('Chart Element is not attached to the page.');
112
+ console.error("Chart Element is not attached to the page.");
72
113
  return;
73
114
  }
74
115
  const position = getComputedStyle(chartElementParent).position;
75
- if (position !== 'relative' && position !== 'absolute') {
76
- console.error('Chart Element position is expected be `relative` or `absolute`.');
116
+ if (position !== "relative" && position !== "absolute") {
117
+ console.error("Chart Element position is expected be `relative` or `absolute`.");
77
118
  }
78
119
  }
79
120
  _calculateXPosition(positionData, chart) {
80
- const x = positionData.paneX + chart.priceScale('left').width();
121
+ const x = positionData.paneX + chart.priceScale("left").width();
81
122
  const deadzoneWidth = this._lastTooltipWidth
82
123
  ? Math.ceil(this._lastTooltipWidth / 2)
83
124
  : this._options.horizontalDeadzoneWidth;
84
125
  const w = chart.timeScale().width();
85
- const xAdjusted = w ? Math.min(Math.max(deadzoneWidth, x), w - deadzoneWidth) : Math.max(deadzoneWidth, x);
126
+ const xAdjusted = w
127
+ ? Math.min(Math.max(deadzoneWidth, x), w - deadzoneWidth)
128
+ : Math.max(deadzoneWidth, x);
86
129
  return `calc(${xAdjusted}px - 50%)`;
87
130
  }
88
131
  _calculateYPosition(positionData) {
89
- if (this._options.followMode === 'top') {
132
+ if (this._options.followMode === "top") {
90
133
  return `${this._options.topOffset}px`;
91
134
  }
92
135
  const y = positionData.paneY;
93
136
  const flip = y <= this._options.verticalSpacing + this._options.verticalDeadzoneHeight;
94
137
  const yPx = y + (flip ? 1 : -1) * this._options.verticalSpacing;
95
- const yPct = flip ? '' : ' - 100%';
138
+ const yPct = flip ? "" : " - 100%";
96
139
  return `calc(${yPx}px${yPct})`;
97
140
  }
98
141
  applyStyle(element, styles) {
@@ -105,7 +148,7 @@ class TooltipElement {
105
148
  return;
106
149
  }
107
150
  element.innerHTML = text;
108
- element.style.display = text ? 'block' : 'none';
151
+ element.style.display = text ? "block" : "none";
109
152
  }
110
153
  applyOptions(options) {
111
154
  this._options = Object.assign(Object.assign({}, this._options), options);
@@ -115,12 +158,14 @@ class TooltipElement {
115
158
  this._chart.chartElement().removeChild(this._element);
116
159
  }
117
160
  }
118
- options() { return this._options; }
161
+ options() {
162
+ return this._options;
163
+ }
119
164
  updatePosition(positionData) {
120
165
  if (!this._chart || !this._element) {
121
166
  return;
122
167
  }
123
- this._element.style.opacity = positionData.visible ? '1' : '0';
168
+ this._element.style.opacity = positionData.visible ? "1" : "0";
124
169
  if (!positionData.visible) {
125
170
  return;
126
171
  }
@@ -134,10 +179,23 @@ class TooltipElement {
134
179
  }
135
180
  const tooltipMeasurement = this._element.getBoundingClientRect();
136
181
  this._lastTooltipWidth = tooltipMeasurement.width;
182
+ // Update structured content
137
183
  if (tooltipContentData.title !== undefined && this._titleElement) {
138
184
  this.setElementContent(this._titleElement, tooltipContentData.title);
139
185
  }
140
- this.setElementContent(this._contentElement, tooltipContentData.content);
186
+ // if (tooltipContentData.price !== undefined && this._priceElement) {
187
+ // this.setElementContent(this._priceElement, tooltipContentData.price);
188
+ // }
189
+ // if (tooltipContentData.date !== undefined && this._dateElement) {
190
+ // this.setElementContent(this._dateElement, tooltipContentData.date);
191
+ // }
192
+ // if (tooltipContentData.time !== undefined && this._timeElement) {
193
+ // this.setElementContent(this._timeElement, tooltipContentData.time);
194
+ // }
195
+ // For backward compatibility, also update the old content element
196
+ if (this._contentElement && tooltipContentData.content) {
197
+ this.setElementContent(this._contentElement, tooltipContentData.content);
198
+ }
141
199
  }
142
200
  }
143
201
  exports.TooltipElement = TooltipElement;
@@ -145,39 +203,98 @@ class MultiTouchCrosshairPaneView {
145
203
  constructor(_data) {
146
204
  this._data = _data;
147
205
  }
148
- renderer() { return new TooltipCrosshairLinePaneRenderer(this._data); }
149
- update(data) { this._data = data; }
150
- zOrder() { return 'bottom'; }
206
+ renderer() {
207
+ return new TooltipCrosshairLinePaneRenderer(this._data);
208
+ }
209
+ update(data) {
210
+ this._data = data;
211
+ }
212
+ zOrder() {
213
+ return "bottom";
214
+ }
151
215
  }
152
216
  exports.MultiTouchCrosshairPaneView = MultiTouchCrosshairPaneView;
153
217
  class TooltipPrimitive {
154
218
  constructor(options) {
155
- this._data = { color: 'rgba(0, 0, 0, 0.2)', topMargin: 0, visible: false, x: 0 };
219
+ this._data = {
220
+ color: "rgba(0, 0, 0, 0.2)",
221
+ topMargin: 0,
222
+ visible: false,
223
+ x: 0,
224
+ };
156
225
  this._moveHandler = (param) => this._onMouseMove(param);
157
226
  this._tooltip = undefined;
158
- this._options = Object.assign({
159
- lineColor: 'rgba(0, 2550, 250, 0.5)',
160
- }, options);
227
+ const defaultOptions = {
228
+ lineColor: "rgba(0, 0, 0, 0.2)",
229
+ priceExtractor: (data) => {
230
+ if (data.value !== undefined) {
231
+ return data.value.toFixed(2);
232
+ }
233
+ if (data.close !== undefined) {
234
+ return data.close.toFixed(2);
235
+ }
236
+ return "";
237
+ },
238
+ };
239
+ this._options = Object.assign(Object.assign({}, defaultOptions), options);
161
240
  this._paneViews = [new MultiTouchCrosshairPaneView(this._data)];
162
241
  }
163
242
  _createTooltipElement() {
164
243
  const chart = this.chart();
165
244
  if (!chart) {
166
- throw new Error('Unable to create Tooltip element. Chart not attached');
245
+ throw new Error("Unable to create Tooltip element. Chart not attached");
167
246
  }
168
247
  this._tooltip = new TooltipElement(chart, Object.assign({}, this._options.tooltip));
169
248
  }
170
249
  _hide() {
171
250
  this._hideTooltip();
172
- this.setData({ color: this.currentColor(), topMargin: 0, visible: false, x: 0 });
251
+ this.setData({
252
+ color: this.currentColor(),
253
+ topMargin: 0,
254
+ visible: false,
255
+ x: 0,
256
+ });
173
257
  }
174
258
  _hideTooltip() {
259
+ var _a;
175
260
  if (!this._tooltip) {
176
261
  return;
177
262
  }
178
- this._tooltip.updateTooltipContent({ content: '', title: '' });
263
+ this._tooltip.updateTooltipContent({
264
+ content: "",
265
+ title: ((_a = this._options.tooltip) === null || _a === void 0 ? void 0 : _a.title) || "",
266
+ // price: "",
267
+ // date: "",
268
+ // time: "",
269
+ });
179
270
  this._tooltip.updatePosition({ paneX: 0, paneY: 0, visible: false });
180
271
  }
272
+ _setCrosshairMode() {
273
+ const chart = this.chart();
274
+ if (!chart) {
275
+ throw new Error("Unable to change crosshair mode because the chart instance is undefined");
276
+ }
277
+ chart.applyOptions({
278
+ crosshair: {
279
+ mode: 0,
280
+ vertLine: {
281
+ visible: true,
282
+ labelVisible: true,
283
+ },
284
+ horzLine: {
285
+ visible: true,
286
+ labelVisible: true,
287
+ },
288
+ },
289
+ });
290
+ }
291
+ // private _formatDateAndTime(timestamp?: number): [string, string] {
292
+ // if (!timestamp) return ["", ""];
293
+ // const date = new Date(timestamp * 1000);
294
+ // const dateStr = date.toLocaleDateString();
295
+ // const timeStr = date.toLocaleTimeString();
296
+ // return [dateStr, timeStr];
297
+ // }
181
298
  _onMouseMove(param) {
182
299
  var _a, _b, _c, _d;
183
300
  const chart = this.chart();
@@ -192,13 +309,53 @@ class TooltipPrimitive {
192
309
  this._hide();
193
310
  return;
194
311
  }
195
- const content = this._options.timeToTooltipContentMap[Number(data.time)];
196
312
  const coordinate = chart.timeScale().logicalToCoordinate(logical);
313
+ if (coordinate === null) {
314
+ this._hide();
315
+ return;
316
+ }
317
+ // Use the map if provided, otherwise use the price extractor
318
+ let contentData;
319
+ if (this._options.timeToTooltipContentMap) {
320
+ const mapData = this._options.timeToTooltipContentMap[Number(data.time)];
321
+ if (mapData) {
322
+ contentData = mapData;
323
+ }
324
+ else {
325
+ // Fallback to price extractor
326
+ // const price = this._options.priceExtractor?.(data) || "";
327
+ // const [date, time] = this._formatDateAndTime(param.time as number);
328
+ contentData = {
329
+ // content: `${date} ${time} - ${price}`,
330
+ content: "&nbsp;",
331
+ // price,
332
+ // date,
333
+ // time,
334
+ };
335
+ }
336
+ }
337
+ else {
338
+ // Use price extractor
339
+ // const price = this._options.priceExtractor?.(data) || "";
340
+ // const [date, time] = this._formatDateAndTime(param.time as number);
341
+ contentData = {
342
+ // content: `${date} ${time} - ${price}`,
343
+ content: "&nbsp;",
344
+ // price,
345
+ // date,
346
+ // time,
347
+ };
348
+ }
197
349
  if (this._tooltip) {
198
350
  const tooltipOptions = this._tooltip.options();
199
- const topMargin = tooltipOptions.followMode === 'top' ? tooltipOptions.topOffset + 10 : 0;
200
- this.setData({ color: this.currentColor(), topMargin, visible: coordinate !== null, x: coordinate !== null && coordinate !== void 0 ? coordinate : 0 });
201
- this._tooltip.updateTooltipContent(content);
351
+ const topMargin = tooltipOptions.followMode === "top" ? tooltipOptions.topOffset + 10 : 0;
352
+ this.setData({
353
+ color: this.currentColor(),
354
+ topMargin,
355
+ visible: true,
356
+ x: coordinate,
357
+ });
358
+ this._tooltip.updateTooltipContent(contentData);
202
359
  this._tooltip.updatePosition({
203
360
  paneX: (_b = (_a = param.point) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0,
204
361
  paneY: (_d = (_c = param.point) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0,
@@ -206,27 +363,32 @@ class TooltipPrimitive {
206
363
  });
207
364
  }
208
365
  }
209
- applyOptions(options) {
210
- this._options = Object.assign(Object.assign({}, this._options), options);
211
- if (this._tooltip) {
212
- this._tooltip.applyOptions(Object.assign({}, this._options.tooltip));
213
- }
214
- }
215
366
  attached(param) {
216
367
  this._attachedParams = param;
368
+ this._setCrosshairMode(); // Set crosshair mode when attached
217
369
  param.chart.subscribeCrosshairMove(this._moveHandler);
218
370
  this._createTooltipElement();
219
371
  }
220
- chart() { var _a; return (_a = this._attachedParams) === null || _a === void 0 ? void 0 : _a.chart; }
221
- currentColor() { return this._options.lineColor; }
372
+ chart() {
373
+ var _a;
374
+ return (_a = this._attachedParams) === null || _a === void 0 ? void 0 : _a.chart;
375
+ }
376
+ currentColor() {
377
+ return this._options.lineColor;
378
+ }
222
379
  detached() {
223
380
  const chart = this.chart();
224
381
  if (chart) {
225
382
  chart.unsubscribeCrosshairMove(this._moveHandler);
226
383
  }
227
384
  }
228
- paneViews() { return this._paneViews; }
229
- series() { var _a; return (_a = this._attachedParams) === null || _a === void 0 ? void 0 : _a.series; }
385
+ paneViews() {
386
+ return this._paneViews;
387
+ }
388
+ series() {
389
+ var _a;
390
+ return (_a = this._attachedParams) === null || _a === void 0 ? void 0 : _a.series;
391
+ }
230
392
  setData(data) {
231
393
  var _a;
232
394
  this._data = data;
@@ -234,7 +396,16 @@ class TooltipPrimitive {
234
396
  (_a = this._attachedParams) === null || _a === void 0 ? void 0 : _a.requestUpdate();
235
397
  }
236
398
  updateAllViews() {
237
- this._paneViews.forEach(pw => { pw.update(this._data); });
399
+ this._paneViews.forEach((pw) => {
400
+ pw.update(this._data);
401
+ });
402
+ }
403
+ applyOptions(options) {
404
+ this._options = Object.assign(Object.assign({}, this._options), options);
405
+ if (this._tooltip) {
406
+ this._tooltip.applyOptions(Object.assign({}, this._options.tooltip));
407
+ }
238
408
  }
239
409
  }
240
410
  exports.TooltipPrimitive = TooltipPrimitive;
411
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/chart/plugins/tooltip.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AutoscaleInfo, Coordinate, IChartApi, ISeriesApi, ISeriesPrimitive, ISeriesPrimitivePaneRenderer, ISeriesPrimitivePaneView, Logical, SeriesType, Time } from 'lightweight-charts';
1
+ import type { AutoscaleInfo, Coordinate, IChartApi, IPrimitivePaneRenderer, IPrimitivePaneView, ISeriesApi, ISeriesPrimitive, Logical, SeriesType, Time } from "lightweight-charts";
2
2
  export type IPoint = {
3
3
  price: number;
4
4
  time: Time;
@@ -11,14 +11,14 @@ export type ITrendLineOptions = {
11
11
  lineColor: string;
12
12
  width: number;
13
13
  };
14
- export declare class TrendLinePaneRenderer implements ISeriesPrimitivePaneRenderer {
14
+ export declare class TrendLinePaneRenderer implements IPrimitivePaneRenderer {
15
15
  private p1;
16
16
  private p2;
17
17
  private options;
18
18
  constructor(p1: IViewPoint, p2: IViewPoint, options: ITrendLineOptions);
19
- draw(target: Parameters<ISeriesPrimitivePaneRenderer['draw']>[0]): void;
19
+ draw(target: Parameters<IPrimitivePaneRenderer["draw"]>[0]): void;
20
20
  }
21
- export declare class TrendLinePaneView implements ISeriesPrimitivePaneView {
21
+ export declare class TrendLinePaneView implements IPrimitivePaneView {
22
22
  private source;
23
23
  private p1;
24
24
  private p2;
@@ -41,3 +41,4 @@ export declare class TrendLine implements ISeriesPrimitive {
41
41
  paneViews(): TrendLinePaneView[];
42
42
  updateAllViews(): void;
43
43
  }
44
+ //# sourceMappingURL=trendLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trendLine.d.ts","sourceRoot":"","sources":["../../../src/chart/plugins/trendLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,IAAI,EACJ,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,qBAAa,qBAAsB,YAAW,sBAAsB;IAElE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;gBAFP,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,iBAAiB;IAGnC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CAuB1D;AAED,qBAAa,iBAAkB,YAAW,kBAAkB;IAI/C,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,EAAE,CAAoC;IAC9C,OAAO,CAAC,EAAE,CAAoC;gBAE1B,MAAM,EAAE,SAAS;IAErC,QAAQ;IAIR,MAAM;CAUN;AAED,qBAAa,SAAU,YAAW,gBAAgB;IAOzC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC;IAC9B,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IATlB,OAAO,CAAC,UAAU,CAAsB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;gBAG1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAYrC,OAAO,CAAC,UAAU;IAQlB,aAAa,CACZ,cAAc,EAAE,OAAO,EACvB,YAAY,EAAE,OAAO,GACnB,aAAa,GAAG,IAAI;IAYvB,SAAS;IAIT,cAAc;CAKd"}
@@ -8,8 +8,11 @@ class TrendLinePaneRenderer {
8
8
  this.options = options;
9
9
  }
10
10
  draw(target) {
11
- target.useBitmapCoordinateSpace(scope => {
12
- if (this.p1.x === null || this.p1.y === null || this.p2.x === null || this.p2.y === null) {
11
+ target.useBitmapCoordinateSpace((scope) => {
12
+ if (this.p1.x === null ||
13
+ this.p1.y === null ||
14
+ this.p2.x === null ||
15
+ this.p2.y === null) {
13
16
  return;
14
17
  }
15
18
  const ctx = scope.context;
@@ -56,7 +59,7 @@ class TrendLine {
56
59
  this.p2 = p2;
57
60
  this.minPrice = Math.min(this.p1.price, this.p2.price);
58
61
  this.maxPrice = Math.max(this.p1.price, this.p2.price);
59
- this.options = Object.assign({ lineColor: '#ff5aff', width: 3 }, options);
62
+ this.options = Object.assign({ lineColor: "#ff5aff", width: 3 }, options);
60
63
  this._paneViews = [new TrendLinePaneView(this)];
61
64
  }
62
65
  pointIndex(p) {
@@ -81,7 +84,10 @@ class TrendLine {
81
84
  return this._paneViews;
82
85
  }
83
86
  updateAllViews() {
84
- this._paneViews.forEach(pw => { pw.update(); });
87
+ this._paneViews.forEach((pw) => {
88
+ pw.update();
89
+ });
85
90
  }
86
91
  }
87
92
  exports.TrendLine = TrendLine;
93
+ //# sourceMappingURL=trendLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trendLine.js","sourceRoot":"","sources":["../../../src/chart/plugins/trendLine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Coordinate, IChartApi, ISeriesApi, ISeriesPrimitive, ISeriesPrimitiveAxisView, ISeriesPrimitivePaneRenderer, ISeriesPrimitivePaneView, SeriesOptionsMap, SeriesType, Time } from 'lightweight-charts';
1
+ import type { Coordinate, IChartApi, IPrimitivePaneRenderer, IPrimitivePaneView, ISeriesApi, ISeriesPrimitive, ISeriesPrimitiveAxisView, SeriesOptionsMap, SeriesType, Time } from "lightweight-charts";
2
2
  export type IVertLineOptions = {
3
3
  color: string;
4
4
  labelBackgroundColor: string;
@@ -7,13 +7,13 @@ export type IVertLineOptions = {
7
7
  showLabel: boolean;
8
8
  width: number;
9
9
  };
10
- export declare class VertLinePaneRenderer implements ISeriesPrimitivePaneRenderer {
10
+ export declare class VertLinePaneRenderer implements IPrimitivePaneRenderer {
11
11
  private _x;
12
12
  private _options;
13
13
  constructor(_x: Coordinate | null, _options: IVertLineOptions);
14
- draw(target: Parameters<ISeriesPrimitivePaneRenderer['draw']>[0]): void;
14
+ draw(target: Parameters<IPrimitivePaneRenderer["draw"]>[0]): void;
15
15
  }
16
- export declare class VertLinePaneView implements ISeriesPrimitivePaneView {
16
+ export declare class VertLinePaneView implements IPrimitivePaneView {
17
17
  private _source;
18
18
  private _options;
19
19
  private _x;
@@ -45,3 +45,4 @@ export declare class VertLine implements ISeriesPrimitive {
45
45
  timeAxisViews(): VertLineTimeAxisView[];
46
46
  updateAllViews(): void;
47
47
  }
48
+ //# sourceMappingURL=verticalLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verticalLine.d.ts","sourceRoot":"","sources":["../../../src/chart/plugins/verticalLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,UAAU,EACV,IAAI,EACJ,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,oBAAqB,YAAW,sBAAsB;IAEjE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,QAAQ;gBADR,EAAE,EAAE,UAAU,GAAG,IAAI,EACrB,QAAQ,EAAE,gBAAgB;IAEnC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CAsB1D;AAED,qBAAa,gBAAiB,YAAW,kBAAkB;IAGzD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAHjB,OAAO,CAAC,EAAE,CAA2B;gBAE5B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB;IAEnC,QAAQ;IAGR,MAAM;CAIN;AAED,qBAAa,oBAAqB,YAAW,wBAAwB;IAGnE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAHjB,OAAO,CAAC,EAAE,CAA2B;gBAE5B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB;IAEnC,SAAS;IAGT,UAAU;IAGV,IAAI;IAGJ,SAAS;IAGT,WAAW;IAGX,MAAM;IAIN,OAAO;CAGP;AAED,qBAAa,QAAS,YAAW,gBAAgB;IAChD,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC5C,KAAK,EAAE,IAAI,CAAC;IACZ,cAAc,EAAE,oBAAoB,EAAE,CAAC;gBAGtC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAiBpC,SAAS;IAGT,aAAa;IAGb,cAAc;CAQd"}