lightweight-charts-react-components 0.3.0 → 0.3.2
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 +7 -14
- package/dist/lightweight-charts-react-components.cjs +2 -2
- package/dist/lightweight-charts-react-components.cjs.map +1 -1
- package/dist/lightweight-charts-react-components.js +2 -2
- package/dist/lightweight-charts-react-components.js.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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightweight-charts-react-components.js","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/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/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"],"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, ChartCustomOptions } from \"./types\";\n\nexport const useChart = ({\n container,\n onClick,\n onCrosshairMove,\n onInit,\n options = {},\n}: {\n container: HTMLElement;\n} & ChartCustomOptions) => {\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 chartApiRef.current.api()?.applyOptions(options);\n }, [options]);\n\n return { chartApiRef, isReady };\n};\n","import { ChartContext } from \"./ChartContext\";\nimport { useChart } from \"./useChart\";\nimport type { ChartProps } from \"./types\";\n\ntype ChartComponentProps = {\n container: HTMLElement;\n} & Omit<ChartProps, \"containerProps\">;\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 { 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;\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef } from \"react\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { useSafeContext } from \"@/shared/useSafeContext\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\n\nexport const useTimeScale = ({\n onVisibleTimeRangeChange,\n onVisibleLogicalRangeChange,\n onSizeChange,\n visibleRange,\n visibleLogicalRange,\n options = {},\n}: TimeScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n\n if (!chart) {\n throw new Error(\"Chart context not found\");\n }\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (!this._timeScale) {\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\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\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;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst TimeScaleRenderFunction = (\n props: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n) => {\n const timeScaleApiRef = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef.current, [timeScaleApiRef]);\n\n return null;\n};\n\nconst TimeScale = forwardRef(TimeScaleRenderFunction);\nTimeScale.displayName = \"TimeScale\";\nexport { TimeScale };\n","import { useLayoutEffect, useRef } from \"react\";\nimport { ChartContext } from \"@/chart/ChartContext\";\nimport { useSafeContext } from \"@/shared/useSafeContext\";\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 { 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 { ChartContext } from \"@/chart/ChartContext\";\nimport { incrementPaneCount, panesCount, decrementPaneCount } from \"@/pane/panesCount\";\nimport { BaseInternalError } from \"@/shared/InternalError\";\nimport { useSafeContext } from \"@/shared/useSafeContext\";\nimport type {\n CustomSeriesUniqueProps,\n SeriesApiRef,\n SeriesTemplateProps,\n SeriesType,\n} from \"./types\";\nimport type { SeriesDefinition, ISeriesApi } 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 { SeriesType, SeriesTemplateProps, SeriesApiRef } from \"./types\";\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;\n\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 { SeriesContext } from \"@/series/SeriesContext\";\nimport { useSafeContext } from \"@/shared/useSafeContext\";\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 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 { SeriesContext } from \"@/series/SeriesContext\";\nimport { useSafeContext } from \"@/shared/useSafeContext\";\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 { ChartContext } from \"@/chart/ChartContext\";\nimport { useSafeContext } from \"@/shared/useSafeContext\";\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"],"names":["ChartContext","createContext","useChart","container","onClick","onCrosshairMove","onInit","options","isReady","setIsReady","useState","chartApiRef","useRef","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","ChartWrapper","forwardRef","containerProps","rest","ref","setContainer","containerRef","useCallback","r","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","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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lightweight-charts-react-components.js","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/_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/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"],"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}: 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 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 { 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;\n throw new BaseInternalError(errorMessage ?? `${ctxName} not found.`, {\n isOperational: true,\n });\n }\n\n return currentContextValue;\n};\n","import { useLayoutEffect, useRef } 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}: TimeScaleProps) => {\n const { isReady: chartIsReady, chartApiRef: chart } = useSafeContext(ChartContext);\n\n if (!chart) {\n throw new Error(\"Chart context not found\");\n }\n\n const timeScaleApiRef = useRef<TimeScaleApiRef>({\n _timeScale: null,\n api() {\n return this._timeScale;\n },\n init() {\n if (!this._timeScale) {\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\n return this._timeScale;\n },\n clear() {\n this._timeScale = null;\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;\n};\n","import { forwardRef, useImperativeHandle } from \"react\";\nimport { useTimeScale } from \"./useTimeScale\";\nimport type { TimeScaleApiRef, TimeScaleProps } from \"./types\";\nimport type { ForwardedRef } from \"react\";\n\nconst TimeScaleRenderFunction = (\n props: TimeScaleProps,\n ref: ForwardedRef<TimeScaleApiRef>\n) => {\n const timeScaleApiRef = useTimeScale(props);\n useImperativeHandle(ref, () => timeScaleApiRef.current, [timeScaleApiRef]);\n\n return null;\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 { 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 {\n CustomSeriesUniqueProps,\n SeriesApiRef,\n SeriesTemplateProps,\n SeriesType,\n} from \"./types\";\nimport type { SeriesDefinition, ISeriesApi } 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 { SeriesType, SeriesTemplateProps, SeriesApiRef } from \"./types\";\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;\n\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 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"],"names":["ChartContext","createContext","useChart","container","onClick","onCrosshairMove","onInit","options","isReady","setIsReady","useState","chartApiRef","useRef","createChart","useLayoutEffect","_chartApiRef_current_api","ChartComponent","children","ChartWrapper","forwardRef","containerProps","rest","ref","setContainer","containerRef","useCallback","r","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","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"],"mappings":"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"}
|