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 CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /**!
3
- * lightweight-charts-react-components v1.1.0
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.1.0
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.1.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}
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