lightweight-charts-react-components 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +82 -1
- package/dist/lightweight-charts-react-components.mjs +3 -3
- package/dist/lightweight-charts-react-components.mjs.map +1 -1
- package/dist/lightweight-charts-react-components.standalone.js +2 -2
- package/dist/lightweight-charts-react-components.standalone.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/**!
|
|
3
|
-
* lightweight-charts-react-components v1.
|
|
3
|
+
* lightweight-charts-react-components v1.2.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.
|
|
@@ -146,6 +146,9 @@ export declare const CandlestickSeries: ForwardRefExoticComponent<SeriesProps<"C
|
|
|
146
146
|
*/
|
|
147
147
|
export declare const Chart: ForwardRefExoticComponent<ChartProps & RefAttributes<HTMLDivElement>>;
|
|
148
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Chart API reference type that can be used to access the chart plugin API.
|
|
151
|
+
*/
|
|
149
152
|
export declare type ChartApiRef = {
|
|
150
153
|
_chart: IChartApi | null;
|
|
151
154
|
api: () => IChartApi | null;
|
|
@@ -153,6 +156,9 @@ export declare type ChartApiRef = {
|
|
|
153
156
|
clear: () => void;
|
|
154
157
|
};
|
|
155
158
|
|
|
159
|
+
/**
|
|
160
|
+
* Chart component props.
|
|
161
|
+
*/
|
|
156
162
|
export declare type ChartProps = {
|
|
157
163
|
children?: ReactNode;
|
|
158
164
|
containerProps?: JSX.IntrinsicElements["div"];
|
|
@@ -185,6 +191,9 @@ export declare type ChartProps = {
|
|
|
185
191
|
*/
|
|
186
192
|
export declare const CustomSeries: ForwardRefExoticComponent<SeriesProps<"Custom"> & RefAttributes<SeriesApiRef<"Custom">>>;
|
|
187
193
|
|
|
194
|
+
/**
|
|
195
|
+
* Unique properties for the custom series component.
|
|
196
|
+
*/
|
|
188
197
|
declare type CustomSeriesUniqueProps = {
|
|
189
198
|
plugin?: ICustomSeriesPaneView;
|
|
190
199
|
};
|
|
@@ -216,10 +225,16 @@ declare type GenericSeriesPrimitiveComponent = (<T extends SeriesType>(props: Se
|
|
|
216
225
|
*/
|
|
217
226
|
export declare const HistogramSeries: ForwardRefExoticComponent<SeriesProps<"Histogram"> & RefAttributes<SeriesApiRef<"Histogram">>>;
|
|
218
227
|
|
|
228
|
+
/**
|
|
229
|
+
* Unique properties for the image watermark component.
|
|
230
|
+
*/
|
|
219
231
|
export declare type ImageWatermarkProps = {
|
|
220
232
|
src: string;
|
|
221
233
|
} & DeepPartial<ImageWatermarkOptions>;
|
|
222
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Pane context that provides access to the pane API and readiness state.
|
|
237
|
+
*/
|
|
223
238
|
export declare interface IPaneContext {
|
|
224
239
|
paneApiRef?: PaneApiRef;
|
|
225
240
|
isReady: boolean;
|
|
@@ -266,6 +281,9 @@ export declare const LineSeries: ForwardRefExoticComponent<SeriesProps<"Line"> &
|
|
|
266
281
|
*/
|
|
267
282
|
export declare const Markers: ForwardRefExoticComponent<MarkersProps & RefAttributes<MarkersApiRef>>;
|
|
268
283
|
|
|
284
|
+
/**
|
|
285
|
+
* Markers API reference type that can be used to access the series markers plugin API.
|
|
286
|
+
*/
|
|
269
287
|
export declare type MarkersApiRef = {
|
|
270
288
|
_markers: ISeriesMarkersPluginApi<Time> | null;
|
|
271
289
|
api: () => ISeriesMarkersPluginApi<Time> | null;
|
|
@@ -273,6 +291,9 @@ export declare type MarkersApiRef = {
|
|
|
273
291
|
clear: () => void;
|
|
274
292
|
};
|
|
275
293
|
|
|
294
|
+
/**
|
|
295
|
+
* Markers component properties that can be used to create a series markers component.
|
|
296
|
+
*/
|
|
276
297
|
export declare type MarkersProps = {
|
|
277
298
|
markers: SeriesMarker<Time>[];
|
|
278
299
|
reactive?: boolean;
|
|
@@ -295,6 +316,9 @@ export declare type MarkersProps = {
|
|
|
295
316
|
*/
|
|
296
317
|
export declare const Pane: ForwardRefExoticComponent<PaneProps & RefAttributes<PaneApiRef>>;
|
|
297
318
|
|
|
319
|
+
/**
|
|
320
|
+
* Pane API reference type that can be used to access the pane plugin API.
|
|
321
|
+
*/
|
|
298
322
|
export declare type PaneApiRef = {
|
|
299
323
|
_pane: IPaneApi<Time> | null;
|
|
300
324
|
api: () => IPaneApi<Time> | null;
|
|
@@ -302,6 +326,9 @@ export declare type PaneApiRef = {
|
|
|
302
326
|
clear: () => void;
|
|
303
327
|
};
|
|
304
328
|
|
|
329
|
+
/**
|
|
330
|
+
* Pane component props.
|
|
331
|
+
*/
|
|
305
332
|
export declare type PaneProps = {
|
|
306
333
|
children?: ReactNode;
|
|
307
334
|
stretchFactor?: number;
|
|
@@ -322,6 +349,9 @@ export declare type PaneProps = {
|
|
|
322
349
|
*/
|
|
323
350
|
export declare const PriceLine: ForwardRefExoticComponent<PriceLineProps & RefAttributes<PriceLineApiRef>>;
|
|
324
351
|
|
|
352
|
+
/**
|
|
353
|
+
* PriceLine API reference type that can be used to access the price line plugin API.
|
|
354
|
+
*/
|
|
325
355
|
export declare type PriceLineApiRef = {
|
|
326
356
|
_priceLine: IPriceLine | null;
|
|
327
357
|
api: () => IPriceLine | null;
|
|
@@ -329,6 +359,9 @@ export declare type PriceLineApiRef = {
|
|
|
329
359
|
clear: () => void;
|
|
330
360
|
};
|
|
331
361
|
|
|
362
|
+
/**
|
|
363
|
+
* PriceLine component props.
|
|
364
|
+
*/
|
|
332
365
|
export declare type PriceLineProps = {
|
|
333
366
|
price: number;
|
|
334
367
|
options?: Omit<Partial<PriceLineOptions>, "price">;
|
|
@@ -349,6 +382,9 @@ export declare type PriceLineProps = {
|
|
|
349
382
|
*/
|
|
350
383
|
export declare const PriceScale: ForwardRefExoticComponent<PriceScaleProps & RefAttributes<PriceScaleApiRef>>;
|
|
351
384
|
|
|
385
|
+
/**
|
|
386
|
+
* Price scale API reference type that can be used to access the price scale plugin API.
|
|
387
|
+
*/
|
|
352
388
|
export declare type PriceScaleApiRef = {
|
|
353
389
|
_priceScale: IPriceScaleApi | null;
|
|
354
390
|
api: () => IPriceScaleApi | null;
|
|
@@ -359,16 +395,25 @@ export declare type PriceScaleApiRef = {
|
|
|
359
395
|
|
|
360
396
|
declare type PriceScaleOptions = DeepPartial<PriceScaleOptions_2>;
|
|
361
397
|
|
|
398
|
+
/**
|
|
399
|
+
* PriceScale component props.
|
|
400
|
+
*/
|
|
362
401
|
export declare type PriceScaleProps = {
|
|
363
402
|
options?: PriceScaleOptions;
|
|
364
403
|
id: string;
|
|
365
404
|
};
|
|
366
405
|
|
|
406
|
+
/**
|
|
407
|
+
* Render function type for series primitives.
|
|
408
|
+
*/
|
|
367
409
|
export declare type RenderPrimitive<T extends SeriesType = SeriesType> = ({ chart, series, }: {
|
|
368
410
|
chart: IChartApi;
|
|
369
411
|
series: ISeriesApi<T>;
|
|
370
412
|
}) => ISeriesPrimitive;
|
|
371
413
|
|
|
414
|
+
/**
|
|
415
|
+
* Series API reference type that can be used to access the series plugin API.
|
|
416
|
+
*/
|
|
372
417
|
export declare type SeriesApiRef<T extends SeriesType> = {
|
|
373
418
|
_series: ISeriesApi<T> | null;
|
|
374
419
|
api: () => ISeriesApi<T> | null;
|
|
@@ -376,12 +421,16 @@ export declare type SeriesApiRef<T extends SeriesType> = {
|
|
|
376
421
|
clear: () => void;
|
|
377
422
|
};
|
|
378
423
|
|
|
424
|
+
/**
|
|
425
|
+
* Series options that can be used to customize the appearance and behavior of a series.
|
|
426
|
+
*/
|
|
379
427
|
export declare type SeriesOptions<T extends SeriesType> = SeriesPartialOptionsMap[T];
|
|
380
428
|
|
|
381
429
|
declare type SeriesParameters<T extends SeriesType> = {
|
|
382
430
|
data: SeriesDataItemTypeMap[T][];
|
|
383
431
|
reactive?: boolean;
|
|
384
432
|
options?: SeriesOptions<T>;
|
|
433
|
+
seriesOrder?: ReturnType<ISeriesApi<T>["seriesOrder"]>;
|
|
385
434
|
} & (T extends "Custom" ? CustomSeriesUniqueProps : {});
|
|
386
435
|
|
|
387
436
|
/**
|
|
@@ -400,6 +449,9 @@ declare type SeriesParameters<T extends SeriesType> = {
|
|
|
400
449
|
*/
|
|
401
450
|
export declare const SeriesPrimitive: GenericSeriesPrimitiveComponent;
|
|
402
451
|
|
|
452
|
+
/**
|
|
453
|
+
* Series primitive API reference type that can be used to access the series primitive plugin API.
|
|
454
|
+
*/
|
|
403
455
|
export declare type SeriesPrimitiveApiRef = {
|
|
404
456
|
_primitive: ISeriesPrimitive | null;
|
|
405
457
|
api(): ISeriesPrimitive | null;
|
|
@@ -407,6 +459,9 @@ export declare type SeriesPrimitiveApiRef = {
|
|
|
407
459
|
clear(): void;
|
|
408
460
|
};
|
|
409
461
|
|
|
462
|
+
/**
|
|
463
|
+
* Series primitive properties that can be used to create a series primitive.
|
|
464
|
+
*/
|
|
410
465
|
export declare type SeriesPrimitiveProps<T extends SeriesType = SeriesType> = SeriesPrimitivePropsWithRender<T> | SeriesPrimitivePropsWithPlugin;
|
|
411
466
|
|
|
412
467
|
declare type SeriesPrimitivePropsWithPlugin = {
|
|
@@ -421,13 +476,22 @@ declare type SeriesPrimitivePropsWithRender<T extends SeriesType> = {
|
|
|
421
476
|
|
|
422
477
|
declare const SeriesPrimitiveRenderFunction: <T extends SeriesType>(props: SeriesPrimitiveProps<T>, ref: ForwardedRef<SeriesPrimitiveApiRef>) => JSX.Element | null;
|
|
423
478
|
|
|
479
|
+
/**
|
|
480
|
+
* Series component properties that can be used to create a series of a specific type.
|
|
481
|
+
*/
|
|
424
482
|
export declare type SeriesProps<T extends SeriesType> = Omit<SeriesTemplateProps<T>, "type">;
|
|
425
483
|
|
|
484
|
+
/**
|
|
485
|
+
* Properties of a series template component that can be used to create a series of a specific type.
|
|
486
|
+
*/
|
|
426
487
|
declare type SeriesTemplateProps<T extends SeriesType> = {
|
|
427
488
|
type: T;
|
|
428
489
|
children?: ReactNode;
|
|
429
490
|
} & SeriesParameters<T>;
|
|
430
491
|
|
|
492
|
+
/**
|
|
493
|
+
* Unique properties for the text watermark component.
|
|
494
|
+
*/
|
|
431
495
|
export declare type TextWatermarkProps = DeepPartial<TextWatermarkOptions>;
|
|
432
496
|
|
|
433
497
|
/**
|
|
@@ -445,6 +509,9 @@ export declare type TextWatermarkProps = DeepPartial<TextWatermarkOptions>;
|
|
|
445
509
|
*/
|
|
446
510
|
export declare const TimeScale: ForwardRefExoticComponent<TimeScaleProps & RefAttributes<TimeScaleApiRef>>;
|
|
447
511
|
|
|
512
|
+
/**
|
|
513
|
+
* Time scale API reference type that can be used to access the time scale plugin API.
|
|
514
|
+
*/
|
|
448
515
|
export declare type TimeScaleApiRef = {
|
|
449
516
|
_timeScale: ITimeScaleApi<Time> | null;
|
|
450
517
|
api: () => ITimeScaleApi<Time> | null;
|
|
@@ -465,12 +532,18 @@ export declare type TimeScaleApiRef = {
|
|
|
465
532
|
*/
|
|
466
533
|
export declare const TimeScaleFitContentTrigger: ({ deps, }: TimeScaleFitContentTriggerProps) => JSX.Element | null;
|
|
467
534
|
|
|
535
|
+
/**
|
|
536
|
+
* TimeScaleFitContentTriggerProps component props.
|
|
537
|
+
*/
|
|
468
538
|
export declare type TimeScaleFitContentTriggerProps = {
|
|
469
539
|
deps: DependencyList;
|
|
470
540
|
};
|
|
471
541
|
|
|
472
542
|
declare type TimeScaleOptions = DeepPartial<TimeScaleOptions_2>;
|
|
473
543
|
|
|
544
|
+
/**
|
|
545
|
+
* TimeScale component props.
|
|
546
|
+
*/
|
|
474
547
|
export declare type TimeScaleProps = {
|
|
475
548
|
onVisibleTimeRangeChange?: TimeRangeChangeEventHandler<Time>;
|
|
476
549
|
onVisibleLogicalRangeChange?: LogicalRangeChangeEventHandler;
|
|
@@ -481,6 +554,9 @@ export declare type TimeScaleProps = {
|
|
|
481
554
|
children?: ReactNode;
|
|
482
555
|
};
|
|
483
556
|
|
|
557
|
+
/**
|
|
558
|
+
* Watermark API reference type that can be used to access the watermark plugin API.
|
|
559
|
+
*/
|
|
484
560
|
export declare type WatermarkApiRef<T extends WatermarkType> = T extends "text" ? WatermarkTextApiRefBase : WatermarkImageApiRefBase;
|
|
485
561
|
|
|
486
562
|
/**
|
|
@@ -537,6 +613,11 @@ declare type WatermarkTextApiRefBase = {
|
|
|
537
613
|
clear: () => void;
|
|
538
614
|
};
|
|
539
615
|
|
|
616
|
+
/**
|
|
617
|
+
* Watermark types supported by the library.
|
|
618
|
+
* - `text`: A text watermark.
|
|
619
|
+
* - `image`: An image watermark.
|
|
620
|
+
*/
|
|
540
621
|
export declare type WatermarkType = "text" | "image";
|
|
541
622
|
|
|
542
623
|
export { }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/**!
|
|
3
|
-
* lightweight-charts-react-components v1.
|
|
3
|
+
* lightweight-charts-react-components v1.2.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,9 +8,9 @@
|
|
|
8
8
|
* @license MIT
|
|
9
9
|
*/
|
|
10
10
|
|
|
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.
|
|
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.2.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
12
|
|
|
13
13
|
Docs: see ${"https://ukorvl.github.io/lightweight-charts-react-components/docs/"+r}`),u&&(this.message=`${this.message}
|
|
14
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};
|
|
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,seriesOrder:n,...s})=>{let{isReady:u,chartApiRef:c}=o(i),{isPaneReady:p,isInsidePane:d,paneApiRef:h}=m(),[v,y]=(0,e.useState)(!1),_=(0,e.useRef)({_series:null,api(){return this._series},init(){if(!this._series){var e,i,l;let u=null==c?void 0:c.api();if(!u)return null;let o=d?null==h||null===(e=h.api())||void 0===e?void 0:e.paneIndex():void 0;if("Custom"===t){let e=s.plugin;if(!e)throw new f("Custom series requires a plugin to be defined");this._series=u.addCustomSeries(e,a,o)}else this._series=u.addSeries(E[t],a,o);null===(i=this._series)||void 0===i||i.setData(r),void 0!==n&&(null===(l=this._series)||void 0===l||l.setSeriesOrder(n)),y(!0)}return this._series},clear(){if(null!==this._series){var e;null==c||null===(e=c.api())||void 0===e||e.removeSeries(this._series),this._series=null,y(!1)}}});return(0,e.useLayoutEffect)(()=>{u&&(!d||p)&&_.current.init()},[u,d,p]),(0,e.useLayoutEffect)(()=>()=>{_.current.clear()},[]),(0,e.useLayoutEffect)(()=>{if(c&&r&&l){var e;null===(e=_.current.api())||void 0===e||e.setData(r)}},[r,l]),(0,e.useLayoutEffect)(()=>{if(c&&a){var e;null===(e=_.current.api())||void 0===e||e.applyOptions(a)}},[a]),(0,e.useLayoutEffect)(()=>{if(c&&void 0!==n){var e;null===(e=_.current.api())||void 0===e||e.setSeriesOrder(n)}},[n]),{isReady:v,seriesApiRef:_}},E={Line:t.LineSeries,Candlestick:t.CandlestickSeries,Histogram:t.HistogramSeries,Area:t.AreaSeries,Baseline:t.BaselineSeries,Bar:t.BarSeries},b=(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)});b.displayName="SeriesTemplate";let g=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{type:"Line",ref:r,...i},t));g.displayName="LineSeries";let C=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{type:"Histogram",ref:r,...i},t));C.displayName="HistogramSeries";let k=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{type:"Candlestick",ref:r,...i},t));k.displayName="CandlestickSeries";let w=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{type:"Area",ref:r,...i},t));w.displayName="AreaSeries";let P=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{type:"Baseline",ref:r,...i},t));P.displayName="BaselineSeries";let A=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{type:"Bar",ref:r,...i},t));A.displayName="BarSeries";let N=(0,e.forwardRef)(({children:t,...i},r)=>e.default.createElement(b,{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};
|
|
16
16
|
//# sourceMappingURL=lightweight-charts-react-components.mjs.map
|