lightweight-charts-react-components 0.4.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.
- package/README.md +26 -2
- package/dist/index.d.ts +31 -24
- package/dist/lightweight-charts-react-components.mjs +6 -4
- package/dist/lightweight-charts-react-components.mjs.map +1 -1
- package/dist/lightweight-charts-react-components.standalone.js +2 -3
- package/dist/lightweight-charts-react-components.standalone.js.map +1 -1
- package/package.json +12 -5
- package/dist/lightweight-charts-react-components.standalone.js.LICENSE.txt +0 -16
package/README.md
CHANGED
|
@@ -52,6 +52,13 @@
|
|
|
52
52
|
</picture>
|
|
53
53
|
</a>
|
|
54
54
|
|
|
55
|
+
<a href="https://github.com/ukorvl/lightweight-charts-react-components">
|
|
56
|
+
<picture>
|
|
57
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/module-ESM--only-1e2029?style=flat">
|
|
58
|
+
<img src="https://img.shields.io/badge/module-ESM--only-ffcc00?style=flat" alt="ESM Only">
|
|
59
|
+
</picture>
|
|
60
|
+
</a>
|
|
61
|
+
|
|
55
62
|
<a href="https://github.com/ukorvl/lightweight-charts-react-components">
|
|
56
63
|
<picture>
|
|
57
64
|
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/contributions-welcome-1e2029?style=flat">
|
|
@@ -71,6 +78,13 @@
|
|
|
71
78
|
>
|
|
72
79
|
</picture>
|
|
73
80
|
</a>
|
|
81
|
+
|
|
82
|
+
<a href="https://jsr.io/@ukorvl/lightweight-charts-react-components">
|
|
83
|
+
<picture>
|
|
84
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/jsr/v/%40ukorvl/lightweight-charts-react-components?colorA=1e2029&colorB=1e2029&style=flat">
|
|
85
|
+
<img src="https://img.shields.io/jsr/v/%40ukorvl/lightweight-charts-react-components?colorA=ffcc00&colorB=ffcc00&style=flat" alt="Jsr version">
|
|
86
|
+
</picture>
|
|
87
|
+
</a>
|
|
74
88
|
</p>
|
|
75
89
|
|
|
76
90
|
## Description
|
|
@@ -84,6 +98,7 @@ Check out the [Demo](https://ukorvl.github.io/lightweight-charts-react-component
|
|
|
84
98
|
- [Usage](#usage)
|
|
85
99
|
- [Examples](#examples)
|
|
86
100
|
- [Contributing](#contributing)
|
|
101
|
+
- [Related Projects](#related-projects)
|
|
87
102
|
- [License](#license)
|
|
88
103
|
|
|
89
104
|
## Installation
|
|
@@ -94,7 +109,7 @@ You can install the library via npm, pnpm or yarn:
|
|
|
94
109
|
npm install lightweight-charts-react-components lightweight-charts
|
|
95
110
|
```
|
|
96
111
|
|
|
97
|
-
Standalone version of the library is also available
|
|
112
|
+
Standalone version of the library is also available for use in the browser without a build step. You can include it in your HTML file using a script tag. Note that library expects global `React`, `ReactDOM` and `LightweightCharts` variables to be available in the global scope.
|
|
98
113
|
|
|
99
114
|
```html
|
|
100
115
|
<head>
|
|
@@ -106,6 +121,10 @@ Standalone version of the library is also available and includes all the necessa
|
|
|
106
121
|
src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"
|
|
107
122
|
crossorigin
|
|
108
123
|
></script>
|
|
124
|
+
<script
|
|
125
|
+
src="https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js"
|
|
126
|
+
crossorigin
|
|
127
|
+
></script>
|
|
109
128
|
<script
|
|
110
129
|
src="https://unpkg.com/lightweight-charts-react-components/dist/lightweight-charts-react-components.standalone.js"
|
|
111
130
|
crossorigin
|
|
@@ -138,9 +157,14 @@ We welcome contributions of all kinds! Whether it's fixing bugs, adding new feat
|
|
|
138
157
|
3. Test your changes to ensure everything works as expected.
|
|
139
158
|
4. Submit a pull request.
|
|
140
159
|
|
|
141
|
-
For detailed contribution guidelines, please check out our [CONTRIBUTING.md](
|
|
160
|
+
For detailed contribution guidelines, please check out our [CONTRIBUTING.md](https://github.com/ukorvl/lightweight-charts-react-components/blob/main/CONTRIBUTING.md)
|
|
142
161
|
Thank you for helping improve this project!
|
|
143
162
|
|
|
163
|
+
## Related Projects
|
|
164
|
+
|
|
165
|
+
- [lightweight-charts](https://github.com/tradingview/lightweight-charts) - The original Lightweight Charts library by TradingView.
|
|
166
|
+
- [lightweight-charts-vue](https://github.com/ukorvl/lightweight-charts-vue) - Vue.js wrapper for Lightweight Charts.
|
|
167
|
+
|
|
144
168
|
## License
|
|
145
169
|
|
|
146
170
|
This project is licensed under the MIT License - see the [LICENSE](https://github.com/ukorvl/lightweight-charts-react-components/blob/main/lib/LICENSE) file for details.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/**!
|
|
3
|
-
* lightweight-charts-react-components
|
|
3
|
+
* lightweight-charts-react-components v1.0.0
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE.md file in the root directory of this source tree.
|
|
@@ -12,18 +12,19 @@ import { ChartOptions } from 'lightweight-charts';
|
|
|
12
12
|
import { DeepPartial } from 'lightweight-charts';
|
|
13
13
|
import type { DependencyList } from 'react';
|
|
14
14
|
import type { ForwardedRef } from 'react';
|
|
15
|
-
import { ForwardRefExoticComponent } from 'react';
|
|
15
|
+
import type { ForwardRefExoticComponent } from 'react';
|
|
16
16
|
import { IChartApi } from 'lightweight-charts';
|
|
17
17
|
import type { ICustomSeriesPaneView } from 'lightweight-charts';
|
|
18
|
-
import { IImageWatermarkPluginApi } from 'lightweight-charts';
|
|
19
|
-
import { ImageWatermarkOptions } from 'lightweight-charts';
|
|
18
|
+
import type { IImageWatermarkPluginApi } from 'lightweight-charts';
|
|
19
|
+
import type { ImageWatermarkOptions } from 'lightweight-charts';
|
|
20
|
+
import type { IPaneApi } from 'lightweight-charts';
|
|
20
21
|
import type { IPriceLine } from 'lightweight-charts';
|
|
21
22
|
import type { IPriceScaleApi } from 'lightweight-charts';
|
|
22
23
|
import type { IRange } from 'lightweight-charts';
|
|
23
24
|
import type { ISeriesApi } from 'lightweight-charts';
|
|
24
25
|
import type { ISeriesMarkersPluginApi } from 'lightweight-charts';
|
|
25
26
|
import type { ISeriesPrimitive } from 'lightweight-charts';
|
|
26
|
-
import { ITextWatermarkPluginApi } from 'lightweight-charts';
|
|
27
|
+
import type { ITextWatermarkPluginApi } from 'lightweight-charts';
|
|
27
28
|
import type { ITimeScaleApi } from 'lightweight-charts';
|
|
28
29
|
import type { JSX } from 'react';
|
|
29
30
|
import type { LogicalRangeChangeEventHandler } from 'lightweight-charts';
|
|
@@ -31,13 +32,13 @@ import { MouseEventHandler } from 'lightweight-charts';
|
|
|
31
32
|
import type { PriceLineOptions } from 'lightweight-charts';
|
|
32
33
|
import type { PriceScaleOptions as PriceScaleOptions_2 } from 'lightweight-charts';
|
|
33
34
|
import type { ReactNode } from 'react';
|
|
34
|
-
import { RefAttributes } from 'react';
|
|
35
|
+
import type { RefAttributes } from 'react';
|
|
35
36
|
import type { SeriesDataItemTypeMap } from 'lightweight-charts';
|
|
36
37
|
import type { SeriesMarker } from 'lightweight-charts';
|
|
37
38
|
import type { SeriesPartialOptionsMap } from 'lightweight-charts';
|
|
38
39
|
import type { SeriesType } from 'lightweight-charts';
|
|
39
40
|
import type { SizeChangeEventHandler } from 'lightweight-charts';
|
|
40
|
-
import { TextWatermarkOptions } from 'lightweight-charts';
|
|
41
|
+
import type { TextWatermarkOptions } from 'lightweight-charts';
|
|
41
42
|
import { Time } from 'lightweight-charts';
|
|
42
43
|
import type { TimeRangeChangeEventHandler } from 'lightweight-charts';
|
|
43
44
|
import type { TimeScaleOptions as TimeScaleOptions_2 } from 'lightweight-charts';
|
|
@@ -87,6 +88,11 @@ export declare type ImageWatermarkProps = {
|
|
|
87
88
|
src: string;
|
|
88
89
|
} & DeepPartial<ImageWatermarkOptions>;
|
|
89
90
|
|
|
91
|
+
export declare interface IPaneContext {
|
|
92
|
+
paneApiRef?: PaneApiRef;
|
|
93
|
+
isReady: boolean;
|
|
94
|
+
}
|
|
95
|
+
|
|
90
96
|
export declare const LineSeries: ForwardRefExoticComponent<SeriesProps<"Line"> & RefAttributes<SeriesApiRef<"Line">>>;
|
|
91
97
|
|
|
92
98
|
export declare const Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>>;
|
|
@@ -103,6 +109,20 @@ export declare type MarkersProps = {
|
|
|
103
109
|
reactive?: boolean;
|
|
104
110
|
};
|
|
105
111
|
|
|
112
|
+
export declare const Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>>;
|
|
113
|
+
|
|
114
|
+
export declare type PaneApiRef = {
|
|
115
|
+
_pane: IPaneApi<Time> | null;
|
|
116
|
+
api: () => IPaneApi<Time> | null;
|
|
117
|
+
init: () => IPaneApi<Time> | null;
|
|
118
|
+
clear: () => void;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export declare type PaneProps = {
|
|
122
|
+
children?: ReactNode;
|
|
123
|
+
stretchFactor?: number;
|
|
124
|
+
};
|
|
125
|
+
|
|
106
126
|
export declare const PriceLine: ForwardRefExoticComponent<PriceLineProps & RefAttributes<PriceLineApiRef>>;
|
|
107
127
|
|
|
108
128
|
export declare type PriceLineApiRef = {
|
|
@@ -152,7 +172,6 @@ declare type SeriesParameters<T extends SeriesType> = {
|
|
|
152
172
|
data: SeriesDataItemTypeMap[T][];
|
|
153
173
|
reactive?: boolean;
|
|
154
174
|
options?: SeriesOptions<T>;
|
|
155
|
-
isPane?: boolean;
|
|
156
175
|
} & (T extends "Custom" ? CustomSeriesUniqueProps : {});
|
|
157
176
|
|
|
158
177
|
export declare const SeriesPrimitive: GenericSeriesPrimitiveComponent;
|
|
@@ -176,7 +195,7 @@ declare type SeriesPrimitivePropsWithRender<T extends SeriesType> = {
|
|
|
176
195
|
plugin?: never;
|
|
177
196
|
};
|
|
178
197
|
|
|
179
|
-
declare const SeriesPrimitiveRenderFunction: <T extends SeriesType>(props: SeriesPrimitiveProps<T>, ref: ForwardedRef<SeriesPrimitiveApiRef>) => null;
|
|
198
|
+
declare const SeriesPrimitiveRenderFunction: <T extends SeriesType>(props: SeriesPrimitiveProps<T>, ref: ForwardedRef<SeriesPrimitiveApiRef>) => JSX.Element | null;
|
|
180
199
|
|
|
181
200
|
export declare type SeriesProps<T extends SeriesType> = Omit<SeriesTemplateProps<T>, "type">;
|
|
182
201
|
|
|
@@ -196,7 +215,7 @@ export declare type TimeScaleApiRef = {
|
|
|
196
215
|
clear: () => void;
|
|
197
216
|
};
|
|
198
217
|
|
|
199
|
-
export declare const TimeScaleFitContentTrigger: ({ deps }: TimeScaleFitContentTriggerProps) => null;
|
|
218
|
+
export declare const TimeScaleFitContentTrigger: ({ deps, }: TimeScaleFitContentTriggerProps) => JSX.Element | null;
|
|
200
219
|
|
|
201
220
|
export declare type TimeScaleFitContentTriggerProps = {
|
|
202
221
|
deps: DependencyList;
|
|
@@ -216,14 +235,7 @@ export declare type TimeScaleProps = {
|
|
|
216
235
|
|
|
217
236
|
export declare type WatermarkApiRef<T extends WatermarkType> = T extends "text" ? WatermarkTextApiRefBase : WatermarkImageApiRefBase;
|
|
218
237
|
|
|
219
|
-
export declare const WatermarkImage: ForwardRefExoticComponent<
|
|
220
|
-
src: string;
|
|
221
|
-
} & DeepPartial<ImageWatermarkOptions> & RefAttributes< {
|
|
222
|
-
_watermark: IImageWatermarkPluginApi<Time> | null;
|
|
223
|
-
api: () => IImageWatermarkPluginApi<Time> | null;
|
|
224
|
-
init: () => IImageWatermarkPluginApi<Time> | null;
|
|
225
|
-
clear: () => void;
|
|
226
|
-
}>>;
|
|
238
|
+
export declare const WatermarkImage: ForwardRefExoticComponent<ImageWatermarkProps & RefAttributes<WatermarkApiRef<"image">>>;
|
|
227
239
|
|
|
228
240
|
declare type WatermarkImageApiRefBase = {
|
|
229
241
|
_watermark: IImageWatermarkPluginApi<Time> | null;
|
|
@@ -232,12 +244,7 @@ declare type WatermarkImageApiRefBase = {
|
|
|
232
244
|
clear: () => void;
|
|
233
245
|
};
|
|
234
246
|
|
|
235
|
-
export declare const WatermarkText: ForwardRefExoticComponent<
|
|
236
|
-
_watermark: ITextWatermarkPluginApi<Time> | null;
|
|
237
|
-
api: () => ITextWatermarkPluginApi<Time> | null;
|
|
238
|
-
init: () => ITextWatermarkPluginApi<Time> | null;
|
|
239
|
-
clear: () => void;
|
|
240
|
-
}>>;
|
|
247
|
+
export declare const WatermarkText: ForwardRefExoticComponent<TextWatermarkProps & RefAttributes<WatermarkApiRef<"text">>>;
|
|
241
248
|
|
|
242
249
|
declare type WatermarkTextApiRefBase = {
|
|
243
250
|
_watermark: ITextWatermarkPluginApi<Time> | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/**!
|
|
3
|
-
* lightweight-charts-react-components
|
|
3
|
+
* lightweight-charts-react-components v1.0.0
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
6
6
|
* LICENSE.md file in the root directory of this source tree.
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* @license MIT
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import*as e from"react
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
import*as e from"react";import*as t from"lightweight-charts";let i=(0,e.createContext)(null);i.displayName="ChartContext";let r={addDefaultPane:!1},a=({container:i,onClick:a,onCrosshairMove:l,onInit:n,options:s={},onDblClick:u})=>{let[c,f]=(0,e.useState)(!1),o=(0,e.useRef)({_chart:null,api(){return this._chart},init(){if(null===this._chart){let e=(0,t.createChart)(i,{...r,...s});this._chart=e,n&&n(this._chart)}return c||f(!0),this._chart},clear(){null!==this._chart&&(f(!1),this._chart.remove(),this._chart=null)}});return(0,e.useLayoutEffect)(()=>(o.current.init(),()=>{o.current.clear()}),[]),(0,e.useLayoutEffect)(()=>{if(i){if(a){var e;null===(e=o.current.api())||void 0===e||e.subscribeClick(a)}return()=>{if(a){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeClick(a)}}}},[a]),(0,e.useLayoutEffect)(()=>{if(i){if(l){var e;null===(e=o.current.api())||void 0===e||e.subscribeCrosshairMove(l)}return()=>{if(l){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeCrosshairMove(l)}}}},[l]),(0,e.useLayoutEffect)(()=>{if(i){if(u){var e;null===(e=o.current.api())||void 0===e||e.subscribeDblClick(u)}return()=>{if(u){var e;null===(e=o.current.api())||void 0===e||e.unsubscribeDblClick(u)}}}},[u]),(0,e.useLayoutEffect)(()=>{var e;i&&(null===(e=o.current.api())||void 0===e||e.applyOptions({...r,...s}))},[s]),{chartApiRef:o,isReady:c}},l=({children:t,container:r,onClick:l,onCrosshairMove:n,onInit:s,options:u})=>{let{chartApiRef:{current:c},isReady:f}=a({container:r,onClick:l,onCrosshairMove:n,onInit:s,options:u});return e.default.createElement(i.Provider,{value:{chartApiRef:c,isReady:f}},t)},n=(0,e.forwardRef)(({children:t,containerProps:i,...r},a)=>{let[n,s]=(0,e.useState)(),u=(0,e.useCallback)(e=>{s(e),a&&("function"==typeof a?u(e):a.current=e)},[a]);return e.default.createElement("div",{ref:u,...i},!!n&&e.default.createElement(l,{container:n,...r},t))});n.displayName="ChartWrapper";let s=(0,e.createContext)(null);s.displayName="TimeScaleContext";let u="1.0.0";function c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class f extends Error{constructor(e,{isOperational:t=!0,cause:i,docsPath:r}={}){super(e),c(this,"isOperational",void 0),c(this,"cause",void 0),this.name=this.constructor.name??"InternalError",this.isOperational=t,this.cause=i,this.message=`${e??"An error occurred"}`,r&&(this.message=`${this.message}
|
|
12
|
+
|
|
13
|
+
Docs: see ${"https://ukorvl.github.io/lightweight-charts-react-components/docs/"+r}`),u&&(this.message=`${this.message}
|
|
14
|
+
|
|
15
|
+
Version: lightweight-charts-react-components@${u}`),Object.setPrototypeOf(this,f.prototype)}}let o=(t,i)=>{let r=(0,e.useContext)(t);if(!r){let e=t.name??t.displayName??"Context";throw new f(i??`${e} not found.`,{isOperational:!0})}return r},p=({onVisibleTimeRangeChange:t,onVisibleLogicalRangeChange:r,onSizeChange:a,visibleRange:l,visibleLogicalRange:n,options:s={}})=>{let{isReady:u,chartApiRef:c}=o(i),[f,p]=(0,e.useState)(!1),d=(0,e.useRef)({_timeScale:null,api(){return this._timeScale},init(){if(this._timeScale)return this._timeScale;let e=null==c?void 0:c.api();return e?(this._timeScale=e.timeScale(),this._timeScale.applyOptions(s),l&&this._timeScale.setVisibleRange(l),n&&this._timeScale.setVisibleLogicalRange(n),t&&this._timeScale.subscribeVisibleTimeRangeChange(t),r&&this._timeScale.subscribeVisibleLogicalRangeChange(r),a&&this._timeScale.subscribeSizeChange(a),p(!0),this._timeScale):null},clear(){this._timeScale=null,p(!1)}});return(0,e.useLayoutEffect)(()=>{u&&d.current.init()},[u]),(0,e.useLayoutEffect)(()=>()=>{d.current.clear()},[]),(0,e.useLayoutEffect)(()=>{if(c&&s){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.applyOptions(s)}},[s]),(0,e.useLayoutEffect)(()=>{if(c){if(a){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.subscribeSizeChange(a)}return()=>{if(a){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.unsubscribeSizeChange(a)}}}},[a]),(0,e.useLayoutEffect)(()=>{if(c){if(r){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.subscribeVisibleLogicalRangeChange(r)}return()=>{if(r){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.unsubscribeVisibleLogicalRangeChange(r)}}}},[r]),(0,e.useLayoutEffect)(()=>{if(c){if(t){var e,i;null===(i=d.current)||void 0===i||null===(e=i.api())||void 0===e||e.subscribeVisibleTimeRangeChange(t)}return()=>{if(t){var e,i;null===(i=d.current)||void 0===i||null===(e=i.api())||void 0===e||e.unsubscribeVisibleTimeRangeChange(t)}}}},[t]),(0,e.useLayoutEffect)(()=>{if(c&&l){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.setVisibleRange(l)}},[l]),(0,e.useLayoutEffect)(()=>{if(c&&n){var e,t;null===(t=d.current)||void 0===t||null===(e=t.api())||void 0===e||e.setVisibleLogicalRange(n)}},[n]),{timeScaleApiRef:d,isReady:f}},d=(0,e.forwardRef)(({children:t,...i},r)=>{let{timeScaleApiRef:{current:a},isReady:l}=p(i);return(0,e.useImperativeHandle)(r,()=>a,[a]),e.default.createElement(s.Provider,{value:{timeScaleApiRef:a,isReady:l}},t)});d.displayName="TimeScale";let h=(0,e.createContext)(null);h.displayName="PaneContext";let m=()=>{let t=(0,e.useContext)(h),i=!!t;return{isInsidePane:i,isPaneReady:!!(null==t?void 0:t.isReady),paneApiRef:null==t?void 0:t.paneApiRef}},v=({options:t={},id:r})=>{let{isReady:a,chartApiRef:l}=o(i),{isInsidePane:n,isPaneReady:s}=m(),u=(0,e.useRef)({_priceScale:null,api(){return this._priceScale},init(){if(!this._priceScale){let e=null==l?void 0:l.api();if(!e)return null;this._priceScale=e.priceScale(r),this._priceScale.applyOptions(t)}return this._priceScale},setId(e){null!==this._priceScale&&null!==l&&(this._priceScale=l.api().priceScale(e),this._priceScale.applyOptions(t))},clear(){this._priceScale=null}});return(0,e.useLayoutEffect)(()=>{if(a){if(!n)throw new f("PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.",{isOperational:!0,docsPath:""});s&&u.current.init()}},[a,n,s]),(0,e.useLayoutEffect)(()=>()=>{u.current.clear()},[]),(0,e.useLayoutEffect)(()=>{var e;l&&(null===(e=u.current)||void 0===e||e.setId(r))},[r]),(0,e.useLayoutEffect)(()=>{if(l&&t){var e,i;null===(i=u.current)||void 0===i||null===(e=i.api())||void 0===e||e.applyOptions(t)}},[t]),u},y=(0,e.forwardRef)((t,i)=>{let r=v(t);return(0,e.useImperativeHandle)(i,()=>r.current,[r]),null});y.displayName="PriceScale";let _=({deps:t})=>{let{timeScaleApiRef:i,isReady:r}=o(s);(0,e.useLayoutEffect)(()=>{if(!r||!i)return;let e=i.api();queueMicrotask(()=>{e&&e.fitContent()})},[...t,r])},S=({deps:e})=>(_({deps:e}),null),R=(0,e.createContext)({seriesApiRef:null,isReady:!1});R.displayName="SeriesContext";let L=({type:t,data:r,options:a={},reactive:l=!0,...n})=>{let{isReady:s,chartApiRef:u}=o(i),{isPaneReady:c,isInsidePane:p,paneApiRef:d}=m(),[h,v]=(0,e.useState)(!1),y=(0,e.useRef)({_series:null,api(){return this._series},init(){if(!this._series){var e,i;let l=null==u?void 0:u.api();if(!l)return null;let s=p?null==d||null===(e=d.api())||void 0===e?void 0:e.paneIndex():void 0;if("Custom"===t){let e=n.plugin;if(!e)throw new f("Custom series requires a plugin to be defined");this._series=l.addCustomSeries(e,a,s)}else this._series=l.addSeries(b[t],a,s);null===(i=this._series)||void 0===i||i.setData(r),v(!0)}return this._series},clear(){if(null!==this._series){var e;null==u||null===(e=u.api())||void 0===e||e.removeSeries(this._series),this._series=null,v(!1)}}});return(0,e.useLayoutEffect)(()=>{s&&(!p||c)&&y.current.init()},[s,p,c]),(0,e.useLayoutEffect)(()=>()=>{y.current.clear()},[]),(0,e.useLayoutEffect)(()=>{if(u&&r&&l){var e;null===(e=y.current.api())||void 0===e||e.setData(r)}},[r,l]),(0,e.useLayoutEffect)(()=>{if(u&&a){var e;null===(e=y.current.api())||void 0===e||e.applyOptions(a)}},[a]),{isReady:h,seriesApiRef:y}},b={Line:t.LineSeries,Candlestick:t.CandlestickSeries,Histogram:t.HistogramSeries,Area:t.AreaSeries,Baseline:t.BaselineSeries,Bar:t.BarSeries},E=(0,e.forwardRef)(({children:t,...i},r)=>{let{seriesApiRef:{current:a},isReady:l}=L(i);return(0,e.useImperativeHandle)(r,()=>a,[a]),e.default.createElement(R.Provider,{value:{seriesApiRef:a,isReady:l}},t)});E.displayName="SeriesTemplate";let g=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Line",ref:r,...i},t));g.displayName="LineSeries";let C=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Histogram",ref:r,...i},t));C.displayName="HistogramSeries";let k=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Candlestick",ref:r,...i},t));k.displayName="CandlestickSeries";let w=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Area",ref:r,...i},t));w.displayName="AreaSeries";let P=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Baseline",ref:r,...i},t));P.displayName="BaselineSeries";let A=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Bar",ref:r,...i},t));A.displayName="BarSeries";let N=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(E,{type:"Custom",ref:r,...i},t));N.displayName="CustomSeries";let x=({options:t,price:i})=>{let{isReady:r,seriesApiRef:a}=o(R),l=(0,e.useRef)({_priceLine:null,api(){return this._priceLine},init(){if(!this._priceLine){let e=null==a?void 0:a.api();if(!e)return null;this._priceLine=e.createPriceLine({price:i,...t})}return this._priceLine},clear(){if(null!==this._priceLine){var e;null==a||null===(e=a.api())||void 0===e||e.removePriceLine(this._priceLine),this._priceLine=null}}});return(0,e.useLayoutEffect)(()=>{r&&l.current.init()},[r]),(0,e.useLayoutEffect)(()=>()=>{l.current.clear()},[]),(0,e.useLayoutEffect)(()=>{if(a&&t){var e;null===(e=l.current.api())||void 0===e||e.applyOptions(t)}},[t]),(0,e.useLayoutEffect)(()=>{if(a&&i){var e;null===(e=l.current.api())||void 0===e||e.applyOptions({price:i})}},[i]),l},O=(0,e.forwardRef)((t,i)=>{let r=x(t);return(0,e.useImperativeHandle)(i,()=>r.current,[r]),null});O.displayName="PriceLine";let I=({reactive:i=!0,markers:r})=>{let{isReady:a,seriesApiRef:l}=o(R),n=(0,e.useRef)({_markers:null,api(){return this._markers},init(){if(null===this._markers){let e=null==l?void 0:l.api();if(!e)return null;this._markers=(0,t.createSeriesMarkers)(e,r)}return this._markers},clear(){null!==this._markers&&(this._markers.detach(),this._markers=null)}});return(0,e.useLayoutEffect)(()=>{a&&n.current.init()},[a]),(0,e.useLayoutEffect)(()=>()=>{n.current.clear()},[]),(0,e.useLayoutEffect)(()=>{if(l&&r&&i){var e;null===(e=n.current.api())||void 0===e||e.setMarkers(r)}},[r,i]),n},H=(0,e.forwardRef)(({...t},i)=>{let r=I(t);return(0,e.useImperativeHandle)(i,()=>r.current,[r]),null});H.displayName="Markers";let T=r=>{let{isReady:a,chartApiRef:l}=o(i),{isPaneReady:n,isInsidePane:s,paneApiRef:u}=m(),c=(0,e.useRef)({_watermark:null,api(){return this._watermark},init(){if(null===this._watermark){let e=null==l?void 0:l.api(),i=null==u?void 0:u.api();if(!e||!i)return null;if(V(r)){let{type:e,...a}=r;this._watermark=(0,t.createTextWatermark)(i,a)}else{let{type:e,src:a,...l}=r;this._watermark=(0,t.createImageWatermark)(i,a,l)}}return this._watermark},clear(){null!==this._watermark&&(this._watermark.detach(),this._watermark=null)}});return(0,e.useLayoutEffect)(()=>{if(a){if(!s)throw new f("Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.",{isOperational:!0,docsPath:""});n&&c.current.init()}},[a,n,s]),(0,e.useLayoutEffect)(()=>()=>{c.current.clear()},[]),(0,e.useLayoutEffect)(()=>{var e;if(!l||!r)return;let{type:t,...i}=r;null===(e=c.current.api())||void 0===e||e.applyOptions(i)},[r]),c},V=e=>"text"===e.type,B=(t,i)=>{let r=T(t);return(0,e.useImperativeHandle)(i,()=>r.current,[r]),null},W=(0,e.forwardRef)((e,t)=>B({...e,type:"text"},t)),M=(0,e.forwardRef)((e,t)=>B({...e,type:"image"},t));W.displayName="WatermarkText",M.displayName="WatermarkImage";let D=({render:t,plugin:r})=>{let{isReady:a,chartApiRef:l}=o(i),{isReady:n,seriesApiRef:s}=o(R),u=(0,e.useRef)({_primitive:null,api(){return this._primitive},init(){if(!this._primitive){let e=null==s?void 0:s.api(),i=null==l?void 0:l.api();if(!i||!e)return null;let a=r||t({chart:i,series:e});e.attachPrimitive(a),this._primitive=a}return this._primitive},clear(){if(null!==this._primitive){var e;null==s||null===(e=s.api())||void 0===e||e.detachPrimitive(this._primitive),this._primitive=null}}});return(0,e.useLayoutEffect)(()=>{a&&n&&u.current.init()},[n,a]),(0,e.useLayoutEffect)(()=>()=>{u.current.clear()},[]),u},$=(0,e.forwardRef)((t,i)=>{let r=D(t);return(0,e.useImperativeHandle)(i,()=>r.current,[r]),null});$.displayName="SeriesPrimitive";let z=({stretchFactor:t}={})=>{let{chartApiRef:r,isReady:a}=o(i),[l,n]=(0,e.useState)(!1),s=(0,e.useRef)({_pane:null,api(){return this._pane},init(){let e=null==r?void 0:r.api();if(!e)return null;let i=e.addPane(!0);return this._pane=i,n(!0),void 0!==t&&this._pane.setStretchFactor(t),this._pane},clear(){if(null!==this._pane){var e;null==r||null===(e=r.api())||void 0===e||e.removePane(this._pane.paneIndex()),n(!1),this._pane=null}}});return(0,e.useLayoutEffect)(()=>{a&&s.current.init()},[a]),(0,e.useLayoutEffect)(()=>()=>{s.current.clear()},[]),(0,e.useLayoutEffect)(()=>{if(void 0===t)return;let e=s.current.api();e&&e.setStretchFactor(t)},[t]),{paneApiRef:s,isReady:l}},F=(0,e.forwardRef)(({children:t,stretchFactor:i},r)=>{let{paneApiRef:{current:a},isReady:l}=z({stretchFactor:i});return(0,e.useImperativeHandle)(r,()=>a,[a]),e.default.createElement(h.Provider,{value:{paneApiRef:a,isReady:l}},t)});F.displayName="Pane";export{w as AreaSeries,A as BarSeries,P as BaselineSeries,k as CandlestickSeries,n as Chart,N as CustomSeries,C as HistogramSeries,g as LineSeries,H as Markers,F as Pane,O as PriceLine,y as PriceScale,$ as SeriesPrimitive,d as TimeScale,S as TimeScaleFitContentTrigger,M as WatermarkImage,W as WatermarkText};
|
|
14
16
|
//# sourceMappingURL=lightweight-charts-react-components.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightweight-charts-react-components.mjs","sources":["webpack://lightweight-charts-react-components/./src/chart/ChartContext.ts","webpack://lightweight-charts-react-components/./src/chart/useChart.ts","webpack://lightweight-charts-react-components/./src/chart/ChartComponent.tsx","webpack://lightweight-charts-react-components/./src/chart/ChartWrapper.tsx","webpack://lightweight-charts-react-components/./src/scales/TimeScaleContext.ts","webpack://lightweight-charts-react-components/./src/_shared/InternalError.ts","webpack://lightweight-charts-react-components/./src/_shared/useSafeContext.ts","webpack://lightweight-charts-react-components/./src/scales/useTimeScale.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScale.tsx","webpack://lightweight-charts-react-components/./src/scales/usePriceScale.ts","webpack://lightweight-charts-react-components/./src/scales/PriceScale.tsx","webpack://lightweight-charts-react-components/./src/scales/useTimeScaleFitContentTrigger.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScaleFitContentTrigger.tsx","webpack://lightweight-charts-react-components/./src/series/SeriesContext.ts","webpack://lightweight-charts-react-components/./src/pane/panesCount.ts","webpack://lightweight-charts-react-components/./src/series/useSeries.ts","webpack://lightweight-charts-react-components/./src/series/SeriesTemplate.tsx","webpack://lightweight-charts-react-components/./src/series/LineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/HistogramSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CandlestickSeries.tsx","webpack://lightweight-charts-react-components/./src/series/AreaSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BaselineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BarSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CustomSeries.tsx","webpack://lightweight-charts-react-components/./src/priceLine/usePriceLine.ts","webpack://lightweight-charts-react-components/./src/priceLine/PriceLine.tsx","webpack://lightweight-charts-react-components/./src/markers/useMarkers.ts","webpack://lightweight-charts-react-components/./src/markers/Markers.tsx","webpack://lightweight-charts-react-components/./src/watermark/useWatermark.ts","webpack://lightweight-charts-react-components/./src/watermark/Watermark.tsx","webpack://lightweight-charts-react-components/./src/primitives/useSeriesPrimitive.ts","webpack://lightweight-charts-react-components/./src/primitives/SeriesPrimitive.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { type IChartContext } from \"./types\";\n\nconst ChartContext = createContext<IChartContext | null>(null);\n\nChartContext.displayName = \"ChartContext\";\nexport { ChartContext };\n","import { createChart } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport type { ChartApiRef, UseChartOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n onDblClick,\n}: UseChartOptions) => {\n const [isReady, setIsReady] = useState(false);\n\n const chartApiRef = useRef<ChartApiRef>({\n _chart: null,\n api() {\n return this._chart;\n },\n init() {\n if (this._chart === null) {\n this._chart = createChart(container, options);\n\n if (onInit) {\n onInit(this._chart);\n }\n }\n\n if (!isReady) {\n setIsReady(true);\n }\n\n return this._chart;\n },\n clear() {\n if (this._chart !== null) {\n setIsReady(false);\n this._chart.remove();\n this._chart = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n chartApiRef.current.init();\n\n return () => {\n chartApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onClick) {\n chartApiRef.current.api()?.subscribeClick(onClick);\n }\n\n return () => {\n if (onClick) {\n chartApiRef.current.api()?.unsubscribeClick(onClick);\n }\n };\n }, [onClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onCrosshairMove) {\n chartApiRef.current.api()?.subscribeCrosshairMove(onCrosshairMove);\n }\n\n return () => {\n if (onCrosshairMove) {\n chartApiRef.current.api()?.unsubscribeCrosshairMove(onCrosshairMove);\n }\n };\n }, [onCrosshairMove]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onDblClick) {\n chartApiRef.current.api()?.subscribeDblClick(onDblClick);\n }\n\n return () => {\n if (onDblClick) {\n chartApiRef.current.api()?.unsubscribeDblClick(onDblClick);\n }\n };\n }, [onDblClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n chartApiRef.current.api()?.applyOptions(options);\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartComponentProps } from \"./types\";\n\nconst ChartComponent: React.FC<ChartComponentProps> = ({\n children,\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options,\n}) => {\n const {\n chartApiRef: { current: chartApiRef },\n isReady,\n } = useChart({ container, onClick, onCrosshairMove, onInit, options });\n\n return (\n <ChartContext.Provider\n value={{\n chartApiRef,\n isReady,\n }}\n >\n {children}\n </ChartContext.Provider>\n );\n};\n\nexport { ChartComponent };\n","import { forwardRef, useCallback, useState } from \"react\";\nimport { ChartComponent } from \"./ChartComponent\";\nimport type { ChartProps } from \"./types\";\nimport type { ForwardRefRenderFunction } from \"react\";\n\nconst ChartRenderFunction: ForwardRefRenderFunction<HTMLDivElement, ChartProps> = (\n { children, containerProps, ...rest },\n ref\n) => {\n const [container, setContainer] = useState<HTMLDivElement>();\n const containerRef = useCallback(\n (r: HTMLDivElement) => {\n setContainer(r);\n\n if (ref) {\n if (typeof ref === \"function\") {\n containerRef(r);\n } else {\n ref.current = r;\n }\n }\n },\n [ref]\n );\n\n return (\n <div ref={containerRef} {...containerProps}>\n {!!container && (\n <ChartComponent container={container} {...rest}>\n {children}\n </ChartComponent>\n )}\n </div>\n );\n};\n\nconst ChartWrapper = forwardRef(ChartRenderFunction);\nChartWrapper.displayName = \"ChartWrapper\";\nexport { ChartWrapper };\n","import { createContext } from \"react\";\nimport { type ITimeScaleContext } from \"./types\";\n\nconst TimeScaleContext = createContext<ITimeScaleContext | null>(null);\nTimeScaleContext.displayName = \"TimeScaleContext\";\nexport { TimeScaleContext };\n","import { version } from \"../../package.json\";\n\nconst docsBaseUrl = \"https://tradingview.github.io/lightweight-charts/docs\";\n\ntype IBaseErrorParameters = {\n isOperational?: boolean;\n cause?: Error | BaseInternalError;\n docsPath?: string;\n};\n\nclass BaseInternalError extends Error {\n public isOperational: boolean;\n public cause?: Error | BaseInternalError;\n\n constructor(\n message?: string,\n { isOperational = true, cause, docsPath }: IBaseErrorParameters = {}\n ) {\n super(message);\n\n this.name = this.constructor.name ?? \"InternalError\";\n this.isOperational = isOperational;\n this.cause = cause;\n\n this.message = `${message ?? \"An error occurred\"}`;\n\n if (docsPath) {\n this.message = `${this.message}\n Docs: see ${docsBaseUrl + docsPath}`;\n }\n\n if (version) {\n this.message = `${this.message}\n Version: lightweight-charts-react-components/${version}`;\n }\n\n Object.setPrototypeOf(this, BaseInternalError.prototype);\n }\n}\n\nexport { BaseInternalError };\n","import { type Context, useContext } from \"react\";\nimport { BaseInternalError } from \"./InternalError\";\n\nexport const useSafeContext = <T>(context: Context<T>, errorMessage?: string) => {\n const currentContextValue = useContext(context);\n\n if (!currentContextValue) {\n const ctxName = context.name ?? context.displayName ?? \"Context\";\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: Omit<TimeScaleProps, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (this._timeScale) {\n return this._timeScale;\n }\n\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._timeScale = chartApi.timeScale();\n\n this._timeScale.applyOptions(options);\n\n if (visibleRange) {\n this._timeScale.setVisibleRange(visibleRange);\n }\n\n if (visibleLogicalRange) {\n this._timeScale.setVisibleLogicalRange(visibleLogicalRange);\n }\n\n if (onVisibleTimeRangeChange) {\n this._timeScale.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n if (onVisibleLogicalRangeChange) {\n this._timeScale.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n if (onSizeChange) {\n this._timeScale.subscribeSizeChange(onSizeChange);\n }\n\n setIsReady(true);\n\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\n setIsReady(false);\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n timeScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n timeScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n timeScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.subscribeSizeChange(onSizeChange);\n }\n\n return () => {\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.unsubscribeSizeChange(onSizeChange);\n }\n };\n }, [onSizeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n return () => {\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n };\n }, [onVisibleLogicalRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n return () => {\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n };\n }, [onVisibleTimeRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleRange) {\n timeScaleApiRef.current?.api()?.setVisibleRange(visibleRange);\n }\n }, [visibleRange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleLogicalRange) {\n timeScaleApiRef.current?.api()?.setVisibleLogicalRange(visibleLogicalRange);\n }\n }, [visibleLogicalRange]);\n\n return { timeScaleApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst TimeScaleRenderFunction = (\n { children, ...props }: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n) => {\n const {\n timeScaleApiRef: { current: timeScaleApiRef },\n isReady,\n } = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef, [timeScaleApiRef]);\n\n return (\n <TimeScaleContext.Provider\n value={{\n timeScaleApiRef,\n isReady,\n }}\n >\n {children}\n </TimeScaleContext.Provider>\n );\n};\n\nconst TimeScale = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { PriceScaleProps, PriceScaleApiRef } from \"./types\";\n\nexport const usePriceScale = ({ options = {}, id }: PriceScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n\n const priceScaleApiRef = useRef<PriceScaleApiRef>({\n _priceScale: null,\n api() {\n return this._priceScale;\n },\n init() {\n if (!this._priceScale) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._priceScale = chartApi.priceScale(id);\n\n this._priceScale.applyOptions(options);\n }\n\n return this._priceScale;\n },\n setId(id) {\n if (this._priceScale === null || chart === null) {\n return;\n }\n\n this._priceScale = chart.api()!.priceScale(id);\n this._priceScale.applyOptions(options);\n },\n clear() {\n this._priceScale = null;\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n priceScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n priceScaleApiRef.current?.setId(id);\n }, [id]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n priceScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n return priceScaleApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceScale } from \"./usePriceScale\";\nimport type { PriceScaleApiRef, PriceScaleProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst PriceScaleRenderFunction = (\n props: PriceScaleProps,\n ref: ForwardedRef<PriceScaleApiRef>\n) => {\n const priceScaleApiRef = usePriceScale(props);\n useImperativeHandle(ref, () => priceScaleApiRef.current, [priceScaleApiRef]);\n\n return null;\n};\n\nconst PriceScale = forwardRef(PriceScaleRenderFunction);\nPriceScale.displayName = \"PriceScale\";\nexport { PriceScale };\n","import { useLayoutEffect } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst useTimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n const timeScaleContext = useSafeContext(TimeScaleContext);\n const { timeScaleApiRef, isReady } = timeScaleContext;\n\n useLayoutEffect(() => {\n if (!isReady || !timeScaleApiRef) {\n return;\n }\n\n const timeScale = timeScaleApiRef.api();\n queueMicrotask(() => {\n if (timeScale) {\n timeScale.fitContent();\n }\n });\n }, [...deps, isReady]);\n};\n\nexport { useTimeScaleFitContentTrigger };\n","import { useTimeScaleFitContentTrigger } from \"./useTimeScaleFitContentTrigger\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst TimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n useTimeScaleFitContentTrigger({ deps });\n\n return null;\n};\n\nexport { TimeScaleFitContentTrigger };\n","import { createContext } from \"react\";\nimport { type ISeriesContext } from \"./types\";\n\nexport const SeriesContext = createContext<ISeriesContext>({\n seriesApiRef: null,\n isReady: false,\n});\nSeriesContext.displayName = \"SeriesContext\";\n","let panesCount = 0;\n\nconst incrementPaneCount = () => {\n panesCount += 1;\n return panesCount;\n};\n\nconst decrementPaneCount = () => {\n if (panesCount !== 0) {\n panesCount -= 1;\n }\n return panesCount;\n};\n\nexport { panesCount, incrementPaneCount, decrementPaneCount };\n","import {\n LineSeries,\n CandlestickSeries,\n HistogramSeries,\n AreaSeries,\n BaselineSeries,\n BarSeries,\n} from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { incrementPaneCount, panesCount, decrementPaneCount } from \"@/pane/panesCount\";\nimport type { CustomSeriesUniqueProps, SeriesApiRef, SeriesTemplateProps } from \"./types\";\nimport type { SeriesDefinition, ISeriesApi, SeriesType } from \"lightweight-charts\";\n\ntype SeriesTypeWithoutCustom = Exclude<SeriesType, \"Custom\">;\n\nexport const useSeries = <T extends SeriesType>({\n type,\n data,\n options = {},\n reactive = true,\n isPane,\n ...rest\n}: Omit<SeriesTemplateProps<T>, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const seriesApiRef = useRef<SeriesApiRef<T>>({\n _series: null,\n api() {\n return this._series;\n },\n init() {\n if (!this._series) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n if (type === \"Custom\") {\n const plugin = (rest as CustomSeriesUniqueProps).plugin;\n if (!plugin) {\n throw new BaseInternalError(\"Custom series requires a plugin to be defined\");\n }\n\n // TODO: Fix this type cast and infer the correct type\n (this._series as unknown as ISeriesApi<\"Custom\">) = chartApi.addCustomSeries(\n plugin,\n options,\n isPane ? panesCount : 0\n );\n } else {\n this._series = chartApi.addSeries(\n seriesMap[type as SeriesTypeWithoutCustom] as SeriesDefinition<T>,\n options,\n isPane ? panesCount : 0\n );\n }\n\n setIsReady(true);\n this._series?.setData(data);\n isPane && incrementPaneCount();\n }\n\n return this._series;\n },\n clear() {\n if (this._series !== null) {\n chart?.api()?.removeSeries(this._series);\n this._series = null;\n setIsReady(false);\n isPane && decrementPaneCount();\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n seriesApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (data && reactive) {\n seriesApiRef.current.api()?.setData(data);\n }\n }, [data, reactive]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n seriesApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart || isPane === undefined) return;\n\n if (isPane) {\n incrementPaneCount();\n seriesApiRef.current.api()?.moveToPane(panesCount);\n } else {\n decrementPaneCount();\n seriesApiRef.current.api()?.moveToPane(0);\n }\n }, [isPane]);\n\n return { isReady, seriesApiRef };\n};\n\nconst seriesMap: Record<\n SeriesTypeWithoutCustom,\n SeriesDefinition<SeriesTypeWithoutCustom>\n> = {\n Line: LineSeries,\n Candlestick: CandlestickSeries,\n Histogram: HistogramSeries,\n Area: AreaSeries,\n Baseline: BaselineSeries,\n Bar: BarSeries,\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { SeriesContext } from \"./SeriesContext\";\nimport { useSeries } from \"./useSeries\";\nimport type { SeriesTemplateProps, SeriesApiRef } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesComponent = (<T extends SeriesType>(\n props: SeriesTemplateProps<T> & {\n ref?: ForwardedRef<SeriesApiRef<T>>;\n }\n) => ReturnType<typeof SeriesTemplateRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesTemplateRenderFunction = <T extends SeriesType>(\n { children, ...rest }: SeriesTemplateProps<T>,\n ref: ForwardedRef<SeriesApiRef<T>>\n) => {\n const {\n seriesApiRef: { current: seriesApiRef },\n isReady,\n } = useSeries(rest);\n useImperativeHandle(ref, () => seriesApiRef, [seriesApiRef]);\n\n return (\n <SeriesContext.Provider\n value={{\n seriesApiRef,\n isReady,\n }}\n >\n {children}\n </SeriesContext.Provider>\n );\n};\n\nconst SeriesTemplate = forwardRef(SeriesTemplateRenderFunction) as GenericSeriesComponent;\nSeriesTemplate.displayName = \"SeriesTemplate\";\nexport { SeriesTemplate };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst LineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Line\">,\n ref: ForwardedRef<SeriesApiRef<\"Line\">>\n) => {\n return (\n <SeriesTemplate type=\"Line\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst LineSeries = forwardRef(LineSeriesRenderFunction);\nLineSeries.displayName = \"LineSeries\";\nexport { LineSeries };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst HistogramSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Histogram\">,\n ref: ForwardedRef<SeriesApiRef<\"Histogram\">>\n) => {\n return (\n <SeriesTemplate type=\"Histogram\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst HistogramSeries = forwardRef(HistogramSeriesRenderFunction);\nHistogramSeries.displayName = \"HistogramSeries\";\nexport { HistogramSeries };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst CandlestickSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Candlestick\">,\n ref: ForwardedRef<SeriesApiRef<\"Candlestick\">>\n) => {\n return (\n <SeriesTemplate type=\"Candlestick\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CandlestickSeries = forwardRef(CandlestickSeriesRenderFunction);\nCandlestickSeries.displayName = \"CandlestickSeries\";\nexport { CandlestickSeries };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst AreaSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Area\">,\n ref: ForwardedRef<SeriesApiRef<\"Area\">>\n) => {\n return (\n <SeriesTemplate type=\"Area\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst AreaSeries = forwardRef(AreaSeriesRenderFunction);\nAreaSeries.displayName = \"AreaSeries\";\nexport { AreaSeries };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst BaselineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Baseline\">,\n ref: ForwardedRef<SeriesApiRef<\"Baseline\">>\n) => {\n return (\n <SeriesTemplate type=\"Baseline\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BaselineSeries = forwardRef(BaselineSeriesRenderFunction);\nBaselineSeries.displayName = \"BaselineSeries\";\nexport { BaselineSeries };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst BarSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Bar\">,\n ref: ForwardedRef<SeriesApiRef<\"Bar\">>\n) => {\n return (\n <SeriesTemplate type=\"Bar\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BarSeries = forwardRef(BarSeriesRenderFunction);\nBarSeries.displayName = \"BarSeries\";\nexport { BarSeries };\n","import { forwardRef } from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst CustomSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Custom\">,\n ref: ForwardedRef<SeriesApiRef<\"Custom\">>\n) => {\n return (\n <SeriesTemplate type=\"Custom\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CustomSeries = forwardRef(CustomSeriesRenderFunction);\nCustomSeries.displayName = \"CustomSeries\";\nexport { CustomSeries };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\n\nexport const usePriceLine = ({ options, price }: PriceLineProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const priceLineApiRef = useRef<PriceLineApiRef>({\n _priceLine: null,\n api() {\n return this._priceLine;\n },\n init() {\n if (!this._priceLine) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._priceLine = seriesApi.createPriceLine({\n price,\n ...options,\n });\n }\n\n return this._priceLine;\n },\n clear() {\n if (this._priceLine !== null) {\n series?.api()?.removePriceLine(this._priceLine);\n this._priceLine = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n priceLineApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceLineApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (options) {\n priceLineApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (price) {\n priceLineApiRef.current.api()?.applyOptions({ price });\n }\n }, [price]);\n\n return priceLineApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceLine } from \"./usePriceLine\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst PriceLineRenderFunction = (\n props: PriceLineProps,\n ref: ForwardedRef<PriceLineApiRef>\n) => {\n const priceLineApiRef = usePriceLine(props);\n useImperativeHandle(ref, () => priceLineApiRef.current, [priceLineApiRef]);\n\n return null;\n};\n\nconst PriceLine = forwardRef(PriceLineRenderFunction);\nPriceLine.displayName = \"PriceLine\";\nexport { PriceLine };\n","import { createSeriesMarkers } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\n\nexport const useMarkers = ({ reactive = true, markers }: MarkersProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const markersApiRef = useRef<MarkersApiRef>({\n _markers: null,\n api() {\n return this._markers;\n },\n init() {\n if (this._markers === null) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._markers = createSeriesMarkers(seriesApi, markers);\n }\n\n return this._markers;\n },\n clear() {\n if (this._markers !== null) {\n this._markers.detach();\n this._markers = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n markersApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n markersApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (markers && reactive) {\n markersApiRef.current.api()?.setMarkers(markers);\n }\n }, [markers, reactive]);\n\n return markersApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useMarkers } from \"./useMarkers\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst MarkersRenderFunction = (\n { ...rest }: MarkersProps,\n ref: ForwardedRef<MarkersApiRef>\n) => {\n const markersApiRef = useMarkers(rest);\n useImperativeHandle(ref, () => markersApiRef.current, [markersApiRef]);\n\n return null;\n};\n\nconst Markers = forwardRef(MarkersRenderFunction);\nMarkers.displayName = \"Markers\";\nexport { Markers };\n","import { createTextWatermark, createImageWatermark } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { WatermarkApiRef, WatermarkProps, WatermarkType } from \"./types\";\n\nconst useWatermark = <T extends WatermarkType>(props: WatermarkProps<T>) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n\n const watermarkApiRef = useRef<WatermarkApiRef<T>>({\n _watermark: null,\n api() {\n return this._watermark;\n },\n init() {\n if (this._watermark === null) {\n const chartApi = chart?.api();\n const pane = chartApi?.panes()[0];\n if (!chartApi || !pane) return null;\n\n if (isTextWatermark(props)) {\n const { type: _, ...rest } = props;\n this._watermark = createTextWatermark(pane, rest);\n } else {\n const { type: _, src, ...rest } = props as WatermarkProps<\"image\">;\n this._watermark = createImageWatermark(pane, src, rest);\n }\n }\n\n return this._watermark;\n },\n clear() {\n if (this._watermark !== null) {\n this._watermark.detach();\n this._watermark = null;\n }\n },\n } as WatermarkApiRef<T>);\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n watermarkApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n watermarkApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart || !props) return;\n\n const { type: _, ...rest } = props;\n watermarkApiRef.current.api()?.applyOptions(rest);\n }, [props]);\n\n return watermarkApiRef;\n};\n\nconst isTextWatermark = (\n props: WatermarkProps<WatermarkType>\n): props is WatermarkProps<\"text\"> => {\n return props.type === \"text\";\n};\n\nexport { useWatermark };\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useWatermark } from \"./useWatermark\";\nimport type {\n ImageWatermarkProps,\n TextWatermarkProps,\n WatermarkApiRef,\n WatermarkProps,\n WatermarkType,\n} from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst WatermarkRenderFunction = <T extends WatermarkType>(\n props: WatermarkProps<T>,\n ref: ForwardedRef<WatermarkApiRef<T>>\n) => {\n const watermarkApi = useWatermark(props);\n useImperativeHandle(ref, () => watermarkApi.current, [watermarkApi]);\n\n return null;\n};\n\nconst WatermarkText = forwardRef<WatermarkApiRef<\"text\">, TextWatermarkProps>(\n (props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"text\" }, ref);\n }\n);\n\nconst WatermarkImage = forwardRef<WatermarkApiRef<\"image\">, ImageWatermarkProps>(\n (props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"image\" }, ref);\n }\n);\n\nWatermarkText.displayName = \"WatermarkText\";\nWatermarkImage.displayName = \"WatermarkImage\";\n\nexport { WatermarkText, WatermarkImage };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { ISeriesApi, SeriesType } from \"lightweight-charts\";\n\nexport const useSeriesPrimitive = <T extends SeriesType>({\n render,\n plugin,\n}: SeriesPrimitiveProps<T>) => {\n const { isReady: isChartReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const seriesPrimitiveApiRef = useRef<SeriesPrimitiveApiRef>({\n _primitive: null,\n api() {\n return this._primitive;\n },\n init() {\n if (!this._primitive) {\n const seriesApi = series?.api();\n const chartApi = chart?.api();\n\n if (!chartApi || !seriesApi) {\n return null;\n }\n\n const primitive = plugin\n ? plugin\n : render({\n chart: chartApi,\n series: seriesApi as ISeriesApi<T>,\n });\n\n seriesApi.attachPrimitive(primitive);\n this._primitive = primitive;\n }\n\n return this._primitive;\n },\n clear() {\n if (this._primitive !== null) {\n series?.api()?.detachPrimitive(this._primitive);\n this._primitive = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!isChartReady || !seriesIsReady) return;\n\n seriesPrimitiveApiRef.current.init();\n }, [seriesIsReady, isChartReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesPrimitiveApiRef.current.clear();\n };\n }, []);\n\n return seriesPrimitiveApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useSeriesPrimitive } from \"./useSeriesPrimitive\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesPrimitiveComponent = (<T extends SeriesType>(\n props: SeriesPrimitiveProps<T> & {\n ref?: ForwardedRef<SeriesPrimitiveApiRef>;\n }\n) => ReturnType<typeof SeriesPrimitiveRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesPrimitiveRenderFunction = <T extends SeriesType>(\n props: SeriesPrimitiveProps<T>,\n ref: ForwardedRef<SeriesPrimitiveApiRef>\n) => {\n const seriesPrimitiveApiRef = useSeriesPrimitive(props);\n useImperativeHandle(ref, () => seriesPrimitiveApiRef.current, [seriesPrimitiveApiRef]);\n\n return null;\n};\n\nconst SeriesPrimitive = forwardRef(\n SeriesPrimitiveRenderFunction\n) as GenericSeriesPrimitiveComponent;\nSeriesPrimitive.displayName = \"SeriesPrimitive\";\nexport { SeriesPrimitive };\n"],"names":["ChartContext","createContext","useChart","container","onClick","onCrosshairMove","onInit","options","onDblClick","isReady","setIsReady","useState","chartApiRef","useRef","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","ChartWrapper","forwardRef","containerProps","rest","ref","setContainer","containerRef","useCallback","r","TimeScaleContext","BaseInternalError","Error","message","isOperational","cause","docsPath","docsBaseUrl","version","Object","useSafeContext","context","errorMessage","currentContextValue","useContext","ctxName","useTimeScale","onVisibleTimeRangeChange","onVisibleLogicalRangeChange","onSizeChange","visibleRange","visibleLogicalRange","chartIsReady","chart","timeScaleApiRef","chartApi","_timeScaleApiRef_current_api","TimeScale","props","useImperativeHandle","usePriceScale","id","priceScaleApiRef","_priceScaleApiRef_current","_priceScaleApiRef_current_api","PriceScale","useTimeScaleFitContentTrigger","deps","timeScale","queueMicrotask","TimeScaleFitContentTrigger","SeriesContext","panesCount","incrementPaneCount","decrementPaneCount","useSeries","type","data","reactive","isPane","seriesApiRef","_this__series","plugin","seriesMap","_chart_api","_seriesApiRef_current_api","_seriesApiRef_current_api1","undefined","LineSeries","CandlestickSeries","HistogramSeries","AreaSeries","BaselineSeries","BarSeries","SeriesTemplate","CustomSeries","usePriceLine","price","seriesIsReady","series","priceLineApiRef","seriesApi","_series_api","_priceLineApiRef_current_api","PriceLine","useMarkers","markers","markersApiRef","createSeriesMarkers","_markersApiRef_current_api","Markers","useWatermark","watermarkApiRef","pane","isTextWatermark","_","createTextWatermark","src","createImageWatermark","_watermarkApiRef_current_api","WatermarkRenderFunction","watermarkApi","WatermarkText","WatermarkImage","useSeriesPrimitive","render","isChartReady","seriesPrimitiveApiRef","primitive","SeriesPrimitive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lightweight-charts-react-components.mjs","sources":["webpack://lightweight-charts-react-components/./src/chart/ChartContext.ts","webpack://lightweight-charts-react-components/./src/chart/defaultChartOptions.ts","webpack://lightweight-charts-react-components/./src/chart/useChart.ts","webpack://lightweight-charts-react-components/./src/chart/ChartComponent.tsx","webpack://lightweight-charts-react-components/./src/chart/ChartWrapper.tsx","webpack://lightweight-charts-react-components/./src/scales/TimeScaleContext.ts","webpack://lightweight-charts-react-components/./src/version.ts","webpack://lightweight-charts-react-components/./src/_shared/InternalError.ts","webpack://lightweight-charts-react-components/./src/_shared/useSafeContext.ts","webpack://lightweight-charts-react-components/./src/scales/useTimeScale.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScale.tsx","webpack://lightweight-charts-react-components/./src/pane/PaneContext.ts","webpack://lightweight-charts-react-components/./src/pane/usePaneContext.ts","webpack://lightweight-charts-react-components/./src/scales/usePriceScale.ts","webpack://lightweight-charts-react-components/./src/scales/PriceScale.tsx","webpack://lightweight-charts-react-components/./src/scales/useTimeScaleFitContentTrigger.ts","webpack://lightweight-charts-react-components/./src/scales/TimeScaleFitContentTrigger.tsx","webpack://lightweight-charts-react-components/./src/series/SeriesContext.ts","webpack://lightweight-charts-react-components/./src/series/useSeries.ts","webpack://lightweight-charts-react-components/./src/series/SeriesTemplate.tsx","webpack://lightweight-charts-react-components/./src/series/LineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/HistogramSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CandlestickSeries.tsx","webpack://lightweight-charts-react-components/./src/series/AreaSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BaselineSeries.tsx","webpack://lightweight-charts-react-components/./src/series/BarSeries.tsx","webpack://lightweight-charts-react-components/./src/series/CustomSeries.tsx","webpack://lightweight-charts-react-components/./src/priceLine/usePriceLine.ts","webpack://lightweight-charts-react-components/./src/priceLine/PriceLine.tsx","webpack://lightweight-charts-react-components/./src/markers/useMarkers.ts","webpack://lightweight-charts-react-components/./src/markers/Markers.tsx","webpack://lightweight-charts-react-components/./src/watermark/useWatermark.ts","webpack://lightweight-charts-react-components/./src/watermark/Watermark.tsx","webpack://lightweight-charts-react-components/./src/primitives/useSeriesPrimitive.ts","webpack://lightweight-charts-react-components/./src/primitives/SeriesPrimitive.tsx","webpack://lightweight-charts-react-components/./src/pane/usePane.ts","webpack://lightweight-charts-react-components/./src/pane/Pane.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { type IChartContext } from \"./types\";\n\nconst ChartContext = createContext<IChartContext | null>(null);\n\nChartContext.displayName = \"ChartContext\";\nexport { ChartContext };\n","import type { ChartOptions, DeepPartial } from \"lightweight-charts\";\n\nconst defaultChartOptions: DeepPartial<ChartOptions> = {\n addDefaultPane: false,\n};\n\nexport { defaultChartOptions };\n","import { createChart } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { defaultChartOptions } from \"./defaultChartOptions\";\nimport type { ChartApiRef, UseChartOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n onDblClick,\n}: UseChartOptions) => {\n const [isReady, setIsReady] = useState(false);\n\n const chartApiRef = useRef<ChartApiRef>({\n _chart: null,\n api() {\n return this._chart;\n },\n init() {\n if (this._chart === null) {\n const chart = createChart(container, {\n ...defaultChartOptions,\n ...options,\n });\n this._chart = chart;\n\n if (onInit) {\n onInit(this._chart);\n }\n }\n\n if (!isReady) {\n setIsReady(true);\n }\n\n return this._chart;\n },\n clear() {\n if (this._chart !== null) {\n setIsReady(false);\n this._chart.remove();\n this._chart = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n chartApiRef.current.init();\n\n return () => {\n chartApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onClick) {\n chartApiRef.current.api()?.subscribeClick(onClick);\n }\n\n return () => {\n if (onClick) {\n chartApiRef.current.api()?.unsubscribeClick(onClick);\n }\n };\n }, [onClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onCrosshairMove) {\n chartApiRef.current.api()?.subscribeCrosshairMove(onCrosshairMove);\n }\n\n return () => {\n if (onCrosshairMove) {\n chartApiRef.current.api()?.unsubscribeCrosshairMove(onCrosshairMove);\n }\n };\n }, [onCrosshairMove]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n if (onDblClick) {\n chartApiRef.current.api()?.subscribeDblClick(onDblClick);\n }\n\n return () => {\n if (onDblClick) {\n chartApiRef.current.api()?.unsubscribeDblClick(onDblClick);\n }\n };\n }, [onDblClick]);\n\n useLayoutEffect(() => {\n if (!container) return;\n\n chartApiRef.current.api()?.applyOptions({\n ...defaultChartOptions,\n ...options,\n });\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import React from \"react\";\nimport { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartComponentProps } from \"./types\";\n\nconst ChartComponent: React.FC<ChartComponentProps> = ({\n children,\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options,\n}) => {\n const {\n chartApiRef: { current: chartApiRef },\n isReady,\n } = useChart({ container, onClick, onCrosshairMove, onInit, options });\n\n return (\n <ChartContext.Provider\n value={{\n chartApiRef,\n isReady,\n }}\n >\n {children}\n </ChartContext.Provider>\n );\n};\n\nexport { ChartComponent };\n","import { forwardRef, useCallback, useState } from \"react\";\nimport React from \"react\";\nimport { ChartComponent } from \"./ChartComponent\";\nimport type { ChartProps } from \"./types\";\nimport type {\n ForwardRefExoticComponent,\n ForwardRefRenderFunction,\n RefAttributes,\n} from \"react\";\n\nconst ChartRenderFunction: ForwardRefRenderFunction<HTMLDivElement, ChartProps> = (\n { children, containerProps, ...rest },\n ref\n) => {\n const [container, setContainer] = useState<HTMLDivElement>();\n const containerRef = useCallback(\n (r: HTMLDivElement) => {\n setContainer(r);\n\n if (ref) {\n if (typeof ref === \"function\") {\n containerRef(r);\n } else {\n ref.current = r;\n }\n }\n },\n [ref]\n );\n\n return (\n <div ref={containerRef} {...containerProps}>\n {!!container && (\n <ChartComponent container={container} {...rest}>\n {children}\n </ChartComponent>\n )}\n </div>\n );\n};\n\nconst ChartWrapper: ForwardRefExoticComponent<\n ChartProps & RefAttributes<HTMLDivElement>\n> = forwardRef(ChartRenderFunction);\nChartWrapper.displayName = \"ChartWrapper\";\nexport { ChartWrapper };\n","import { createContext } from \"react\";\nimport { type ITimeScaleContext } from \"./types\";\n\nconst TimeScaleContext = createContext<ITimeScaleContext | null>(null);\nTimeScaleContext.displayName = \"TimeScaleContext\";\nexport { TimeScaleContext };\n","export const version = \"1.0.0\";\n","import { version } from \"../version\";\n\nconst docsBaseUrl = \"https://ukorvl.github.io/lightweight-charts-react-components/docs/\";\n\ntype IBaseErrorParameters = {\n /**\n * An operational error refers to an error that occurs during normal program operation\n * due to external factors or expected failures, not due to bugs in the code itself.\n */\n isOperational?: boolean;\n /**\n * The cause of the error, if any.\n * This can be used to provide additional context or information about the error.\n */\n cause?: Error | BaseInternalError;\n /**\n * A path to the documentation that can help resolve the error.\n * This is useful for providing users with guidance on how to fix or understand the error.\n */\n docsPath?: string;\n};\n\nclass BaseInternalError extends Error {\n public isOperational: boolean;\n public override cause?: Error | BaseInternalError;\n\n constructor(\n message?: string,\n { isOperational = true, cause, docsPath }: IBaseErrorParameters = {}\n ) {\n super(message);\n\n this.name = this.constructor.name ?? \"InternalError\";\n this.isOperational = isOperational;\n this.cause = cause;\n\n this.message = `${message ?? \"An error occurred\"}`;\n\n if (docsPath) {\n this.message = `${this.message}\\n\\nDocs: see ${docsBaseUrl + docsPath}`;\n }\n\n if (version) {\n this.message = `${this.message}\\n\\nVersion: lightweight-charts-react-components@${version}`;\n }\n\n Object.setPrototypeOf(this, BaseInternalError.prototype);\n }\n}\n\nexport { BaseInternalError };\n","import { type Context, useContext } from \"react\";\nimport { BaseInternalError } from \"./InternalError\";\n\nexport const useSafeContext = <T>(context: Context<T>, errorMessage?: string) => {\n const currentContextValue = useContext(context);\n\n if (!currentContextValue) {\n const ctxName = context.name ?? context.displayName ?? \"Context\";\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: Omit<TimeScaleProps, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (this._timeScale) {\n return this._timeScale;\n }\n\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._timeScale = chartApi.timeScale();\n\n this._timeScale.applyOptions(options);\n\n if (visibleRange) {\n this._timeScale.setVisibleRange(visibleRange);\n }\n\n if (visibleLogicalRange) {\n this._timeScale.setVisibleLogicalRange(visibleLogicalRange);\n }\n\n if (onVisibleTimeRangeChange) {\n this._timeScale.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n if (onVisibleLogicalRangeChange) {\n this._timeScale.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n if (onSizeChange) {\n this._timeScale.subscribeSizeChange(onSizeChange);\n }\n\n setIsReady(true);\n\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\n setIsReady(false);\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n timeScaleApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n timeScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n timeScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.subscribeSizeChange(onSizeChange);\n }\n\n return () => {\n if (onSizeChange) {\n timeScaleApiRef.current?.api()?.unsubscribeSizeChange(onSizeChange);\n }\n };\n }, [onSizeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n\n return () => {\n if (onVisibleLogicalRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChange);\n }\n };\n }, [onVisibleLogicalRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.subscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n\n return () => {\n if (onVisibleTimeRangeChange) {\n timeScaleApiRef.current\n ?.api()\n ?.unsubscribeVisibleTimeRangeChange(onVisibleTimeRangeChange);\n }\n };\n }, [onVisibleTimeRangeChange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleRange) {\n timeScaleApiRef.current?.api()?.setVisibleRange(visibleRange);\n }\n }, [visibleRange]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (visibleLogicalRange) {\n timeScaleApiRef.current?.api()?.setVisibleLogicalRange(visibleLogicalRange);\n }\n }, [visibleLogicalRange]);\n\n return { timeScaleApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst TimeScaleRenderFunction = (\n { children, ...props }: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n): JSX.Element => {\n const {\n timeScaleApiRef: { current: timeScaleApiRef },\n isReady,\n } = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef, [timeScaleApiRef]);\n\n return (\n <TimeScaleContext.Provider\n value={{\n timeScaleApiRef,\n isReady,\n }}\n >\n {children}\n </TimeScaleContext.Provider>\n );\n};\n\nconst TimeScale: ForwardRefExoticComponent<\n TimeScaleProps & RefAttributes<TimeScaleApiRef>\n> = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { createContext } from \"react\";\nimport { type IPaneContext } from \"./types\";\n\nconst PaneContext = createContext<IPaneContext | null>(null);\n\nPaneContext.displayName = \"PaneContext\";\nexport { PaneContext };\n","import { useContext } from \"react\";\nimport { PaneContext } from \"./PaneContext\";\n\nconst usePaneContext = () => {\n const paneContext = useContext(PaneContext);\n\n const isInsidePane = !!paneContext;\n const isPaneReady = !!paneContext?.isReady;\n const paneApiRef = paneContext?.paneApiRef;\n\n return { isInsidePane, isPaneReady, paneApiRef };\n};\n\nexport { usePaneContext };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { PriceScaleProps, PriceScaleApiRef } from \"./types\";\n\nexport const usePriceScale = ({ options = {}, id }: PriceScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isInsidePane, isPaneReady } = usePaneContext();\n\n const priceScaleApiRef = useRef<PriceScaleApiRef>({\n _priceScale: null,\n api() {\n return this._priceScale;\n },\n init() {\n if (!this._priceScale) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n this._priceScale = chartApi.priceScale(id);\n\n this._priceScale.applyOptions(options);\n }\n\n return this._priceScale;\n },\n setId(id) {\n if (this._priceScale === null || chart === null) {\n return;\n }\n\n this._priceScale = chart.api()!.priceScale(id);\n this._priceScale.applyOptions(options);\n },\n clear() {\n this._priceScale = null;\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"PriceScale must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n priceScaleApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceScaleApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n priceScaleApiRef.current?.setId(id);\n }, [id]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n priceScaleApiRef.current?.api()?.applyOptions(options);\n }\n }, [options]);\n\n return priceScaleApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceScale } from \"./usePriceScale\";\nimport type { PriceScaleApiRef, PriceScaleProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceScaleRenderFunction = (\n props: PriceScaleProps,\n ref: ForwardedRef<PriceScaleApiRef>\n): JSX.Element | null => {\n const priceScaleApiRef = usePriceScale(props);\n useImperativeHandle(ref, () => priceScaleApiRef.current, [priceScaleApiRef]);\n\n return null;\n};\n\nconst PriceScale: ForwardRefExoticComponent<\n PriceScaleProps & RefAttributes<PriceScaleApiRef>\n> = forwardRef(PriceScaleRenderFunction);\nPriceScale.displayName = \"PriceScale\";\nexport { PriceScale };\n","import { useLayoutEffect } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { TimeScaleContext } from \"./TimeScaleContext\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\n\nconst useTimeScaleFitContentTrigger = ({ deps }: TimeScaleFitContentTriggerProps) => {\n const timeScaleContext = useSafeContext(TimeScaleContext);\n const { timeScaleApiRef, isReady } = timeScaleContext;\n\n useLayoutEffect(() => {\n if (!isReady || !timeScaleApiRef) {\n return;\n }\n\n const timeScale = timeScaleApiRef.api();\n queueMicrotask(() => {\n if (timeScale) {\n timeScale.fitContent();\n }\n });\n }, [...deps, isReady]);\n};\n\nexport { useTimeScaleFitContentTrigger };\n","import { useTimeScaleFitContentTrigger } from \"./useTimeScaleFitContentTrigger\";\nimport type { TimeScaleFitContentTriggerProps } from \"./types\";\nimport type { JSX } from \"react\";\n\nconst TimeScaleFitContentTrigger = ({\n deps,\n}: TimeScaleFitContentTriggerProps): JSX.Element | null => {\n useTimeScaleFitContentTrigger({ deps });\n\n return null;\n};\n\nexport { TimeScaleFitContentTrigger };\n","import { createContext } from \"react\";\nimport { type ISeriesContext } from \"./types\";\n\nexport const SeriesContext = createContext<ISeriesContext>({\n seriesApiRef: null,\n isReady: false,\n});\nSeriesContext.displayName = \"SeriesContext\";\n","import {\n LineSeries,\n CandlestickSeries,\n HistogramSeries,\n AreaSeries,\n BaselineSeries,\n BarSeries,\n} from \"lightweight-charts\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { CustomSeriesUniqueProps, SeriesApiRef, SeriesTemplateProps } from \"./types\";\nimport type { SeriesDefinition, ISeriesApi, SeriesType } from \"lightweight-charts\";\n\ntype SeriesTypeWithoutCustom = Exclude<SeriesType, \"Custom\">;\n\nexport const useSeries = <T extends SeriesType>({\n type,\n data,\n options = {},\n reactive = true,\n ...rest\n}: Omit<SeriesTemplateProps<T>, \"children\">) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n const [isReady, setIsReady] = useState(false);\n\n const seriesApiRef = useRef<SeriesApiRef<T>>({\n _series: null,\n api() {\n return this._series;\n },\n init() {\n if (!this._series) {\n const chartApi = chart?.api();\n\n if (!chartApi) {\n return null;\n }\n\n const paneIndex = isInsidePane ? paneApiRef?.api()?.paneIndex() : undefined;\n\n if (type === \"Custom\") {\n const plugin = (rest as CustomSeriesUniqueProps).plugin;\n if (!plugin) {\n throw new BaseInternalError(\"Custom series requires a plugin to be defined\");\n }\n\n // TODO: Fix this type cast and infer the correct type\n (this._series as unknown as ISeriesApi<\"Custom\">) = chartApi.addCustomSeries(\n plugin,\n options,\n paneIndex\n );\n } else {\n this._series = chartApi.addSeries(\n seriesMap[type as SeriesTypeWithoutCustom] as SeriesDefinition<T>,\n options,\n paneIndex\n );\n }\n\n this._series?.setData(data);\n\n setIsReady(true);\n }\n\n return this._series;\n },\n clear() {\n if (this._series !== null) {\n chart?.api()?.removeSeries(this._series);\n this._series = null;\n setIsReady(false);\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (isInsidePane && !isPaneReady) {\n return;\n }\n\n seriesApiRef.current.init();\n }, [chartIsReady, isInsidePane, isPaneReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (data && reactive) {\n seriesApiRef.current.api()?.setData(data);\n }\n }, [data, reactive]);\n\n useLayoutEffect(() => {\n if (!chart) return;\n\n if (options) {\n seriesApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n return { isReady, seriesApiRef };\n};\n\nconst seriesMap: Record<\n SeriesTypeWithoutCustom,\n SeriesDefinition<SeriesTypeWithoutCustom>\n> = {\n Line: LineSeries,\n Candlestick: CandlestickSeries,\n Histogram: HistogramSeries,\n Area: AreaSeries,\n Baseline: BaselineSeries,\n Bar: BarSeries,\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { SeriesContext } from \"./SeriesContext\";\nimport { useSeries } from \"./useSeries\";\nimport type { SeriesTemplateProps, SeriesApiRef } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef } from \"react\";\n\ntype GenericSeriesComponent = (<T extends SeriesType>(\n props: SeriesTemplateProps<T> & {\n ref?: ForwardedRef<SeriesApiRef<T>>;\n }\n) => ReturnType<typeof SeriesTemplateRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesTemplateRenderFunction = <T extends SeriesType>(\n { children, ...rest }: SeriesTemplateProps<T>,\n ref: ForwardedRef<SeriesApiRef<T>>\n) => {\n const {\n seriesApiRef: { current: seriesApiRef },\n isReady,\n } = useSeries(rest);\n useImperativeHandle(ref, () => seriesApiRef, [seriesApiRef]);\n\n return (\n <SeriesContext.Provider\n value={{\n seriesApiRef,\n isReady,\n }}\n >\n {children}\n </SeriesContext.Provider>\n );\n};\n\nconst SeriesTemplate = forwardRef(SeriesTemplateRenderFunction) as GenericSeriesComponent;\nSeriesTemplate.displayName = \"SeriesTemplate\";\nexport { SeriesTemplate };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst LineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Line\">,\n ref: ForwardedRef<SeriesApiRef<\"Line\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Line\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst LineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Line\"> & RefAttributes<SeriesApiRef<\"Line\">>\n> = forwardRef(LineSeriesRenderFunction);\nLineSeries.displayName = \"LineSeries\";\nexport { LineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst HistogramSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Histogram\">,\n ref: ForwardedRef<SeriesApiRef<\"Histogram\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Histogram\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst HistogramSeries: ForwardRefExoticComponent<\n SeriesProps<\"Histogram\"> & RefAttributes<SeriesApiRef<\"Histogram\">>\n> = forwardRef(HistogramSeriesRenderFunction);\nHistogramSeries.displayName = \"HistogramSeries\";\nexport { HistogramSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CandlestickSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Candlestick\">,\n ref: ForwardedRef<SeriesApiRef<\"Candlestick\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Candlestick\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CandlestickSeries: ForwardRefExoticComponent<\n SeriesProps<\"Candlestick\"> & RefAttributes<SeriesApiRef<\"Candlestick\">>\n> = forwardRef(CandlestickSeriesRenderFunction);\nCandlestickSeries.displayName = \"CandlestickSeries\";\nexport { CandlestickSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst AreaSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Area\">,\n ref: ForwardedRef<SeriesApiRef<\"Area\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Area\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst AreaSeries: ForwardRefExoticComponent<\n SeriesProps<\"Area\"> & RefAttributes<SeriesApiRef<\"Area\">>\n> = forwardRef(AreaSeriesRenderFunction);\nAreaSeries.displayName = \"AreaSeries\";\nexport { AreaSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BaselineSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Baseline\">,\n ref: ForwardedRef<SeriesApiRef<\"Baseline\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Baseline\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BaselineSeries: ForwardRefExoticComponent<\n SeriesProps<\"Baseline\"> & RefAttributes<SeriesApiRef<\"Baseline\">>\n> = forwardRef(BaselineSeriesRenderFunction);\nBaselineSeries.displayName = \"BaselineSeries\";\nexport { BaselineSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst BarSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Bar\">,\n ref: ForwardedRef<SeriesApiRef<\"Bar\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Bar\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst BarSeries: ForwardRefExoticComponent<\n SeriesProps<\"Bar\"> & RefAttributes<SeriesApiRef<\"Bar\">>\n> = forwardRef(BarSeriesRenderFunction);\nBarSeries.displayName = \"BarSeries\";\nexport { BarSeries };\n","import { forwardRef } from \"react\";\nimport React from \"react\";\nimport { SeriesTemplate } from \"./SeriesTemplate\";\nimport type { SeriesApiRef, SeriesProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst CustomSeriesRenderFunction = (\n { children, ...rest }: SeriesProps<\"Custom\">,\n ref: ForwardedRef<SeriesApiRef<\"Custom\">>\n): JSX.Element => {\n return (\n <SeriesTemplate type=\"Custom\" ref={ref} {...rest}>\n {children}\n </SeriesTemplate>\n );\n};\n\nconst CustomSeries: ForwardRefExoticComponent<\n SeriesProps<\"Custom\"> & RefAttributes<SeriesApiRef<\"Custom\">>\n> = forwardRef(CustomSeriesRenderFunction);\nCustomSeries.displayName = \"CustomSeries\";\nexport { CustomSeries };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\n\nexport const usePriceLine = ({ options, price }: PriceLineProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const priceLineApiRef = useRef<PriceLineApiRef>({\n _priceLine: null,\n api() {\n return this._priceLine;\n },\n init() {\n if (!this._priceLine) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._priceLine = seriesApi.createPriceLine({\n price,\n ...options,\n });\n }\n\n return this._priceLine;\n },\n clear() {\n if (this._priceLine !== null) {\n series?.api()?.removePriceLine(this._priceLine);\n this._priceLine = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n priceLineApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n priceLineApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (options) {\n priceLineApiRef.current.api()?.applyOptions(options);\n }\n }, [options]);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (price) {\n priceLineApiRef.current.api()?.applyOptions({ price });\n }\n }, [price]);\n\n return priceLineApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { usePriceLine } from \"./usePriceLine\";\nimport type { PriceLineApiRef, PriceLineProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst PriceLineRenderFunction = (\n props: PriceLineProps,\n ref: ForwardedRef<PriceLineApiRef>\n): JSX.Element | null => {\n const priceLineApiRef = usePriceLine(props);\n useImperativeHandle(ref, () => priceLineApiRef.current, [priceLineApiRef]);\n\n return null;\n};\n\nconst PriceLine: ForwardRefExoticComponent<\n PriceLineProps & RefAttributes<PriceLineApiRef>\n> = forwardRef(PriceLineRenderFunction);\nPriceLine.displayName = \"PriceLine\";\nexport { PriceLine };\n","import { createSeriesMarkers } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\n\nexport const useMarkers = ({ reactive = true, markers }: MarkersProps) => {\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const markersApiRef = useRef<MarkersApiRef>({\n _markers: null,\n api() {\n return this._markers;\n },\n init() {\n if (this._markers === null) {\n const seriesApi = series?.api();\n\n if (!seriesApi) {\n return null;\n }\n\n this._markers = createSeriesMarkers(seriesApi, markers);\n }\n\n return this._markers;\n },\n clear() {\n if (this._markers !== null) {\n this._markers.detach();\n this._markers = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!seriesIsReady) return;\n\n markersApiRef.current.init();\n }, [seriesIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n markersApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!series) return;\n\n if (markers && reactive) {\n markersApiRef.current.api()?.setMarkers(markers);\n }\n }, [markers, reactive]);\n\n return markersApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useMarkers } from \"./useMarkers\";\nimport type { MarkersApiRef, MarkersProps } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, JSX, RefAttributes } from \"react\";\n\nconst MarkersRenderFunction = (\n { ...rest }: MarkersProps,\n ref: ForwardedRef<MarkersApiRef>\n): JSX.Element | null => {\n const markersApiRef = useMarkers(rest);\n useImperativeHandle(ref, () => markersApiRef.current, [markersApiRef]);\n\n return null;\n};\n\nconst Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>> =\n forwardRef(MarkersRenderFunction);\nMarkers.displayName = \"Markers\";\nexport { Markers };\n","import { createTextWatermark, createImageWatermark } from \"lightweight-charts\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport { BaseInternalError } from \"@/_shared/InternalError\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { usePaneContext } from \"@/pane/usePaneContext\";\nimport type { WatermarkApiRef, WatermarkProps, WatermarkType } from \"./types\";\n\nconst useWatermark = <T extends WatermarkType>(props: WatermarkProps<T>) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isPaneReady, isInsidePane, paneApiRef } = usePaneContext();\n\n const watermarkApiRef = useRef<WatermarkApiRef<T>>({\n _watermark: null,\n api() {\n return this._watermark;\n },\n init() {\n if (this._watermark === null) {\n const chartApi = chart?.api();\n\n const pane = paneApiRef?.api();\n\n if (!chartApi || !pane) return null;\n\n if (isTextWatermark(props)) {\n const { type: _, ...rest } = props;\n this._watermark = createTextWatermark(pane, rest);\n } else {\n const { type: _, src, ...rest } = props as WatermarkProps<\"image\">;\n this._watermark = createImageWatermark(pane, src, rest);\n }\n }\n\n return this._watermark;\n },\n clear() {\n if (this._watermark !== null) {\n this._watermark.detach();\n this._watermark = null;\n }\n },\n } as WatermarkApiRef<T>);\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n if (!isInsidePane) {\n throw new BaseInternalError(\n \"Watermark must be used inside a pane. Please ensure that the component is wrapped in a pane component.\",\n {\n isOperational: true,\n docsPath: \"\",\n }\n );\n }\n\n if (!isPaneReady) {\n return;\n }\n\n watermarkApiRef.current.init();\n }, [chartIsReady, isPaneReady, isInsidePane]);\n\n useLayoutEffect(() => {\n return () => {\n watermarkApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!chart || !props) return;\n\n const { type: _, ...rest } = props;\n watermarkApiRef.current.api()?.applyOptions(rest);\n }, [props]);\n\n return watermarkApiRef;\n};\n\nconst isTextWatermark = (\n props: WatermarkProps<WatermarkType>\n): props is WatermarkProps<\"text\"> => {\n return props.type === \"text\";\n};\n\nexport { useWatermark };\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useWatermark } from \"./useWatermark\";\nimport type {\n ImageWatermarkProps,\n TextWatermarkProps,\n WatermarkApiRef,\n WatermarkProps,\n WatermarkType,\n} from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst WatermarkRenderFunction = <T extends WatermarkType>(\n props: WatermarkProps<T>,\n ref: ForwardedRef<WatermarkApiRef<T>>\n) => {\n const watermarkApi = useWatermark(props);\n useImperativeHandle(ref, () => watermarkApi.current, [watermarkApi]);\n\n return null;\n};\n\nconst WatermarkText: ForwardRefExoticComponent<\n TextWatermarkProps & RefAttributes<WatermarkApiRef<\"text\">>\n> = forwardRef<WatermarkApiRef<\"text\">, TextWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"text\" }, ref);\n});\n\nconst WatermarkImage: ForwardRefExoticComponent<\n ImageWatermarkProps & RefAttributes<WatermarkApiRef<\"image\">>\n> = forwardRef<WatermarkApiRef<\"image\">, ImageWatermarkProps>((props, ref) => {\n return WatermarkRenderFunction({ ...props, type: \"image\" }, ref);\n});\n\nWatermarkText.displayName = \"WatermarkText\";\nWatermarkImage.displayName = \"WatermarkImage\";\n\nexport { WatermarkText, WatermarkImage };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { SeriesContext } from \"@/series/SeriesContext\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { ISeriesApi, SeriesType } from \"lightweight-charts\";\n\nexport const useSeriesPrimitive = <T extends SeriesType>({\n render,\n plugin,\n}: SeriesPrimitiveProps<T>) => {\n const { isReady: isChartReady, chartApiRef: chart } = useSafeContext(ChartContext);\n const { isReady: seriesIsReady, seriesApiRef: series } = useSafeContext(SeriesContext);\n\n const seriesPrimitiveApiRef = useRef<SeriesPrimitiveApiRef>({\n _primitive: null,\n api() {\n return this._primitive;\n },\n init() {\n if (!this._primitive) {\n const seriesApi = series?.api();\n const chartApi = chart?.api();\n\n if (!chartApi || !seriesApi) {\n return null;\n }\n\n const primitive = plugin\n ? plugin\n : render({\n chart: chartApi,\n series: seriesApi as ISeriesApi<T>,\n });\n\n seriesApi.attachPrimitive(primitive);\n this._primitive = primitive;\n }\n\n return this._primitive;\n },\n clear() {\n if (this._primitive !== null) {\n series?.api()?.detachPrimitive(this._primitive);\n this._primitive = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!isChartReady || !seriesIsReady) return;\n\n seriesPrimitiveApiRef.current.init();\n }, [seriesIsReady, isChartReady]);\n\n useLayoutEffect(() => {\n return () => {\n seriesPrimitiveApiRef.current.clear();\n };\n }, []);\n\n return seriesPrimitiveApiRef;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useSeriesPrimitive } from \"./useSeriesPrimitive\";\nimport type { SeriesPrimitiveApiRef, SeriesPrimitiveProps } from \"./types\";\nimport type { SeriesType } from \"lightweight-charts\";\nimport type { ForwardedRef, JSX } from \"react\";\n\ntype GenericSeriesPrimitiveComponent = (<T extends SeriesType>(\n props: SeriesPrimitiveProps<T> & {\n ref?: ForwardedRef<SeriesPrimitiveApiRef>;\n }\n) => ReturnType<typeof SeriesPrimitiveRenderFunction>) & {\n displayName: string;\n};\n\nconst SeriesPrimitiveRenderFunction = <T extends SeriesType>(\n props: SeriesPrimitiveProps<T>,\n ref: ForwardedRef<SeriesPrimitiveApiRef>\n): JSX.Element | null => {\n const seriesPrimitiveApiRef = useSeriesPrimitive(props);\n useImperativeHandle(ref, () => seriesPrimitiveApiRef.current, [seriesPrimitiveApiRef]);\n\n return null;\n};\n\nconst SeriesPrimitive = forwardRef(\n SeriesPrimitiveRenderFunction\n) as GenericSeriesPrimitiveComponent;\nSeriesPrimitive.displayName = \"SeriesPrimitive\";\nexport { SeriesPrimitive };\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport { useSafeContext } from \"@/_shared/useSafeContext\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport type { PaneApiRef, PaneProps } from \"./types\";\n\nexport const usePane = ({ stretchFactor }: Omit<PaneProps, \"children\"> = {}) => {\n const { chartApiRef: chart, isReady: chartIsReady } = useSafeContext(ChartContext);\n const [isReady, setIsReady] = useState(false);\n\n const paneApiRef = useRef<PaneApiRef>({\n _pane: null,\n api() {\n return this._pane;\n },\n init() {\n const chartApi = chart?.api();\n if (!chartApi) return null;\n\n const pane = chartApi.addPane(true);\n this._pane = pane;\n\n setIsReady(true);\n\n if (stretchFactor !== undefined) {\n this._pane.setStretchFactor(stretchFactor);\n }\n\n return this._pane;\n },\n clear() {\n if (this._pane !== null) {\n chart?.api()?.removePane(this._pane.paneIndex());\n setIsReady(false);\n\n this._pane = null;\n }\n },\n });\n\n useLayoutEffect(() => {\n if (!chartIsReady) return;\n\n paneApiRef.current.init();\n }, [chartIsReady]);\n\n useLayoutEffect(() => {\n return () => {\n paneApiRef.current.clear();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (stretchFactor === undefined) return;\n\n const pane = paneApiRef.current.api();\n if (pane) {\n pane.setStretchFactor(stretchFactor);\n }\n }, [stretchFactor]);\n\n return { paneApiRef, isReady };\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport React from \"react\";\nimport { PaneContext } from \"./PaneContext\";\nimport { usePane } from \"./usePane\";\nimport type { PaneProps, PaneApiRef } from \"./types\";\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from \"react\";\n\nconst PaneRenderFunction = (\n { children, stretchFactor }: PaneProps,\n ref: ForwardedRef<PaneApiRef>\n) => {\n const {\n paneApiRef: { current: paneApiRef },\n isReady,\n } = usePane({ stretchFactor });\n useImperativeHandle(ref, () => paneApiRef, [paneApiRef]);\n\n return (\n <PaneContext.Provider\n value={{\n paneApiRef,\n isReady,\n }}\n >\n {children}\n </PaneContext.Provider>\n );\n};\n\nconst Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>> =\n forwardRef(PaneRenderFunction);\nPane.displayName = \"Pane\";\nexport { Pane };\n"],"names":["ChartContext","createContext","defaultChartOptions","useChart","container","onClick","onCrosshairMove","onInit","options","onDblClick","isReady","setIsReady","useState","chartApiRef","useRef","chart","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","ChartWrapper","forwardRef","containerProps","rest","ref","setContainer","containerRef","useCallback","r","TimeScaleContext","version","BaseInternalError","Error","message","isOperational","cause","docsPath","docsBaseUrl","Object","useSafeContext","context","errorMessage","currentContextValue","useContext","ctxName","useTimeScale","onVisibleTimeRangeChange","onVisibleLogicalRangeChange","onSizeChange","visibleRange","visibleLogicalRange","chartIsReady","timeScaleApiRef","chartApi","_timeScaleApiRef_current_api","TimeScale","props","useImperativeHandle","PaneContext","usePaneContext","paneContext","isInsidePane","isPaneReady","paneApiRef","usePriceScale","id","priceScaleApiRef","_priceScaleApiRef_current","_priceScaleApiRef_current_api","PriceScale","useTimeScaleFitContentTrigger","deps","timeScale","queueMicrotask","TimeScaleFitContentTrigger","SeriesContext","useSeries","type","data","reactive","seriesApiRef","_paneApiRef_api","_this__series","paneIndex","undefined","plugin","seriesMap","_chart_api","_seriesApiRef_current_api","LineSeries","CandlestickSeries","HistogramSeries","AreaSeries","BaselineSeries","BarSeries","SeriesTemplate","CustomSeries","usePriceLine","price","seriesIsReady","series","priceLineApiRef","seriesApi","_series_api","_priceLineApiRef_current_api","PriceLine","useMarkers","markers","markersApiRef","createSeriesMarkers","_markersApiRef_current_api","Markers","useWatermark","watermarkApiRef","pane","isTextWatermark","_","createTextWatermark","src","createImageWatermark","_watermarkApiRef_current_api","WatermarkRenderFunction","watermarkApi","WatermarkText","WatermarkImage","useSeriesPrimitive","render","isChartReady","seriesPrimitiveApiRef","primitive","SeriesPrimitive","usePane","stretchFactor","Pane"],"mappings":"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"}
|